资源描述:
《iir和fir滤波器设计专题研讨-2》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《数字信号处理》课程研究性学习报告姓名曾海宁学号11212023同组成员张欧(111212024)易伟(11212022)指导教师时间IIR和FIR滤波器设计专题研讨【目的】(1)掌握根据滤波器指标设计IIR和FIR数字滤波器的原理和方法。(2)熟悉通过IIR和FIR数字滤波器进行实际系统设计的方法。(3)培养学生自主学习能力,以及发现问题、分析问题和解决问题的能力。【研讨题目】1.设计一个数字滤波器,在频率低于的范围内,低通幅度特性为常数,并且不低于0.75dB。在频率和之间,阻带衰减至少为20dB。(1)试求满足这
2、些条件的最低阶Butterworth滤波器。(2)试求满足这些条件的最低阶ChebyshevI滤波器。(3)自主选择一段带限信号,通过所设计的(1)、(2)两种滤波器,比较各自的输入和输出信号。讨论两种滤波器在结构和性能上的差异。【题目分析】本题讨论模拟滤波器和数字滤波器的设计。结合课本分析各类滤波器的特性。数字滤波器是一个离散系统,其系统函数一般可表示为z-1的有理多项式形式,即在设计数字滤波器时,首先根据具体的滤波成分,再确定设计数字滤波器的技术指标,再求出满足设计指标的离散系统的系统函数H(z)。题目中要求分别设
3、计Butterworth滤波器和ChebyshevI滤波器,在选择一段带限信号通过这两个滤波器,实际上就要先将数字技术指标转换成模拟的技术指标,在根据该指标设计出模拟的低通滤波器,再转换成为所需的数字滤波器。BW的NCB1的N可以根据分式的关系来确定N的最小值【IIR模拟滤波器设计的基本方法】IIR滤波器设计的基本方法是首先将数字滤波器的设计指标转换成为模拟滤波器的设计指标,然后设计模拟滤波器H(s)时,再将模拟滤波器H(s)变换为数字滤波器H(z)。在将H(s)变换为H(z)时,要求模拟域到数字域的映射满足下列两个条
4、件:(1)两者的频率特性不变,即s平面的虚轴jw必须映射到z平面的单位圆上。(2)变换后的滤波器仍然是稳定的,即s左半平面必须映射到z平面的单位圆内。这样才能保证变换后的数字滤波器的频率响应与模拟滤波器的频率响应基本一致。s到z域转换设计模拟滤波器频率转换待设计数字滤波器指标数字滤波器H(z)模拟滤波器H(s)模拟滤波器指标IIR数字滤波器的设计过程而模拟滤波器的设计都是通过设计模拟低通滤波器来实现,比较常用的模拟低通滤波器有Butterworth(巴特沃思)和Chebyshev(切比雪夫)等。将模拟滤波器变换为数字滤
5、波器的主要方法有脉冲响应不变法和双线性变换法。【仿真结果】(1)Butterworth滤波器Ap=0.4192As=19.9999N=8(2)ChebyshevI滤波器Ap=0.7523As=21.3368N=4(3)1)信号通过Butterworth滤波器前后的信号波形对比信号通过Butterworth滤波器前后的频谱波形对比2)信号通过ChebyshevI滤波器前后的信号波形对比信号通过ChebyshevI滤波器前后的频谱波形对比【结果分析】Butterworth滤波器通带拥有很好的稳定性,基本上恒定在一个常数上,
6、然后整一个滤波器在频域范围内单调下降,衰减的也很快,是一个非常理想的滤波器。ChebysheyI滤波器在通带会有稍微的波动,而除去通带外的部分也是呈现单调下降的波形。【自主学习内容】(1)设计IIR数字滤波器的步骤。(2)用Butterworth、ChebyshevI和ChebyshevII等设计方法设计模拟低通滤波器。(3)通过频率转换变换将模拟低通滤波器转换为所需的滤波器的类型。【阅读文献】《数字信号处理(第二版)》陈后金主编高等教育出版社【发现问题】(专题研讨或相关知识点学习中发现的问题):在自己设计的带限信号的
7、高阶部分并不能被滤波器所滤除。【问题探究】【仿真程序】(1)Wp=0.2613*pi;Ws=0.4018*pi;Ap=0.75;As=20;Fs=1;wp=Wp*Fs;ws=Ws*Fs;[N,wc]=buttord(wp,ws,Ap,As,'s');[numa,dena]=butter(N,wc,'s');[numd,dend]=impinvar(numa,dena,Fs);w=linspace(0,pi,1024);h=freqz(numd,dend,w);norm=max(abs(h));plot(w/pi,20*
8、log10(abs(h)/norm));xlabel('Normalizedfrequency');ylabel('Gain,dB');gridon;w=[WpWs];numd=numd/norm;h=freqz(numd,dend,w);fprintf('Ap=%.4f',-20*log10(abs(h(1))));fprint