[python科学计算]⽤python进⾏频域分析
选择python的⼀个重要原因是它拥有数量极多,质量上乘的第三⽅库,⽐如,⽤两个库numpy和pylab就很⽅便的实现了对时域波形,调⽤傅⾥叶变换进⾏频域分析,效果图如下:
⽤优雅的python实现如下:
testFFT.py
from pylab import *
import numpy as np
nSampleNum = 5120
ncount = 2048.0
df = nSampleNum / ncount
sampleTime = ncount / nSampleNum
freqLine = 800
x
= np.linspace(0,sampleTime,ncount)#时域波形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')
linspace numpy
title('time domain graph')
subplot(313)
plot(fftx,abs(fft))
xlabel('freqency(Hz)')
ylabel('amplitude')
title('frequency domain graph')
show()
我坚信,类似的功能,⽤python实现⽐⽤matlab实现要更加愉快!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。