本文从以下几点来理解傅立叶变换:
- 傅立叶变换是什么
- 傅立叶变换是用来干什么的
- 傅立叶变换是怎么做的
傅立叶变换是什么
傅立叶变换是法国学者傅立叶提出的一种线性的积分变换,它能将信号从时域转换到频域,或从频域转换到时域。对于时域和频域的我的理解是:
以一首交响乐为例,假设共有10种不同的乐器(如小提琴、萨克斯、钢琴等),都从头演奏到尾。
整个交响乐所演奏的乐曲声音我们可以录下来作为一段曲子,那么这段曲子上任取一个时间点,其声音都是由10种乐器的声音所组合形成的。
若从整个时间上看,这段曲子是由10种乐器所演奏出来的,我们可以单独取出一种乐器,这种乐器所演奏的片段可看作是交响乐的一种组成成分。
从时间点的角度出发,认为乐曲是由无数的时间点组成,时间点上的声音是10种乐器组合的声音,这种角度就是时域。从乐器的角度出发,认为交响乐是由10种乐器演奏的乐曲组成,这种角度就是频域。
而在傅立叶变换中,可以将信号分解成无数正弦波的叠加,这些正弦波振幅、频率、相位有所不同,用图片展示(该图片转自知乎 韩昊):
我们可以看到,最前面的矩形被分解成了许多正弦波的叠加(其中有一些是直线,那是振幅为0的正弦波)。那么,傅立叶变换干的事就是将矩形波(时域的原始信号)转换成了若干正弦波(频域的波形信号)的叠加,或者相反的过程。
傅立叶变换是用来干什么的
傅立叶变换将信号从时域转换到频域的操作可以使得一些对信号的操作变得可行了。比如,你喜欢的女生婷婷对你唱了一首歌,你欢喜地录了下来,结果回家之后再去回放的时候发现你将旁边空调的声音也录进去了,而且声音还贼大!你想要将空调的声音去掉(假设空调的声音频率固定),可是这在时域的信号上很难办。如果利用傅立叶变换,我们可以发现在频域上空调的声音被完美地分出来变成了一条波形信号,那么只需要将对应的波形信号去掉再变换回去,就可以得到婷婷的歌声啦^o^
傅立叶变换是怎么做的
首先说明,我只是想对傅立叶变换进行一个简单的理解,所以下面的内容在数学推导上也许并不够严谨,只是为了方便大家理解。
首先抛出傅立叶变换公式:
连续傅立叶变换:
连续傅立叶变换逆变换:
其中,F(ω)为频率域函数,f(t)为时间域函数,i为虚数符号
傅立叶变换根据信号的是否连续、是否周期分为4种操作,但我觉得其思路大致相同,区别在于数学推导上的不同。此处就仅仅对这连续傅立叶变换讲一下我的理解。
首先介绍欧拉公式:
很明显,这个公式可以将任意的一个复数以指数的形式表达出来,且可以写成a*cos(x) + i*b*sin(x)的形式。由于任意不同的三角函数在2PI的周期上是正交的,那么我们可以将所有的不同的三角函数作为表达原始信号的一组基,或者说原始信号可以是所有的不同的三角函数的一个线性组合(许多三角函数的系数为0)。
由于正交的存在,我们只需要将原始信号乘上对应的三角函数ck再进行积分,则原始信号中属于其他三角函数的部分与三角函数ck相乘后积分的结果必为0,那么产生的结果就是原始信号中属于三角函数ck的部分和ck相乘积分的结果F(ω)。通过这种方法可以将原始信号分解成波形信号的组合,这也是连续傅立叶变换式子的意义。
此处选择以cos(wx) + i*sin(wx)作为基,我认为选择这种基有助于逆变换的进行,也有利于计算的进行,并不是非这种形式不可。因为相同频率的波形信号都是可以通过拆分与合并来变形成cos(wx) + i*sin(wx)的形式,所改变的只是积分之后的那个系数而已。
对于逆变换,即将波形信号转变回原始信号,则是将原来积分得到的F(ω)再乘上e^(-ix),即cos(wx) - i*sin(wx),并进行积分。我们可以发现,cos(wx) - i*sin(wx)与cos(wx) + i*sin(wx)相乘的结果正好是1,这种操作正好将原来对原始信号乘上cos(wx) + i*sin(wx)的操作的影响消除了从而获得了原始信号。对于其他傅立叶变换的思路大致也如此,在此就不做介绍。
本文只从我对傅立叶变换的理解角度进行介绍,避开了详细的数学推导以及真正的公式意义,有兴趣的同学可以从别的地方在去学习。
参考文献:
[1] 从头到尾彻底理解傅里叶变换算法 JULY
[2] 傅里叶分析之掐死教程 韩昊