离散傅里叶变换
•法国数学家傅立叶于1807年发表了一篇论文,论文里描述运用正弦曲线来描述温度分布,论文里有个在当时具有争议性的决断:任何连续周期信号都可以由一组适当的正弦曲线组合而成。
•离散信号的频谱是周期的,周期信号的频谱是离散的。
•连续信号的频谱是非周期的,非周期信号的频谱是连续的。
离散傅里叶变换的PYTHON实现
•IMPORT NUMPY AS NP
•FROM SCIPY.FFTPACK IMPORT FFT,IFFT
•IMPORT MATPLOTLIB.PYPLOT AS PLT
•
•X=NP.LINSPACE(0,1,1400)
•
•#设置需要采样的信号,频率分量有180,390和600
•Y=7*NP.SIN(2*NP.PI*180*X) + 2.8*NP.SIN(2*NP.PI*390*X)+5.1*NP.SIN(2*NP.PI*600*X)
•
•YY=FFT(Y) #快速傅里叶变换
•YREAL = YY.REAL # 获取实数部分
•YIMAG = YY.IMAG # 获取虚数部分
•
•YF=ABS(FFT(Y)) # 取绝对值
•YF1=ABS(FFT(Y))/LEN(X) #归一化处理
•YF2 = YF1[RANGE(INT(LEN(X)/2))] #由于对称性,只取一半区间
XF = NP.ARANGE(LEN(Y)) # 频率
XF1 = XF
XF2 = XF[RANGE(INT(LEN(X)/2))] #取一半区间
#PLT.SUBPLOT(221)
PLT.PLOT(X[0:50],Y[0:50])
PLT.TITLE('ORIGINAL WAVE')
PLT.SHOW()
#PLT.SUBPLOT(222)
PLT.PLOT(XF,YF,'R')
PLT.TITLE('FFT OF MIXED WAVE(TWO SIDES FREQUENCY RANGE)',FONTSIZE=7,COLOR='#7A378B') #注意这里的颜色可以查询颜色代码表
PLT.SHOW()
#PLT.SUBPLOT(223)
PLT.PLOT(XF1,YF1,'G')
PLT.TITLE('FFT OF MIXED WAVE(NORMALIZATION)',FONTSIZE=9,COLOR='R')
PLT.SHOW()