文档详情

数字信号处理课程设计IIR数字滤波器以实现.docx

发布:2017-10-12约1.21万字共31页下载文档
文本预览下载声明
一、课程设计目的:1.全面复习课程所学理论知识,巩固所学知识重点和难点,将理论与实践很好地结合起来。2. 掌握信号分析与处理的基本方法与实现3.提高综合运用所学知识独立分析和解决问题的能力;4.熟练使用一种高级语言进行编程实现。二、课程设计题目和具体设计(分题列出);(五)第五题1.设计题目及设计要求设有一信号,设计各种IIR数字滤波器以实现:低通滤波器,滤除的成分,保留成分高通滤波器,滤除的成分,保留成分带通滤波器,滤除的成分,保留成分带阻滤波器,滤除的成分,保留成分要求:1) 求出各个滤波器的阶数,设计各滤波器。画出各滤波器的幅频和相频特性,计算滤波器的系统函数H(z) 2) 画出滤波前后信号的时域、频域波形2.设计思想及系统功能分析本题主要考察四种基本IIR数字滤波器的设计,需要先对时域信号进行分析,确定各种滤波器的参数指标,然后根据matlab的一些固定调用格式对滤波器的阶数,截止频率等进行设计最后再生成最终滤波器,然后利用生成的滤波器对信号进行滤波。3.关键部分的理论分析与计算关键部分在于分析滤波器的参数指标时,要将频率都进行归一化,因为此处设计的是数字滤波器;另外,通带衰减一般小于3dB,阻带衰减一般大于30dB;设计带通、带阻滤波器时其截至频率分为上限截至频率和下限截至频率,书写方式为区间形式;另外,此处根据信号形式选择通、阻带截频时,应注意在所给信号频率的附近根据要求作适当的调整,不能刚好将所给的频率作为截止频率,因为滤波器不可能完全理想,为了保证信号能尽量无失真的滤波出来,就要通带范围稍微大一点。4.程序源代码%第五题%(1)设计数字低通滤波器figure(1);T=1wp1=0.4;ws1=0.5;ap1=1;as1=30;%给出数字参数指标[N1,wc1]=buttord(wp1,ws1,ap1,as1);%计算阶数N和3Db处的频率 N1 %在命令框中显示N[B1,A1]=butter(N1,wc1);%求巴特沃斯型数字滤波器w=linspace(0,2*pi,1000);%在0-2*pi内将w分成1000个点h1=freqz(B1,A1,w);%调用freqz函数,求解幅频响应magh1=abs(h1);%求出幅频特性pha1=angle(h1);%求出相频特性subplot(321);plot(w/pi,magh1,r);%画图title(低通滤波器幅频特性曲线);xlabel(模拟频率);subplot(322);plot(w/pi,pha1,r);title(低通滤波器相频特性曲线);xlabel(模拟频率);n=0:72;%选取序列长度w=pi*n/73;%分出与n相对应的wxn=1+cos(pi*n/4)+cos(2*pi*n/3);%原序列subplot(323);stem(n,xn,.);%画出原序列title(xn的时域曲线);xlabel(n);ylabel(xn);X=abs(xn*exp(-1*j*n*w));%原序列的序列傅里叶变换subplot(3,2,4);stem(w,X,.);%画出序列傅里叶变换的曲线title(xn的频域曲线);xlabel(w);ylabel(X);y1=filter(B1,A1,xn);%利用filter函数恢复出滤波后的函数subplot(325);stem(n,y1,.m);%画图title(低通滤波后的时域曲线);xlabel(n);ylabel(y1);Y1=abs(y1*exp(-1*j*n*w));%恢复后的函数的序列傅里叶变换subplot(3,2,6);stem(w,Y1,.m);%画图title(低通滤波后的频域曲线);xlabel(w);ylabel(Y1);%(2)设计数字高通滤波器figure(2);wp2=0.5;ws2=0.4;ap2=1;as2=30;[N2,wc2]=buttord(wp2,ws2,ap2,as2); N2 [B2,A2]=butter(N2,wc2,high); w=linspace(0,2*pi,1000);h2=freqz(B2,A2,w);magh2=abs(h2);pha2=angle(h2);subplot(321);plot(w/pi,magh2,r);title(高通滤波器幅频特性曲线);xlabel(模拟频率);subplot(322);plot(w/pi,pha2,r);title(高通滤波器相频特性曲线);xlabel(模拟频率);n=0:72;w=pi*n/73;xn=1+cos(pi*n/4)+cos(2*pi*n/3);subplot(323);stem(n,xn,.);title(xn的时域曲线);xlabel(n);ylabel(xn);X=abs(xn*exp
显示全部
相似文档