Python实现快速傅里叶变换(FFT)

import numpy as np
import matplotlib.pyplot as plt

#采样点选择1400个,因为设置的信号频率分量最高为600赫兹,根据采样定理知采样频率要大于信号频率2倍,所以这里设置采
#样频率为1400赫兹(即一秒内有1400个采样点,一样意思的)
x=np.linspace(0,1,1400)
#设置需要采样的信号,频率分量有180,390和600
y=7np.sin(2np.pi180x) + 2.8np.sin(2np.pi390x)+5.1np.sin(2np.pi600x)
yy=np.fft.fft(y)#//快速傅里叶变换
yreal = yy.real # 获取实数部分
yimag = yy.imag # 获取虚数部分

yf=np.abs(fft(y)) # 取绝对值,计算复数的振幅
xf = np.arange(len(y)) # 频率,len(y)就是1400,xf就是【0,。。。,1399】
plt.subplot(221)
plt.plot(x[0:50],y[0:50])
plt.title(‘Original wave’)
plt.show()

你可能感兴趣的:(工作总结)