傅立叶变换(Fourier Transform有时被写成“傅立叶变换”。 )是特别常用的数学工具,在大学学到的可能性很高,但我想专门谈谈。 傅里叶变换是构建现代科学技术的基础方法,它可以说是无处不在的——,但这个操作背后有智慧,值得每个人深思。
即使没有正式学过,也可能听说过“傅立叶变换”这个词。 计算机上的声音和图像信号、工程上的任何波动信息、数学上的微分方程的解、天文学上遥远的星体的观测都使用了傅立叶变换。 用手机播放MP3音乐、看图像、语音识别是傅立叶变换的日常应用。 吴军最近在上讲信息论的课,其中提到了傅立叶变换[1]。
傅立叶变换是什么? 根据维基百科的说法,“是用于时域(或空域)和频域之间的信号变换的线性积分变换”……这句话大概很难懂吧。 另外,知道这句话的人也不一定理解傅立叶变换的本质。 这话我们无视所有数学细节,一个公式也不用,直奔思想。
*
依我看,本质上傅立叶变换是一种将复杂事物分解成许多标准化、简单事物的方法。
用声音举个例子吧。 请注意,声波是应用傅立叶变换的一个例子,傅立叶变换既不是关于声音的,也不是关于波动的。
我们先来谈谈什么是“简单的东西”。 声音是空气的振动。 拨弦时,耳朵里会传来干净且持续很短时间的声音。 像a音符一样,1秒钟振动约440次,所以除非是重低音,否则通常不一定会感觉到振动。 但音量和音调——的音量是振动的幅度,音调是振动的频率。
下图显示了简单的声音。 横轴是时间,纵轴是振动的幅度。 这个声音显示出了完美的周期性变化,频率固定,具有简单的音调。 这条曲线的形状是“正弦波”,也就是高中学过的正弦曲线的样子。
这很简单。 现实世界中的大多数声音并不简单。 例如,我们说话的声音显然不是纯粹的声音。 仔细一看,复杂的声音是杂乱的振动——,如下所示
是的,现在关键的洞察来了。 复杂的振动可以看作是一系列简单振动的重叠。
例如,上面的曲线看起来很复杂,但实际上是三个简单的波动加起来的——
的最下面的复杂曲线可以认为是一天中感受到的温度变化。 表面上看,你感受到的温度变化看起来很复杂,但实际上,我知道你同时经历了三件事。 照片中的红色曲线相当于自然温度的自然变化,绿色曲线相当于你是在室内还是在室外,蓝色曲线表示你是穿着大衣还是脱了。
如果把这个复杂的事情分解成三个简单的事情,我就完全能理解它到底是怎么回事了。
傅里叶变换是指,如果事先规定一系列简单的波动,那么任何复杂的波动都可以通过这些简单的波动进行分解。
例如,请看下面的波形——
这个形状看起来有点奇怪,但好像又有规则。 那到底是什么规律呢? 傅里叶变换是一组数学操作,可以将任何形状的曲线分解为一系列简单波形的叠加。 的波形实际上是以下几个波的叠加——
图中的蓝色是一系列简单的变动。 傅里叶变换告诉我们图中每个简单的波动对红色曲线的贡献有多大。 例如
红色曲线=频率100的蓝色曲线 0.5频率200的蓝色曲线 0.2频率300的蓝色曲线 0.1频率400的蓝色曲线 0.08 ……
那么,让我们来想象一下上面的人
些各种频率的蓝色曲线都是大家约定俗成的“标准化的简单事物”,那么想要描写那个看似复杂的红色曲线,我们就只需要报出组成它的各种蓝色曲线的“成分”也就可以了!红色曲线 = (0.5, 0.2, 0.1, 0.08, ……)
这就是傅里叶变换。
*
现在你看出傅里叶变换的好处来了没有?明明是一条复杂的曲线,可是我们只需要用几个数字就可以描写它!
这就是数字音乐的原理。那些标准化的简单音调都是大家约定好的,所以只需要记录一个声音分解成简单音调的成分值就行。而且因为特别高频和特别低频的声音人的耳朵是听不见的,所以标准化简单音调并没有无限多个,我们只需要用很有限的一组数字就能描写一段时间内的一个复杂声音……这就是最基本的 WAVE 音频格式。把 WAVE 文件里的信息再做一些压缩处理,就是 MP3。JPG 图像的原理也是类似的,只要把时间上的波动改成空间上的波动就行。
傅里叶变换并不要求你记录的这一段信息具有周期性。任何形状的线条都可以用那些标准化的简单曲线合成出来,哪怕只有一个周期也可以做,是不是“波动”并不重要。
那些“标准化的简单音调”都是如何选取的呢?这其中有一些讲究,要求“不重不漏”。所谓不漏,就是它们组合在一起必须在一定的分辨率之内,能覆盖耳朵能听见的所有频率;所谓不重,就是它们互相之间不能有重叠。比如你不能说这一个简单蓝色曲线又可以用其他几个简单蓝色曲线合成出来 —— 那样的话傅里叶变换的解就不是唯一的了。
这些标准化的简单事物是一个傅里叶变换的基石,你可以把它们想象成“维度”。复杂事物就好像是由那一大堆简单事物构成的多维空间中的一点,每一种简单事物的成分就构成了这个复杂事物的坐标。为了保证坐标系统的清爽,各个维度之间应该是互相垂直(数学语言叫“正交”)的关系,也就是谁也不能覆盖和取代谁。
数学概念就说到这里,下面说意义。
*
你每一次对着菜谱做菜,都是在做傅里叶变换。
菜谱说,用这个、这个和这个食材,什么时候加多少盐,什么时候放多少水……那些食材、盐和水,就是傅里叶变换中的那些“简单的标准化事物”。
菜谱无需告诉你牛肉是什么东西、西蓝花是什么东西、盐和水又是什么东西,大家约定俗成都知道它们是什么东西。菜谱只需要把成分告诉你就行。
这说明什么呢?说明如果一个社会有一个大家约定俗成的、标准化的简单事物话语体系,我们的交流就会非常方便。这也说明,要想让交流方便和高效,你就必须得有一个约定俗成的、标准化的简单事物话语体系。
比如古代行军打仗有个最原始的密码系统。事先约定二十个字,每个字代表一个意思。通信的时候写一首诗,比如其中有一句是“大漠孤烟直”。收信人一看“大”字上盖了个章,而知道事先的约定是“大”的意思是要求增兵,就知道你想说什么。
没有这个标准化的约定,我们就无法有效交流。请问谁能用语言精确描写前面图中那条曲线呢?了解一个领域,就得了解这个领域的话语体系。
*
现实中使用的傅里叶变换,总是失真的。理论上有无限个标准化简单音调,但是现实中我们只用有限个数字描写一个声音,这是因为那些不易分辨的、或者振幅特别低的音调都被省略了。所以对数字化声音来说,你得知道你面临下面这几个限制 ——
1. 你发不出不能用我们选取的那几个标准化音调描写的声音;
2. 你的声音的特别细微之处,将会被忽略;
3. 所有能传播的声音都是规定好的单纯声音的排列组合而已。
要不怎么福柯说,“人类的一切知识都是通过‘话语’获得的,任何脱离‘话语’的东西都是不存在的。”
这就意味着,在傅里叶变换的视角下,这个世界并没有什么新鲜的东西。
*
比如有一天你做了一个梦。你觉得这个梦太精彩了,就把它写成了一个小说,你认为这要是拍成电影肯定能火!你兴冲冲地把它拿个一个编剧朋友看,结果他说,你这不就是《罗生门》× 0.5 + 《哈姆雷特》× 0.2 + 《侏罗纪公园》× 0.3 吗?
他给你的剧情做了个傅里叶变换。
现在的情况是凡是能想到的剧情,可能都已经被人拍过了。我以前专门写文章说过 [3],TV Tropes 这个网站列举了所有的剧情桥段。
你所谓的创造,通常只不过是已知的、标准化的简单事物的排列组合而已。
这就是为什么成熟的领域里搞“纯创新”那么难。如果这个领域已经形成了自己特有的话语体系 —— 也就是说都用上傅里叶变换了 —— 你首先要做的大概是学习这个话语体系。
不过好在真实世界并不一定是一个完全可以数字化的封闭系统 [4],也许傅里叶变换终究不能把整个世界给标准化。
注释
[1] 吴军·信息论 40 讲,《10.等价性:信息是如何压缩的?》
[2] 这一小节的图片和主要例子来自 AATISH BHATIA, The Math Trick Behind MP3s, JPEGs, and Homer Simpson’s Face, Nautilus, JUN 10, 2019.
[3] 《万万没想到》:桥段会毁了你的生活。
[4] xsdqc日课第二季,《哥德尔不完备性定理的世界观》。