傅里叶级数的诞生与应用
# 傅里叶级数的引入
天才虽少,伟大的让·巴普蒂斯·约瑟夫·傅里叶一定是其中一个。
傅里叶的科学成就主要在于他对热传导问题的研究,以及他为推进这一方面的研究引入的数学方法。

- 1807年,傅里叶在法国科学学会上发表的《热的解析理论》,提出“任意周期函数可用三角级数表示”
- 1822年出版的《热的解析理论》是傅里叶对于数学和物理贡献的代表作,被认为是数学的经典文献之一,对数学和理论物理学的发展起到了巨大影响。
- 这部经典著作将欧拉、伯努利等人在一些特殊情况下应用的三角级数方法发展成内容丰富的一般理论,三角级数后来以傅里叶的名字命名,也就是傅里叶级数。
- 值得一提的是,“任意的一个函数是否能表示成三角级数”这一争论是由弦振动问题引起的。
# 不同场景中的傅里叶级数
# 自然界中的傅里叶级数
1666年牛顿发现太阳光经三棱镜的折射后可呈现彩色光,称为光的色散现象
物理常识 | 自然现象 |
---|---|
先说一个物理常识,光是一种波,而光的颜色由振幅和频率所决定。 所以色散实际上是,白色的光波被分解为七色光波(实际应该是无数种颜色的光波) | 雨后空气中的水分就好像无数的三菱镜,把太阳光拆成了彩色。正是大自然中的色散现象。 这大概是我们在自然界中最容易观察到的傅立叶级数。 |
![]() | |
# 数学中的傅里叶级数
举个栗子并且有图有真相才好理解。
我们先来看一下标准正弦函数
在时域它的函数方程是y=sin(x) ,而它的频率是f=T1=2π1 。所以,上面这个函数在频域中的图像如下

如果我说我能用前面说的正弦曲线波叠加出一个带 90 度角的矩形波来,你会相信吗?
正弦波叠加为矩形波 | |
---|---|
![]() | 第一幅图是一个郁闷的正弦波 cos(x) 第二幅图是 2 个卖萌的正弦波的叠加 cos(x)+a.cos(3x) 第三幅图是 4 个发春的正弦波的叠加 第四幅图是 10 个便秘的正弦波的叠加 随着正弦波数量逐渐的增长,他们最终会叠加成一个标准的矩形 |
随着叠加的递增,所有正弦波中上升的部分逐渐让原本缓慢增加的曲线不断变陡,而所有正弦波中下降的部分又抵消了上升到最高处时继续上升的部分使其变为水平线。**一个矩形就这么叠加而成了。**但是要多少个正弦波叠加起来才能形成一个标准 90 度角的矩形波呢?
不幸的告诉大家,答案是无穷多个。
不仅仅是矩形,你能想到的任何波形都是可以如此方法用正弦波叠加起来的。这是没有接触过傅里叶分析的人在直觉上的第一个难点,但是一旦接受了这样的设定,游戏就开始有意思起来了。
# 不同场景中的傅里叶变换
# 餐饮中的傅里叶变换
但是我们只从上图中并不能从这个时域信号中看出信号的各个频率分量。
就好像我第一次吃锅包肉,并不能准确判断里面都用了什么佐料。
是萝卜是白菜,还是里脊肉,一目了然。我们看到的时域永远骚动的世界,瞬间也静止了下来。
从某种程度上讲,可以说傅里叶变换是振动诊断的基础,也可以说正是有了它才有了现在的故障诊断这个学科。
# 语言中的傅里叶变换
在频域中,摆弄一系列三角函数,让这个多点那个少点,有一个酷炫的名字,叫“频域处理”,
你去了美国,不知道白宫怎么走,你问翻译:白宫怎么走?
翻译跑到街上问美国人:Where is the White House? 这叫傅里叶变换。
美国路人说:“go straight and turn right”。这叫频域处理。
翻译听完给你说:直走,右拐就到了。这叫逆傅里叶变换。
傅里叶变换的作用,就是把一个函数或者信号在三角函数基下转化为一堆系数,摆弄这些系数、实现一定功能有时比直接摆弄原信号方便,最后再做个逆傅里叶变换,信号就得到了某种处理。
# 物理中的傅里叶变换
为了载有复杂信息,必须要有复杂信号。实际上,复杂信号的产生、传递、测量,都需要把它们分解为一系列频率来获得。
下面以高纯锗探测器作为信号测量例子。
能量为E 的光子打进来,与高纯度锗里的一个电子发生碰撞,E光子∝E电子。这个电子能量也很高,在锗里继续激发了一系列的电子-空穴对。高能量的电子能激发更多电子-空穴对,所以 E电子∝N,N 即电子-空穴对数目。
这些对,被高的偏置电压快速拉走,作为电信号被放大,我们有N∝V,V 即这些电子-空穴对们带来的电压。这个电压进入多道,如果电压落在了两个道之间,就认为电压是这个道对应的能量值。这样,我们就测量了Gamma 光子的能量。
现在我们完成了一次信号测量的过程。这个信号的测量和傅立叶变换有什么关系呢?实际上,我们已经不知不觉地做了一次傅立叶变换。
入射的光子是时间的函数,不同的时间有不同能量,不同数目的光子到达探测器。
但是我们测量的是能量!
与此同时,我们已经丢失了时间的信息。
我们可以说,有多少光子处于某能量段,又有多少光子处于另一个能量段,也就是能谱,但是我们不知道光子是什么时候到达的。
当我们测量时间变得很长的时候,能谱的相对误差就会变小。如果我们测量1分钟,那我们可以说所有被记录的粒子都在这一分钟里到达,也就是还含有1分钟为时间分辨率的信息;但是如果我们测量1年(如某些宇宙射线),在这一年里不看能谱,一年后再看能谱时,全然不知道能谱上哪段能量的粒子的先来后到。
换句话讲,我们对时间进行了积分。如果我们说一月观察一次,二月再看一次谱,实际上时间分辨率已经不是一年,而是1个月了。也正因为如此,实验家喜欢测量时间分辨的能谱,甚至愿意把1小时测量分解为60个1分钟来做:我们把每分钟的谱相加,就得到了1小时的谱;但反过来却做不到了。扯远了,在这里,我们不考虑实验方法,只是说得到一个可靠的能谱,就要测量很长时间,就是对时间积分。而探测器的测量过程:测量很长时间 (∫dt),观察能谱,就是做了一次傅立叶变换。也就是说,傅立叶变换并非人为的数学上的发生,而是自然而然发生了的。
信号传播在时间里,但是能谱却从能量(频率)来记录,就是一种傅立叶变换。
# 傅里叶级数的起源
事实上,傅里叶级数并不起源于傅里叶。
早在傅里叶还没出生的1753年,丹尼尔·伯努利(Daniel Bernoulli,1700-1782)就提出了可以用三角函数来解弦振动方程。
弦振动方程大概就是这么个玩意儿:
这是伟大的数学家们迈出打通三角函数与其他函数中间那扇墙的第一步。
紧接着到1759年,数学家们已成功将x的2/3次方用三角函数的形式表示。
再跨越到1777年,在欧拉(Leonhard Euler,1707-1783)研究天文问题时,已推导出以下的式子:
- 可以发现,这个式子和我们今天在高数课本上看到的傅里叶级数中的a(n)已经非常接近了。但是,这个式子仅能表示周期为 l 的偶函数的情况,尚未具备普适性。
# 傅里叶级数的严密化
为什么伯努利、欧拉等鼎鼎有名的大佬已经做到这一步,却仍然无法成就“伯努利级数”或“欧拉级数”呢?
- 因为从当时的数学研究而言,很多的壁垒尚未打破,比如:
- 周期函数和非周期函数的对立
- 奇函数和偶函数的对立等
- 这种现在看来比较狭隘的函数观,为三角函数的进一步突破造成了阻碍,也让欧拉、伯努利等一众知名数学家无法打破傅里叶级数的壁垒。
# 对周期函数进行分解的猜想
# 把一个周期函数表示成三角级数
周期函数是客观世界中周期运动的数学表述,如物体挂在弹簧上作简谐振动、单摆振动、无线电电子振荡器的电子振荡等。
大多可以表述为:f(x)=Asin(ωt+ψ)
这里t表示时间,A表示振幅,ω为角频率,ψ为初相(与考察时设置原点位置有关)。
然而,世界上许多周期信号并非正弦函数那么简单,如方波、三角波等。
拉格朗日等数学家发现某些周期函数可以由三角函数的和来表示,比如下图中,黑色的斜线就是周期为2π的函数,而红色的曲线是三角函数之和,可以看出两者确实近似:
# 傅里叶
而终于在19世纪初,三角函数迎来了它的生命天子——傅里叶
傅里叶是一个物理学家,他利用把周期函数转化为三角函数的方法成功解决了热传导理论的很多问题,同时也让他提出:任何一个周期函数都能用三角函数的方式展开。
让·巴普蒂斯·约瑟夫·傅里叶男爵(1768-1830)猜测任意周期函数都可以写成三角函数之和。想能否用一系列的三角函数f(x)=Asin(ωt+ψ)之和来表示那个较复杂的周期函数f(t)呢?
因为正弦函数sin可以说是最简单的周期函数了。
已享有盛名的傅里叶在对周期函数与三角函数的问题上在当时的数学家看来就像一个二愣子一般硬要往里钻,在别的数学学家乃至各个领域大牛都坚定地认为周期函数不可能被表示成三角函数的形式,甚至连巴黎科学院都因此拒了他的论文之时,傅里叶却仍然坚决认为这是可行的。
# 分解的思路
假设f(x)是周期为T的函数,傅里叶男爵会怎么构造三角函数的和,使之等于f(x)?
# 常数项
对于y=C,C∈R这样的常数函数:
根据周期函数的定义,常数函数是周期函数,周期为任意实数。 所以,分解里面得有一个常数项。
# 通过sin(x),cos(x)进行分解
- 首先,sin(x),cos(x)是周期函数,进行合理的加减组合,结果可以是周期函数。
- 其次,它们的微分和积分都很简单。
- 然后,sin(x)是奇函数,即:
- -sin(x)=sin(-x)
- 从图像上也可以看出,sin(x)关于原点对称,是奇函数:
- 而奇函数与奇函数加减只能得到奇函数。
- 而cos(x)是偶函数,即:
- cos(x)=cos(-x)
- 从图像上也可以看出,cos(x)关于Y轴对称,是偶函数:
- 同样的,偶函数与偶函数加减只能得到偶函数。
- 但是任意函数可以分解为奇偶函数之和:
- f(x)=2f(x)+f(−x)+2f(x)−f(−x)=feven+fodd
- 所以同时需要 sin(x),cos(x)
# 保证组合出来周期为T
之前说了,f(x)是周期为 T 的函数,我们怎么保证组合出来的函数周期依然为 T 呢?
我们可以看到,下面 sin(nx),n∈N 的周期都是 2π
这些函数的周期都为T 将这些函数进行加减,就保证了得到的函数的周期也为T。
# 调整振幅
现在我们有一堆周期为2π的函数了,比如说
sin(x),sin(2x),sin(3x),sin(4x),sin(5x)
调整振幅,加加减减,我们可以慢慢接近目标函数:
傅里叶写出下式:(关于傅里叶推导纯属猜想)
f(t)=A0+∑n=1∞Ansin(nωt+ψ)
这里,t是变量,其他都是常数。
- 与上面最简单的正弦周期函数相比,式中多了一个n,且n从1到无穷大。
- 这里f(t)是已知函数,也就是需要分解的原周期函数。
- 从公式来看,傅里叶是想把一个周期函数表示成许多正弦函数的线性叠加,这许许多多的正弦函数有着不同的幅度分量(即式中An)、有不同的周期或说是频率(是原周期函数的整数倍,即n)、有不同的初相角(即ψ),当然还有一项常数项(即A0)。要命的是,这个n是从1到无穷大,也就是是一个无穷级数。
傅里叶发现,任何周期函数都可以用正弦函数和余弦函数构成的无穷级数来表示
傅里叶是一个天才,想得那么复杂。一般人不太会把一个简单的周期函数弄成这么一个复杂的表示式。但傅里叶认为,式子右边一大堆的函数,其实都是最简单的正弦函数,有利于后续的分析和计算。
当然,这个式能否成立,关键是级数中的每一项都有一个未知系数,如A0、An等,如果能把这些系数求出来,那么公式就可以成立。
当然在公式中,唯一已知的就是原周期函数f(t),那么只需用已知函数f(t)来表达出各项系数,上式就可以成立,也能计算了。
于是乎,傅里叶首先对公式作如下变形:
基于此,他无比自信地认为,任何一个周期函数在(-pi,pi)上都可表示为以下的式子:
f(x)=C+∑n=1∞(ancos(T2πnx)+bnsin(T2πnx))C∈R
这个函数符合之前的分析:
- 有常数项
- 奇函数和偶函数可以组合出任意函数
- 周期为T
- 调整振幅,逼近原函数
但最最可惜的是,傅里叶没能给出详细证明,也并没有归纳出傅里叶级数在展开过程中所需要的限制条件。他只靠一种直觉说:“周期函数一定能表示成三角函数的形式。”这就像你嘴上一直说“我一定能减肥成功”但始终不见你行动更不见你瘦下来。
# 狄利克雷
狄利克雷给出傅里叶变换的收敛条件
直到1829年,傅里叶级数才迎来了它的第二位卓有贡献的推动者——狄利克雷(Johann Peter Gustav Lejeune Dirichlet,1805-1859)。他在论文《关于三角函数的收敛性》中给出并证明了三角函数收敛与目标函数 f(x) 的条件,被尊称为使傅里叶级数严密化的第一人甚至傅里叶级数理论的奠基人。他所给出的傅里叶级数收敛的条件——狄利克雷条件,跟我们现在高数课本中的条件已经相差无几。
# 黎曼
1854年,黎曼(Riemann,1826-1866)在论文《用三角级数表示函数》中,给出并证明了傅里叶级数的系数为:

至此,高数课本中关于傅里叶级数的理论内容基本得到解决。
至今,傅里叶级数已不断发展并应用于实际生活中,在信号与系统等方面已经不可或缺,其理论研究上也已经变得更具普适性,并不只限于(-pi,pi)的区间。

# 傅里叶级数到底是什么
如同我们较为熟悉的泰勒展开一样,傅里叶级数也是一种函数展开。
泰勒公式——微分处理
傅里叶级数——积分处理
假设取分段函数:
举这么一个分段函数为例,将它展开为傅里叶级数的结果为:
我们将其中的三角函数逐项叠加,图像大概是这样:

为什么在sinx后第二项是sin3x?第三项是sin5x?
我们可以看出,在不断的叠加过程中,三角函数的和已经逐渐逼近原分段函数了。所以,我们成功地将一个一般的函数转化为了三角函数的表示形式。
- 简单得说,傅里叶级数就是一种特殊的三角级数,它将一般的周期函数分解为三角函数的形式。说到这里,就知道为什么我们在中学时候,花了很大的时间在研究三角函数的性质,就是为了将现在的周期函数展开为傅里叶级数做铺垫。
- 当然如果这样描述,那就是太小看傅里叶级数的威力了。在实际应用中,比如热传导,比如信号与系统等,它们所需要用到的各类函数千变万化,是需要通过无比复杂的函数进行逼近的。
- 但若我们在具体实现这种计算的过程中,能够将复杂函数分解为简单函数和,那么对于复杂函数的处理能力将发生飞跃。
- 实际上,傅里叶级数更应该被解释或描述为:“将(复杂)函数和图像分解成简单震荡的叠加”,尽管它的起源是一个看起来和频率、震荡毫无关系的物理问题。
# 傅里叶级数的实际应用
# 实际应用
# 数学应用
通过傅里叶级数对函数进行展开,并由傅里叶级数的敛散性直接得出两式相等,以下给出一个例子:

# 解决平面连杆机构综合问题
平面连杆机构中连杆上任意点的运动轨迹(连杆曲线)可以表示为一系列不同周期的圆周运动频率分量的合成。把每个谐波成分的参数 作为一个独立构件的运动参数,然后把每个构件依次相连形成一个开链(对应于矢量求和),则该开链机构的端点描绘出的曲线,就是这里所需的平面连杆曲线。

用连杆曲线的谐波成分来描述相应的连杆曲线,根据这些谐波成分转化成相应的开链机构就可以完全再现原连杆轨迹,从而也将连杆曲线的几何意义与其谐波参数联系起来,为下一步利用这一数学工具进行机构轨迹综合奠定了基础。
由连杆转角函数中的变量连杆摆动角函数θ(t)和机构尺寸参数共同决定连杆转角函数的谐波特征参数。以常见的平面四杆机构为例,两个对应杆长成比例的平面四杆机构 ABCD 和 AEFG,根据几何关系可知两者具有相同的连杆摆动角函数θ(t) 。因此可以将连杆机构各杆长转化为量纲一的尺寸型与摆动角函数θ(t) 相对应。
根据傅里叶级数理论,给出了连杆曲线谐波参数在平面连杆机构和空间连杆机构上的几何意义,为连杆机构连杆曲线的分析和综合提供了有效的工具。基于傅里叶级数理论解决了连杆曲线特征参数提取的问题,给出了建立平面和空间连杆曲线数值图谱的统一步骤,在此基础上为连杆机构的轨迹综合提供了一个新的思路。
# 改进机器人动力学参数辨识
针对机器人动力学参数辨识的问题,提出一种基于改进傅里叶级数的辨识方法。
采用静态连续摩擦模型描述机器人关节摩擦特性,以确保基于该模型的摩擦补偿是物理可实现的。
推导得到机器人动力学模型的线性形式。
设计严格满足速度、加速度边界条件的改进傅里叶级数作为激励轨迹,并根据条件数准则优化激励轨迹系数。
考虑测量噪声的影响,采用最大似然法作为参数估计的方法。
实验结果表明,采用所提方法的辨识结果能够准确重构机器人关节力矩值。且相比于传统的基于傅里叶级数的辨识方法,该方法提高参数辨识的精度。
# 信息载体
在量纲上,傅立叶变换把一个量纲转换为它的倒数,频率=1/时间,这样做看不出来有什么意义,还是想想看真实世界里的例子吧!
凡有交流,就要传递信号。这种“交流”是指广义的、普遍的,无论是自然界里蝙蝠探路、人们互相交谈,还是卫星接收信号,都属于交流的范畴。为了传递信号,产生交流,我们需要以“波”作为信号的载体。
最简单的波,就以一定频率传播。蝙蝠发出了超声波,人们说话,声带振动带动了空气疏密产生的波(声波),卫星识别电磁波。这样,我们就有了频率的概念。更进一步,除了手机 GHz 的波这些经典电磁波,在量子世界里,原子的跃迁也是以一定的频率发生的。我们甚至可以说,自然选择了以这些单频的模式为基础。
# 信号解析
计算机在处理各种信号时,都会用到傅里叶变换。以声音为例,我们知道声音是物体振动发出的,它是一种波,通过空气或其他介质进行传播。如果用声波记录仪记录并显示这些波的振动形式,会发现生活中的绝大部分的声音是都是非常复杂甚至杂乱无章的。而傅里叶可以把声音的波形分解为震荡叠加的形式,便于进一步处理。
在电子学中,傅里叶级数是一种频域分析工具,可以理解成一种复杂的周期波分解成直流项、基波(角频率为ω)和各次谐波(角频率为nω)的和,也就是级数中的各项。一般,随着n的增大,各次谐波的能量逐渐衰减,所以一般从级数中取前n项之和就可以很好接近原周期波形。这是傅里叶级数在电子学分析中的重要应用。
# 图像压缩
基变换的一个用处:压缩信号。
原始信号需要用1000个点来表示,但是其实只需要40个三角函数系数就可以表示出大概。
大家天天都会遇到的JPG图片就是干这个事的,一张800*600的彩色照片,如果保存成非压缩的BMP图像格式,需要占据1.4M存储空间,如果保存成JPG格式,大概50K就够了。JPG能压缩得这么厉害,诀窍就在于它用了一组特别的基(小波基),使用特别少的基函数就可以把原始图像表示得八九不离十,
在这里频域处理就是把绝大多数基函数前面的系数直接置0。为什么能这么干呢?因为小波基有很强的表达能力,我们总能选取极少的几个小波基函数就能拼出任意一个给定的图像的大概,然后即使抛弃剩下那些大量边角料,也不太会对视觉效果造成什么影响。