python做fft的估计,最近在研究变换和dsp,留个爪子

#coding=utf-8
02 '''
03 Created on 2012-5-14
04
05 @author : 大孟
06 '''
07 from numpy import sin,pi,arange,linspace,abs
08 from numpy.fft import fft
09 from pylab import figure,plot,subplot,show
10 #注释掉这些可以启用latex,前提是你配置好了
11 #from matplotlib import rc
12 ##rc('text', usetex=True)
13 #rc('text.latex', unicode=True)
14
15 #真实频率
16 f=190.5
17 #估计频率,因为fft与截窗大小有关
18 freq_est=100.0
19 #scale用来对估计周期再度分割
20 scale=100.0
21 freq_max=freq_est*scale
22 #sampling_rate是模拟到数字的采样率,fft_size指做fft变换时只用前
23 sampling_rate,fft_size = 1000.0,200.0
24 #截窗的长度取采样点数(归一化的长度)除以估计的频率乘以一个比例
25 #波长/采样点=周期/分割系数
26 wave_len=sampling_rate*(1/freq_max)
27 step=wave_len/sampling_rate
28 t=arange(0,wave_len,step)
29 y=sin(2*pi*f*t)
30 y_fft=y[:fft_size]
31 xf=linspace(0,freq_max,fft_size)
32 yf =abs(fft(y_fft))*2 /fft_size
33
34 figure(figsize=(10,15))
35
36 subplot(211)
37 plot(t,y)
38 subplot(212)
39 plot(xf,yf)
40
41 show()

你可能感兴趣的:(python做fft的估计,最近在研究变换和dsp,留个爪子)