一、引入
生活当中,我们常常需要把杂乱的信息分解开进行研究。比如我们看到的光是无色的,但是当其透过三棱镜时,会发生色散,这样不同颜色的光就被我们分离出来了,我们就可以对光进行研究了。光是一种电磁波,同样地,声波、收音机的波也可以进行类似的处理,将不同的频段分离出来,就可以进行降噪。
二、概念
f(t)是t的周期函数,如果t满足狄里赫莱条件:在一个以2T为周期内f(X)连续或只有有限个第一类间断点,附f(x)单调或可划分成有限个单调区间,则F(x)以2T为周期的傅里叶级数收敛,和函数S(x)也是以2T为周期的周期函数,且在这些间断点上,函数是有限值;在一个周期内具有有限个极值点;绝对可积。则有下图①式成立。称为积分运算f(t)的傅立叶变换,
②式的积分运算叫做F(ω)的傅立叶逆变换。F(ω)叫做f(t)的像函数,f(t)叫做
F(ω)的像原函数。F(ω)是f(t)的像。f(t)是F(ω)原像。
①傅立叶变换
②傅立叶逆变换
(以上摘自百度百科词条“傅里叶变换”)
三、代码实现
由上面的定义我们看到,傅里叶变换是可逆的,其允许原始信号和变换过的信号相互转换。但是要注意,在任一时刻只有一种信息可用。即变换后的频域中没有时间信息(如图2),逆变换(也就是变换前)的时域中没有频率信息(如图1)。
图1绘制代码如下:
以信号 y=np.cos(2pa10x)+np.cos(2pa25x)+np.cos(2pa50x)+np.cos(2pa100x)为例(x可以看作时间,单位为秒)(我们将信号y用10、25、50、100Hz的频率加合表示)
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
plt.figure()
import numpy as np
import math
pa=math.pi
x=np.linspace(0,0.5,200)
y=np.cos(2*pa*10*x)+np.cos(2*pa*25*x)+np.cos(2*pa*50*x)+np.cos(2*pa*100*x)
plt.xlabel('Time/s'