"""
scipy6.0-波形的傅里叶变换
mayuhua
2020.5.17
"""
import numpy as np
import matplotlib.pyplot as plt
def signal(t):
return 2*np.sin(0.5*2*np.pi*t)+np.sin(3*2*np.pi*t)
N = 1000 #设置取N个点
time = 10
t = np.linspace(0,time,N)
#画出原始波形图。对于这样一个散乱的波形,如何知道它到底是由多大强度的频率的波合成
#如果知道频率及其强度,可以进一步计算能量之类的物理量。
plt.plot(t,signal(t))
plt.show()
#傅里叶变换。时域变换到频域
from scipy import fftpack
Iw = fftpack.fft(signal(t)) #各频率对应的强度
f = fftpack.fftfreq(N,time/N) #频率 (采点数,采点间隔)
plt.plot(f,np.abs(Iw))
plt.xlim(0,5) #限制x轴显示范围
plt.title('frequancy piture')
plt.show()
输出结果:
原数据图,时域
傅里叶变换后,频域