[python科学计算] 用python进行频域分析
选择python的一个重要原因是它拥有数量极多,质量上乘的第三方库,比如,用两个库numpy和pylab就很方便的实现了对时域波形,调用傅里叶变换进行频域分析,效果图如下:
用优雅的python实现如下:
testFFT.py
from pylab import *
import numpy as npnSampleNum = 5120
ncount = 2048.0
df = nSampleNum / ncount
sampleTime = ncount / nSampleNum
freqLine = 800= np.linspace(0,sampleTime,ncount)#时域波形x轴坐标
x
sinx = np.sin(2*pi*250*x)
sinx2 = 0.5*np.sin(2*pi*500*x)
sinx3 = 0.3*np.sin(2*pi*1000*x) #以上是三个标准正弦波形
sinx += sinx2
sinx += sinx3 #叠加一个时域波形
fft = np.fft.fft(sinx)[0:freqLine] #调用fft变换算法计算频域波形
fftx = np.linspace(0,df*freqLine,freqLine) #频域波形x轴坐标311)
plot(x,sinx)
xlabel('time(s)')
ylabel('amplitude')
title('time domain graph')
subplot(313)
plot(fftx,abs(fft))
xlabel('freqency(Hz)')
ylabel('amplitude')
title('frequency domain graph')
show()
我坚信,类似的功能,用python实现比用matlab实现要更加愉快!