华南理工大学数字信号处理实验四实验报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实验报告课程名称:数字信号处理实验学生姓名:陈艺荣学生学号:201530301043学生专业:2015级电子科学与技术(卓越班)开课学期:2017-2018学年第一学期电子与信息学院2017年10月1实验四FIR数字滤波器设计及应用地点:31号楼405房;实验台号:8实验日期与时间:2017年12月15日评分:实验教师:薛洋电子文档文件名:陈艺荣_201530301043_实验四报告正文1实验目的综合运用数字信号处理的理论知识进行信号分析,并利用MATLAB作为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念。学会用MATLAB对信号进行分析和处理。掌握低通滤波器、高通滤波器、带通滤波器的设计及用MATLAB实现这些数字IIR滤波器。掌握MATLAB函数书写,特别是用MATLAB函数封装自己设计的滤波器,并实现参数可调。学会如何设计FIR低通滤波器,熟悉掌握FIR滤波器的窗函数设计方法了解不同窗函数对滤波器性能的影响2实验原理2.1IIR滤波器按脉冲响应来分类,数字滤波器分为IIR和FIR,即无限冲激响应滤波器和有限冲激响应滤波器;其中IIR网络中有反馈回路,FIR网络中没有反馈回路。IIR滤波器是无限脉冲响应滤波器,又称递归型滤波器,即结构上带有反馈环路。特点:IIR数字滤波器的系统函数可以写成封闭函数的形式,具有反馈回路;IIR数字滤波器的相位非线性,相位特性不好控制,随截止频率变化而变化,2对相位要求较高时,需加相位校准网络;IIR滤波器有历史的输出参与反馈,同FIR相比在相同阶数时取得更好的滤波效果;IIR数字滤波器采用递归型结构,由于运算中的舍入处理,使误差不断累积,有时会产生微弱的寄生振荡。两种常用IIR滤波器:1、巴特沃斯滤波器:通带和阻带有最大平坦度,但是过渡带比较平缓,当需要比较陡峭的过渡带时,需要较大的阶数;巴特沃斯滤波器对于系数量化影响相对较弱。2、Chebyshev滤波器:分为I型和II型,I型通带等纹波,阻带平坦;II型通带平坦,阻带等纹波,过渡带较巴特沃斯滤波器陡峭;2.2低通滤波器低通滤波器是容许低于截止频率的信号通过,但高于截止频率的信号不能通过的一种滤波器。其频谱响应形如图1所示。图1低通滤波器频谱相应示例2.3高通滤波器高通滤波器是一个使高频率比较容易通过而阻止低频率通过的系统。它去掉了信号中不必要的低频成分或者说去掉了低频干扰。其频谱相应如图2。3图2高通滤波器频谱相应示例2.4带通滤波器带通滤波器:它允许一定频段的信号通过,抑制低于或高于该频段的信号、干扰和噪声。图3带通滤波器频谱相应示例2.5用到的MATLAB函数分析用MATLAB设计IIR数字滤波器,参考函数列表如下:Butterworth低通滤波器1、将数字滤波器的指标转成模拟滤波器的指标%wp,ws的处理参考书356页例9.3和9.4。但注意书上是设计高通滤波器!2.[N,wn]=buttord(wp,ws,rp,rs,’s’);3.[num,den]=butter(N,wn,’type’,’s’);4.[numz,denz]=bilinear(num,den,Fs);%Fs=1/T=0.5Chebyshev-I滤波器5.W=hann(N);%N是滤波器的长度=2M+16.W=hamming(N);47.W=blackman(N);8.h=fir1(N-1,fc,’filtype’,w(N));%fc=wc/pi;wc:理想低通的截至频率%fir1的第一个参数是滤波器的阶数,所以用滤波器的长度N-1得到。1、将数字滤波器的指标转成模拟滤波器的指标%wp,ws的处理参考书356页例9.3和9.4。但注意书上是设计高通滤波器!2.[N,wn]=cheblord(wp,ws,rp,rs,’s’);3.[num,den]=cheby1(N,wn,’type’,’s’);4.[numz,denz]=bilinear(num,den,Fs);3实验内容一、用窗函数法设计如下三种类型的FIR滤波器,滤波器的性能指标:低通滤波器:通带截止频率1000Hz,阻带截止频率1200Hz,采样率4000Hz,通带波纹1dB,最小阻带衰减40dB;高通滤波器:通带截止频率1400Hz,阻带截止频率1000Hz,采样率4000Hz,通带波纹1dB,最小阻带衰减40dB;带通滤波器:通带截止频率fp1=900Hz,fp2=1300Hz,阻带截止频率fs1=600Hz,fs2=1500Hz,采样率4000Hz,通带波纹1dB,最小阻带衰减40dB。二、要画出各种滤波器的频率响应特性(用freqz函数)三、再用双线性变换法设计上面的三种IIR滤波器(可以选择butteworthorchebyshey)1、读出所给音频信号,确定该音频信号的采样率和量化比特数;画出该音频信号的时域波形和频谱图;2、对该音频信号加随机噪声,画出加噪后的音频信号的时域波形和频谱图;3、挑选一个合适的滤波器对该信号进行滤波(请说明是FIR还是IIR,为什么这么选择?),画出滤波器的频谱和滤波后音频信号的频谱。播放滤波前后的音频信号,感觉音频的变化;4、对加噪前的音频信号以间隔M=2进行采样,回放音频信号,感觉和原来有什5么不同?5、你想怎么解决?6、画出解决前后音频信号的波形及频谱。播放解决前后的音频信号,感觉前后声音的变化。3.1低通滤波器设计3.1.1实验题目1、读出所给音频信号,确定该音频信号的采样率和量化比特数;画出该音频信号的时域波形和频谱图;2、对该音频信号加随机噪声,画出加噪后的音频信号的时域波形和频谱图;3、挑选一个合适的滤波器对该信号进行滤波(请说明是FIR还是IIR,为什么这么选择?),画出滤波器的频谱和滤波后音频信号的频谱。播放滤波前后的音频信号,感觉音频的变化;4、对加噪前的音频信号以间隔M=2进行采样,回放音频信号,感觉和原来有什么不同?5、你想怎么解决?6、画出解决前后音频信号的波形及频谱。播放解决前后的音频信号,感觉前后声音的变化。3.1.2程序设计设计了一个低通滤波器函数LowpassFilter(fp,fs,fsam,pr,minsa,filtertype),具体代码如下:function[b,a]=LowpassFilter(fp,fs,fsam,pr,minsa,filtertype)%LowpassFilter低通滤波器%默认采样率4000Hz,通带波纹1dB,最小阻带衰减40dB%符号符号说明%fp通带截止频率,单位:Hz%fs阻带截止频率,单位:Hz%fsam采样率,单位:Hz%pr通带波纹(passbandripple),单位:dB%minsa最小阻带衰减(minimumstopbandattenuation),单位:dB%filtertypebutteworthorchebyshey类型选择%a传输函数的分母的参数6%b传输函数的分子的系数%jw-jw-jmw%jwB(e)b(1)+b(2)e+....+b(m+1)e%H(e)=----=------------------------------------%jw-jw-jnw%A(e)a(1)+a(2)e+....+a(n+1)e%%ChenYirong修改于2017-12-01%代码编辑matlab版本:MATLABR2014a%%参数输入narginchk(2,6);%输入的实参至少包括fp,fsnargoutchk(0,2);ifnargin==2fsam=4000;%默认采样率pr=1;%默认通带波纹minsa=40;%默认最小阻带衰减filtertype='butteworth';%默认滤波器类型elseifnargin==3pr=1;%默认通带波纹minsa=40;%默认最小阻带衰减filtertype='butteworth';%默认滤波器类型elseifnargin==4minsa=40;%默认最小阻带衰减filtertype='butteworth';%默认滤波器类型elseifnargin==5filtertype='butteworth';%默认滤波器类型elseifnargin==6if~strcmp(filtertype,'butteworth')&&~strcmp(filtertype,'chebyshey')error(message('类型选择错误!,请保证type参数输入为butteworth或chebyshey'));endend%%判断参数是否正确%1、判断滤波器类型if(~strcmp(filtertype,'butteworth')&&~strcmp(filtertype,'chebyshey'))error(message('类型选择错误!请保证type参数输入为butteworth或chebyshey'));end%2、判断fp是否小于等于fsif(fpfs)7error(message('参数输入错误!请保证低通滤波器的通带截止频率小于等于阻带截止频率'));end%%进行低通滤波fmax=fsam/2;%计算最大频率Wp=fp/fmax;Ws=fs/fmax;Rp=pr;Rs=minsa;if(strcmp(filtertype,'butteworth'))%选择butteworthif((fp=fmax))error(message('通带截止频率大于最大频率!请保证fpfmax'));endif((fs=fmax))%调整阻带频率fs=fmax-1;Ws=fs/fmax;end[N,Wn]=buttord(Wp,Ws,Rp,Rs,'s');[b,a]=butter(N,Wn,'low');%低通滤波器elseif(strcmp(filtertype,'chebyshey'))%选择chebysheyif((fp=fmax))error(message('通带截止频率大于最大频率!请保证fpfmax'));endif((fs=fmax))%调整阻带频率fs=fmax-1;Ws=fs/fmax;end[N,Wn]=cheb1ord(Wp,Ws,Rp,Rs);[b,a]=cheby1(N,Rp,Wn,'low');%低通滤波器endend3.1.3结果分析运行以下代码:%%参数设置fsam=4000;fmax=fsam/2;pr=1;minsa=40;%%低通滤波器:通带截止频率1000Hz,阻带截止频率1200Hz,采样率4000Hz,通带波纹1dB,最小阻带衰减40dB;figure('Name','数字低通滤波器设计','Position',[20,60,600,250]);fp=1000;8fs=1200;subplot(1,2,1)[b,a]=LowpassFilter(fp,fs,fsam,pr,minsa);[h,omega]=freqz(b,a,256);gain=abs(h);%gain=20*log10(abs(h));plot(fmax*omega/pi,gain);grid;xlabel('f(Hz)');ylabel('幅度');title('(a)butterworth低通滤波器');holdon;plot([fp,fp],[0,1],'r-');axis([0,2000,0,1.1]);subplot(1,2,2)[b,a]=LowpassFilter(fp,fs,fsam,pr,minsa,'chebyshey');[h,omega]=freqz(b,a,256);gain=abs(h);%gain=20*log10(abs(h));plot(fmax*omega/pi,gain);grid;xlabel('f(Hz)');ylabel('幅度');title('(b)chebysheyI型低通滤波器');holdon;plot([fp,fp],[0,1],'r-');axis([0,2000,0,1.1]);结果如下:图4两种低通滤波器的频谱响应93.2

1 / 34
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功