基于matlab的数字滤波器设计

更新时间:2024-03-18 07:59:02 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

最新【精品】范文 参考文献 专业论文

基于matlab的数字滤波器设计

基于matlab的数字滤波器设计

【摘要】本文在分析数字滤波器设计理论的基础上,运用matlab数学处理软件编程,设计出符合要求的IIR和FIR数字滤波器,为数字滤波器的设计和应用提供了较为有效的方法。

【关键字】IIR,FIR,数字滤波器,matlab 1.引言

数字滤波过程是一个计算的过程,由A/D转换器、数字滤波器和D/A转换器这三部分构成。将采集到的模拟信号经由A/D转换器转换成数字信号,通过数字滤波器后,过滤掉不需要的频率成分,再经由D/A转换器转换成模拟信号输出。在手算设计过程中需要大量较为繁琐的计算过程,费时费力且不能保证设计效果。所以,目前设计过程通常借助计算机matlab软件编程来加以实现。 2.IIR数字滤波器设计

IIR数字滤波器的设计思路通常是先设计出符合要求的模拟滤波器,然后再用数字滤波器进行逼近。它的设计方法有冲激响应不变法和双线性变换法这两种。matlab软件工具箱中有几个专门设计IIR型数字滤波器的函数,极大的方便了IIR型数字滤波器的编程设计。 2.1冲激响应不变法设计

由冲激响应不变法设计出的数字滤波器存在频率特性混叠现象,只在折叠频率范围内才可以与模拟滤波器有较好的逼近效果。所以,使用冲激响应不变法设计的低通、带通滤波器都有较好的效果,但是设计的高通、带阻滤波器效果不是很好。

由matlab实现该设计实例:设计数字低通滤波器,要求通带、阻带具有单调下降特性。设计参数有:ωp=0.2πrad,αp=1dB,ωs=0.35πrad,αs=10dB。

部分程序如下:采用巴特沃斯滤波器进行设计

>>fp=0.1;fs=0.175;Fs=0.5;Rp=1;Rs=10;T=1/Fs; %参数输入

最新【精品】范文 参考文献 专业论文

>>W1p=fp/Fs*2;W1s=fs/Fs*2; %归一化频率

>>[N,Wn]=buttord(W1p,W1s,Rp,Rs,'s'); %确定最小阶数和频率参数

>>[z,p,k]=buttap(N); >>[bp,ap]=zp2tf(z,p,k);

>>[bs,as]=lp2lp(bp,ap,Wn*pi*Fs);

>>[bz,az]=impinvar(bs,as,Fs); %用冲激响应不变法进行模数变换

>>sys=tf(bz,az,T); %计算传输函数H(z) >>[H,W]=freqz(bz,az,512,Fs); %计算频响参数 运行得到传输函数和特性曲线(图1): 2.2双线性变换法设计

因为双线性变换法不存在频率混叠现象,所以多种滤波器的设计都有较好的效果,但是有非线性频率失真现象的出现,需要预畸处理来解决。

由matlab实现该设计实例:设计数字低通滤波器,采样周期T=2s,通带频率wp=0.2πrad/s,阻带频率ws=0.35πrad/s,抽样频率fs=0.5Hz,通带衰减Rp=1dB,阻带衰减Rs=10dB。 部分程序如下:采用巴特沃斯滤波器进行设计

>>fs=0.5;wp=0.2*pi; ws=0.35*pi; Rp=1; Rs=10; Ts=1/fs; >>Wp=2/Ts*tan(wp/2);Ws=2/Ts*tan(ws/2); %参数转换 >>[N,Wn]=buttord(Wp,Ws,Rp,Rs,'s'); %确定最小阶数 >>[z,p,k]=buttap(N); >>[Bap,Aap]=zp2tf(z,p,k); >>[b,a]=lp2lp(Bap,Aap,Wn);

>>[bz,az]=bilinear(b,a,fs); %运用双线性变换法进行模数转换

>> sys=tf(bz,az,T); %计算传输函数H(z) >>[H,f]=freqz(bz,az,512,fs); %计算频响参数 运行得到传输函数和特性曲线(图2): 3.FIR数字滤波器设计

最新【精品】范文 参考文献 专业论文

FIR型数字滤波器的特点是,在保证其幅度特性的同时可以得到较好的相位特性,但是它的阶数较高,计算量较大。FIR型数字滤波器通常采用窗函数法进行设计。基本的设计思想是:根据给出的技术参数,选定滤波器的长度N和窗函数ω(n),使滤波器具有最窄的主瓣宽度和最小的旁瓣。

由matlab实现该设计实例:加窗设计数字低通滤波器,采样频率Fs=10KHz,通带0≤f≤1.5KHz内衰减小于1dB,阻带2.5KHz≤f≤∞上衰减大于40dB。

部分程序如下:采用海宁窗进行设计 >>wp=0.3*pi;wr=0.5*pi; >>trwidth=wr-wp; %计算过渡带宽

>>N=ceil(6.64*pi/trwidth)+1; %计算滤波器长度N >>wc=(wr+wp)/2; %计算截止频率

>>hd=ideal_lp(wc,N); %计算理想脉冲响应 >>w_ham=(hamming(N))'; %求窗函数 >>h=hd.*w_ham; %计算实际脉冲响应 运行得到响应序列:

程序中滤波器的阶数N=35,具体的系数h(n)如下: 0.00088046 0.0016618 -1.7318e-018 -0.0032198 -0.0028792 0.0040973

0.0092184 -6.4572e-018 -0.016736 -0.013622 0.017798 0.037591

-1.2743e-017 -0.066597 -0.058069 0.090643 0.30036 0.4 0.30036 0.090643 -0.058069 -0.066597 -1.2743e-017 0.037591 0.017798

-0.013622 -0.016736 -6.4572e-018 0.0092184 0.0040973 -0.0028792

-0.0032198 -1.7318e-018 0.0016618 0.00088046 4总结

由上述设计可以看出利用matlab软件编程,可以较为快速地设计出指定参数的IIR型和FIR型数字滤波器,从以上的matlab仿真

最新【精品】范文 参考文献 专业论文

结果可以看出它们均可达到设计要求,操作快捷便利,大大减少了工作量。并且,matlab软件仿真的实用性较强,而且可以有效地对比滤波器特性,并能方便地调整其性能参数,满足设计要求,设计出更好更快捷的数字滤波器。

------------最新【精品】范文

本文来源:https://www.bwwdw.com/article/zgf8.html

Top