Sheji yu Fenxi!设计与分析
基于Py#hon的FIR数字滤波器设计
汪振兴
spyder python下载(新疆大学信息科学与工程学院,新疆乌鲁木齐830046)
摘要:数字滤波器因具备应用灵活、稳定、处理精度高等优点被广泛应用于信号处理等领域。现介绍了在Anaconda开发环境下,基于Python的FIR数字滤波器仿真设计方法,为后续基于Python的数字信号处理方面的教学、科研提供了参考。
关键词:FIR数字滤波器;Python;数字信号处理
0引言
数字滤波器作为信号处理的核心设备之一,在工业生产、科学研究等领域有着广泛应用。目前在科研和教学领域,数字滤波器主要基于Matlab设计,随着
高校使用MaMab,基于开源平台数字滤波器设计显得重要。介绍了在Anaconda开发环境下,基于Python的有应(FIR)数字滤波器的设计方法。
1Anaconda开发环境简介
Anaconda作为Python的一个开源发行版本,主要面向科学计,了用的方,提供了理与环境理的,方方的,
的Spyder开发环境IPytho n交互式编程环境有于提高程U程用了Python科学计的基数处理库numpy、matplotlib数值计scipy。
2FIR数字滤波器设计
b=signal.firwin(35,0.48J width=None J window=('chebwin'>50),pass_zero=False)
w,h=signal.freqz(b,l)
pit.plot(w/叩.pi,20*np.logl0(abs(h)))
plt.ylabelC幅度/dB')
plt.xlabelC'Ll-化频率/pi')
,p=0.25dB,!s=0.3!,-s=40dB。
当采样点数.初步设置为20时,最小阻带衰减#20dB。为一步增加阻衰减,增采样点数.,还在通和阻界处插入一或几0〜1的采样值来改善特性。这里直接选择.=40,在渡带内*=5和*=35处,增设+(*)=0.39。
2.1窗函数法设计线性相位FIR滤波器Python程序与数字低通滤波器的幅频响应如图2所示,可以看
设计 设的理想滤波器的应为!@!),如果能求出其单位脉冲响应屁(”),Z得滤波器的:函数。因九(%)的,用一有的'点数( (%)(),后的
列为(%),后的应叽彳
考改的形状或的点数)!2"。
下面设计一34阶的高通滤波器,归一化止角为0.48!,使用具有50dB旁瓣纹波
出此时阻带最小衰减可达#40dB以上。
M=40
alpha=(M-l)/2
s(5)
Hrs2=np・zeros(29)
s(4)
T=np.array([0.39])
atenate((Hrsl,T,Hrs2»T_»Hrs3))
d=np.-floor(alpha)+1
kl=np・arange(d〉
k2=np.arange(d,M)总
angHl=-alpha*(2*np.pi)*kl/M掘
angH2=alpha*(2*np.pi)*(M-k2)/M ig
atenate((angHl^angHZ))
HK=p(lj*angH)
al(fftpack.ifft(HK))
w4H=signai・freqz(h,l)
epsilon=le-6
pit.plot(w/np.pi,20*np.logl0(abs(H)+epsilon))
plt.ylabelC fe度/dB')
plt.xlabeicyj-化频率/pi*)归一化频率
图2Pytho n程序与数字低通滤波器的幅频响应
衰减的Chebyshe v窗设计。Python程序与数字高通滤波器的幅应 1所示,也可选择他数设计。
2.2频率采样法设计FIR滤波器
该方法从频域出发,对理的应!(严)等间隔采样得到!(*),并此作为FIR滤波器特性的离散样+(*),!(*)通过IDFT有$(%),同样利用!(*):FIR滤波器的数H应!(!)。
下面设计一个线性相位低通FIR数字滤波器,使得!p=0.2!.2.3等波纹最佳逼近法设计FIR滤波器
该方法克服了数设计法和采样法的缺点,使最大误差最小化,并使权误差在整段上均匀布。该方法所设计的滤波器性价比高,阶数同时使通最大衰减最小、阻最小衰减最大,指标同时使滤波器阶数最低。为取等波纹最佳准的FIR数字滤波器的单位脉冲响应$(%),目前普遍应用的方法是Parks和McCellan提的一高效迭代法—
—雷米兹(Remez)(下转第122页)
机电信息2020年第26期总第632期
119

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