傅立叶变换是一种用于各种不同事物的工具。这是对傅里叶变换功能的解释,以及它可能有用的一些不同方式。以及你如何用它做漂亮的东西,比如这个东西:
我将解释动画是如何工作的,并在此过程中解释傅里叶变换!
我们暂时不讲数学和方程式。它背后有一堆有趣的数学知识,但最好从它的实际用途开始,以及为什么你想首先使用它。如果你想知道更多关于如何做到这一点,下面有一些进一步的阅读建议!
简而言之,傅里叶变换是一种将某物分解成一串正弦波的方法。和往常一样,这个名字来自很久以前的一个叫傅立叶的人。
让我们从一些简单的例子开始,然后逐步提高。首先,我们来看看波浪--随着时间的推移重复出现的模式。
这里的波浪形可以分成正弦波。也就是说,当我们把这两个正弦波相加时,我们就得到了原来的波。
傅里叶变换是一种方法,我们可以得到组合的波,然后把每个正弦波都取出来。在这个例子中,只需查看原始的Wave,您几乎可以在头脑中做到这一点。
为什么?事实证明,现实世界中的很多东西都是基于这些正弦波相互作用的。我们通常称它们为波的频率。
最明显的例子是声音--当我们听到声音时,我们听不到曲折的线条,但我们能听到组成声音的正弦波的不同频率。
能够在电脑上将它们分开,可以让我们了解一个人实际上听到了什么。我们可以理解声音的高低,或者弄清楚它是什么音符。
我们也可以用这个过程来处理那些看起来不像是由正弦波组成的波。
它可能看起来不像,但它也可以被分成正弦波。
这一次我们需要很多这样的模型--从技术上讲,需要无限的数量才能完美地代表它。当我们把越来越多的正弦波加起来时,图案就越来越接近我们开始时的方波。
从视觉上看,你会注意到实际上前几个正弦波才是最大的不同之处。随着滑块的一半,我们得到了波浪的大致形状,但它完全是摇摆的。我们只需要剩下的小的来让摇摆变得平坦。
当你听到电波时,你会听到声音变得更低,因为我们正在移除较高的频率。
对于任何重复的行,此过程都是这样工作的。试一试,试着画你自己的!
移动滑块查看当我们添加更多正弦波时,它如何越来越接近您的绘图。
再说一次,除了额外的摆动,这个波看起来非常相似,只有一半的正弦波。
事实上,我们可以利用这样一个事实,即这波浪潮与我们的优势非常相似。通过使用傅立叶变换,我们可以得到声音的重要部分,并只存储这些部分,以得到与原始声音非常接近的结果。
我们能做的是把它表示成一串正弦波。然后我们可以忽略较小的频率来压缩声音。我们的最终结果不会是一样的,但它听起来会很像一个人。
这基本上就是MP3所做的,只是它们在保留和丢弃哪些频率方面更加聪明。
所以在这种情况下,我们可以使用傅立叶变换来理解波的基本性质,然后我们可以用它来进行压缩。
好了,现在让我们更深入地研究傅里叶变换。下一部分看起来很酷,但也让您更好地理解了傅里叶变换的作用。但大部分看起来都很酷。
一开始,我说它会把东西分成正弦波。问题是,它产生的正弦波不仅是规则正弦波,而且是3D正弦波。你可以称它们为复杂的正弦波。或者仅仅是螺旋形的(#34;#34;#34;)。
如果我们从侧面看,它们看起来像正弦波。不过,从正面看,这些看起来就像圆圈。
到目前为止,我们所做的一切只需要规则的2D正弦波。当我们对2D波进行傅里叶变换时,复杂的部分被抵消了,所以我们最终只能得到正弦波。
但是我们可以使用3D正弦波来做一些有趣的事情,如下所示:
嗯,我们可以把这幅画想象成3D形状,因为它在时间上移动的方式。如果你想象一个人在画一只手,这三个维度代表了他们的铅笔尖在那个时刻的位置。X和y维度告诉我们位置,然后时间维度就是那一刻的时间。
现在我们有了3D图案,我们不能用规则的2D正弦波来表示它。不管我们加起来多少个2D正弦波,我们永远也得不到3D的东西。所以我们需要一些其他的东西。
我们可以使用的是之前的3D螺旋正弦波。如果我们把这些加起来,我们就可以得到看起来像我们的3D图案的东西。
记住,当我们从前面看这些波浪时,它们看起来像圆圈。一个圆围绕另一个圆旋转的图案叫本轮。
和以前一样,我们只需要几个圆圈就可以很好地近似我们的模式。因为这是一个相当简单的形状,所以最后几个形状只是让边缘变得更锋利一点。
所有这些都适用于任何绘画,真的!现在是你玩弄它的机会了。
同样,你会看到,对于大多数形状,我们只需用一小部分圆圈就可以很好地近似它们,而不是保存所有的点。
我们能把这个用于真实数据吗?嗯,我们可以的!实际上,我们有另一种称为SVG的数据格式,对于我们倾向于创建的形状类型,它可能做得更好。所以就目前而言,这真的只是为了做一些很酷的小玩意儿。
你知道傅里叶变换也可以用在图像上吗?事实上,我们一直都在使用它,因为这就是JPEG的工作方式!我们正在把同样的原理应用到图像上--把一些东西分解成一串正弦波,然后只存储重要的部分。
现在我们正在处理图像,我们需要一种不同类型的正弦波。我们需要一些东西,无论我们有什么图像,我们都可以把这些正弦波加在一起,回到我们最初的图像。
要做到这一点,我们的每个正弦波也将是图像。我们现在的图像不是线条的波浪,而是黑白部分。为了表示波浪的大小,每幅图像都会有或多或少的对比度。
我们也可以用它们以同样的方式表示彩色,但现在让我们先从黑白图像开始。为了表现无色图像,我们需要一些水平波图像,
仅靠水平和垂直图像本身并不足以代表我们得到的图像类型。我们还需要一些额外的数字,你可以把这两个数字相乘。
如果我们拍摄这些图像,将它们的对比度调整到合适的量,然后把它们加在一起,我们就可以创建任何图像。
让我们从这个字母开始吧。它很小,但我们需要它小一点,否则我们最终会看到太多其他图片。
随着我们添加越来越多的这样的图像,我们最终得到的是与实际图像越来越接近的东西。但我想你会看到这里的模式,因为我们只对其中的几个进行了合理的近似。
图像被分成8x8个块,每个块被单独拆分。我们使用一组频率来确定每个像素的亮或暗程度,然后再使用另外两组颜色,一组用于红绿,另一组用于蓝黄。我们为每个块使用的频率数决定了JPEG的质量。
这是一张真实的JPEG图像,放大后我们可以看到细节。当我们调整质量水平时,我们可以看到这一过程的发生。
傅立叶变换是一种可以让我们把某物分解成其频率的东西。
我们也可以用它们来制作带有一堆圆圈的很酷的动画。
这只是一些应用程序的皮毛而已。傅里叶变换是一个非常强大的工具,因为将事物分解成频率是非常基本的。它们被用于很多领域,包括电路设计、手机信号、磁共振成像(MRI)和量子物理!
我跳过了这里的大部分数学内容,但如果你对它的基本原理感兴趣,这里有一些问题可以用来指导你的研究:
连续时间傅里叶变换和离散时间傅里叶变换有什么不同?
你如何对整首歌进行傅里叶变换?(而不是只有一个音符。)。
傅里叶变换的互动指南一篇很棒的文章,更深入地研究了所发生的数学问题。
但是什么是傅里叶变换呢?一个视频介绍。3Blue1Brown的一段很棒的YouTube视频,也从音频的角度解释了傅里叶变换的数学。
数学与艺术的故事:创建傅里叶级数调和圆可视化另一篇文章解释如何使用外轮画一条路径,从线性代数的角度解释。
我叫杰兹!我全职在旧金山湾区的一家搜索公司工作,业余时间我喜欢做这样的游戏和互动代码!
这个网页是开源的,你可以在GitHub上查看代码!如果你有任何反馈,或者想问任何问题,请随时给我发电子邮件到Fourier[at]jezzamon[dot]com,或者在Twitter上发一条推文给我。
如果你想看到更多我的作品,请查看我的主页,如果你想看看我接下来做了什么,你可以关注我的推特账号@jezzamonn!