实验五实验报告___IIR数字滤波器设计与滤波
- 格式:doc
- 大小:1.78 MB
- 文档页数:8
DSP 实验报告实验一 FIR 滤波器的设计1.实验目的利用所学DSP 知识,在CCS3.3平台上,对TMS320VC5416DSP 设计,编程实现FIR 滤波器。
从而学会使用CCS 软件和TMS320VC5416实验板。
2.实验要求设计一个10阶的FIR 滤波器,要求 =2.5kHZ ,定点实现。
并对 =8kHZ 的多正弦波合成文件进行滤波测试,显示出输入和输出信号。
3.实验原理一个截止频率为 的理想数字低通滤波器,其传递函数的表达式为:⎪⎩⎪⎨⎧≤≤≤=-πωωωωωτωc c j jd ee H ,0,)(这个滤波器是物理不可实现的。
为了产生有限长度的冲激响应函数,我们取样响应为)(n h ,长度为N 。
)(n h 表示截取)(n h d 后的冲激响应,即)()()(n h n n h d ω=,其中)(n ω即为窗函数,窗长为N 。
一般的FIR 滤波器差分方程如下:1()()()n k y n h k x n k -==-∑进行Z 变换得到FIR 的系统函数为:∑-=-=10)()(N n nz n h z HN 阶滤波器通常采用N 个延迟单元、N 个加法器与N+1个乘法器组成。
因此可以得到FIR 滤波器的结构图如图1所示。
图1 FIR 滤波器直接结构图4.设计思路对于FIR滤波器的设计,其系数()h n是关键。
由于matlab自带滤波器设计工具箱和滤波器设计函数,故借用matlab工具,设计满足条件的滤波器并导出系数以备编写滤波器程序时使用。
实验需要用到的输入数据是多正弦波合成文件,对于输入信号的设计,这里也借助matlab编程生成dat文件。
然后用C语言编写FIR滤波器的主程序,输入文件在程序运行后导入。
5.实验内容(1)滤波器系数的设计由于实验只给出滤波器条件为N=10,=2.5kHZ,并没有给出和,所以这里调用matlab工具箱函数fir1实现窗函数法设计滤波器。
fir1的调用格式为 ( ,),返回值为6dB截止频率为的N阶(单位脉冲响应h(n)长度=N+1)的FIR低通滤波器的系数向量(为标量),默认选用哈明窗。
数字信号处理实验报告
实验报告
实验名称:IIR数字滤波器设计及软件实现
实验目的:
1.了解数字滤波器的概念和原理;
2.学习IIR数字滤波器的设计方法;
3.实现IIR数字滤波器的软件模拟。
实验设备:
1.计算机;
2.MATLAB或其他数学软件。
实验原理:
IIR数字滤波器是一种反馈式滤波器,其输入与输出之间存在着递归关系,即当前输出值与前一时刻的输出值有关。
IIR数字滤波器的传递函数可以表示为有理函数的形式,由零点和极点所确定。
常见的IIR数字滤波器有低通滤波器、高通滤波器、带通滤波器和带阻滤波器等。
实验步骤:
1.确定滤波器的类型和参数,如滤波器的阶数、截止频率等;
2.根据所需滤波器的传递函数形式,设计其零点和极点;
3.根据设计的零点和极点,利用相应的方法计算出滤波器的系数;
4.利用得到的滤波器系数,实现IIR数字滤波器的软件模拟;
5.输入合适的信号,对其进行滤波处理,并进行结果分析。
实验结果与分析:
根据所设计的IIR数字滤波器的类型和参数,得到了相应的滤波器系数,并利用这些系数进行了滤波器的软件模拟。
将输入信号经过滤波器处理后,得到了滤波后的输出信号。
通过比较输入信号和输出信号,可以观察到滤波器对输入信号的影响,如降低噪声、增强目标信号等。
实验结论:
通过实验,我们了解了IIR数字滤波器的设计方法和实现过程,以及其在信号处理中的应用。
通过对比输入信号和输出信号,我们可以评估滤波器的性能,并据此对滤波器参数进行调整和优化。
计算机科学与工程学院《数字信号处理》实验报告[4]专业班级实验时间2012 年 5月 25 日学生学号实验地点学生姓名指导教师实验项目数字信号处理(IIR数字滤波器设计及软件实现)实验类别实验学时实验目的及要求(1)熟悉用双线性变换法设计IIR数字滤波器的原理与方法;(2)学会调用MATLAB信号处理工具箱中滤波器设计函数(或滤波器设计分析工具fdatool)设计各种IIR数字滤波器,学会根据滤波需求确定滤波器指标参数。
(3)掌握IIR数字滤波器的MATLAB实现方法。
(4)通过观察滤波器输入输出信号的时域波形及其频谱,建立数字滤波的概念。
成绩评定表类别评分标准分值得分合计上机表现按时出勤、遵守纪律认真完成各项实验内容30分报告质量程序代码规范、功能正确填写内容完整、体现收获70分说明:评阅教师:日期: 2010年月日实验内容一.实验目的(1)熟悉用双线性变换法设计IIR数字滤波器的原理与方法;(2)学会调用MATLAB信号处理工具箱中滤波器设计函数(或滤波器设计分析工具fdatool)设计各种IIR数字滤波器,学会根据滤波需求确定滤波器指标参数。
(3)掌握IIR 数字滤波器的MATLAB 实现方法。
(4)通过观察滤波器输入输出信号的时域波形及其频谱,建立数字滤波的概念。
二. 实验内容及步骤(1)调用信号产生函数mstg 产生由三路抑制载波调幅信号相加构成的复合信号st ,该函数还会自动绘图显示st 的时域波形和幅频特性曲线,如图10.4.1所示。
由图可见,三路信号时域混叠无法在时域分离。
但频域是分离的,所以可以通过滤波的方法在频域分离,这就是本实验的目的。
图10.4.1 三路调幅信号st 的时域波形和幅频特性曲线(2)要求将st 中三路调幅信号分离,通过观察st 的幅频特性曲线,分别确定可以分离st 中三路抑制载波单频调幅信号的三个滤波器(低通滤波器、带通滤波器、高通滤波器)的通带截止频率和阻带截止频率。
IIR数字滤波器的设计一、实验目的1、了解IIR数字滤波器的工作原理和作用2、掌握IIR数字滤波器的两种设计方法3、掌握使用MATLAB形成IIR数字滤波器二、实验内容有三首音乐,第一首为正常音质的音乐。
第二首为被加了紧邻原音乐的干扰的音乐。
第三首为被加了远离原音乐干扰的音乐。
要求设计IIR数字滤波器将被干扰的音乐恢复成不受干扰的音乐。
三、实验步骤步骤1: 将实际模拟低通滤波器指标转化为归一化模拟低通滤波器指标λs, αs, αp步骤2: 确定归一化模拟低通滤波器的系统函数Ha(p)步骤3: 由Ha(p)确定实际模拟低通滤波器的系统函数Ha(s)步骤4: 由Ha(s)确定的参数利用MATLAB形成IIR数字滤波器四、实验方法1、脉冲不变相应法:Matlab提供了脉冲不变响应法的库函数:[bz,az]=impinvar(b,a,Fs);表示将分子向量为b,分母向量为a的模拟滤波器通过脉冲响应不变法转换为分子向量为bz,分母向量为az的数字滤波器,采样频率为Fs,单位Hz。
2、双线性变换法:Matlab提供了双线性变换法的库函数:[bz,az]=bilinear(b,a,Fs);表示将分子向量为b,分母向量为a的模拟滤波器通过双线性变换法转换为分子向量为bz,分母向量为az的数字滤波器,采样频率为Fs,单位Hz。
五、实验程序与结果MATLAB代码:clear all;[s1,Fs,bits]=wavread('F:\music2-1.wav');s2=wavread('F:\music2-2.wav');s3=wavread('F:\music2-3.wav');t=(0:length(s1)-1)/Fs; % 计算数据时刻N=length(s1);if mod(N,2)==0;N=N;else s1(N)=[];N=N-1;end;fx=(0:N/2)*Fs/N;%%%%%%%%信号1%%%%%%%%figure(1);subplot(2,1,1);plot(t,s1); %绘制原音乐波形图subplot(2,1,2);s1f=fft(s1);plot(fx,abs(s1f(1:N/2+1)));%%%%%%%%信号2%%%%%%%%figure(2);subplot(2,1,1);plot(t,s2); % 绘制受紧邻原音乐的干扰的音乐的波形图subplot(2,1,2);s2f=fft(s2);plot(fx,abs(s2f(1:N/2+1)));%%%%%%%%信号3%%%%%%%%figure(3);subplot(2,1,1);plot(t,s3); %绘制受远离原音乐的干扰的音乐的波形图subplot(2,1,2);s3f=fft(s3);plot(fx,abs(s3f(1:N/2+1)));%%%%%%%%%滤波器设计1%%%%%%%Wp1=[2*8000*pi/Fs,2*10000*pi/Fs];Ws1=[2*8500*pi/Fs,2*9500*pi/Fs]; Rp=3;Rs=30;Wp11=2*Fs*tan(Wp1/2);Ws11=2*Fs*tan(Ws1/2);[N1,Wn1]=buttord(Wp11,Ws11,Rp,Rs,'s');[b,a]=butter(N1,Wn1,'stop','s');[bz,az]=bilinear(b,a,Fs);Y1=filter(bz,az,s2);figure(4);subplot(2,1,1);plot(t,Y1); %绘制滤波后波形图subplot(2,1,2);Yf1=fft(Y1);plot(abs(Yf1));wavwrite(Y1,Fs,bits,'F:\ music2-2lvbo.wav');%%%%%%%%%滤波器设计2%%%%%%%Wp2=2*7000*pi;Ws2=2*9000*pi;Rp2=3;Rs2=30;[N2,Wn2]=buttord(Wp2,Ws2,Rp2,Rs2,'s');[b2,a2]=butter(N2,Wn2,'s');[bz2,az2]=impinvar(b2,a2,Fs);Y2=filter(bz2,az2,s3);figure(5);subplot(2,1,1);plot(t,Y2); % 绘制滤波后波形图subplot(2,1,2);Yf2=fft(Y2);plot(abs(Yf2)); % 绘制滤波后波形图%%%%%%%%%%%%%%%%%%%%%%W=linspace(0,pi,pi*16000);Hz1=freqz(bz2,az2,W);Hz2=freqz(bz,az,W);figure(6);subplot(2,1,1);plot(abs(Hz1));subplot(2,1,2);plot(abs(Hz2));wavwrite(Y2,Fs,bits,'F:\music2-3lvbo.wav');。
电子信息工程系学生实验报告成绩评定教师签名实验课程名称:数字信号处理实验项目名称:IIR数字滤波器设计及软件实现实验时间:2012 年06 月01 日班级:座号:姓名:电子信息工程学院编制实验预习部分一、实验目的(1)熟悉用双线性变换法设计IIR 数字滤波器的原理与方法;(2)学会调用MATLAB 信号处理工具箱中滤波器设计函数(或滤波器设计分析工具fdatool )设计各种IIR 数字滤波器,学会根据滤波需求确定滤波器指标参数。
(3)掌握IIR 数字滤波器的MATLAB 实现方法。
(4)通过观察滤波器输入输出信号的时域波形及其频谱,建立数字滤波的概念。
二、实验原理与方法设计IIR 数字滤波器一般采用间接法(脉冲响应不变法和双线性变换法),应用最广泛的是双线性变换法。
基本设计过程是:①先将给定的数字滤波器的指标转换成过渡模拟滤波器的指标; ②设计过渡模拟滤波器;③将过渡模拟滤波器系统函数转换成数字滤波器的系统函数。
MATLAB 信号处理工具箱中的各种IIR 数字滤波器设计函数都是采用双线性变换法。
第六章介绍的滤波器设计函数butter 、cheby1 、cheby2 和ellip 可以分别被调用来直接设计巴特沃斯、切比雪夫1、切比雪夫2和椭圆模拟和数字滤波器。
本实验要求读者调用如上函数直接设计IIR 数字滤波器。
三、实验内容及步骤(1)调用信号产生函数mstg 产生由三路抑制载波调幅信号相加构成的复合信号st ,该函数还会自动绘图显示st 的时域波形和幅频特性曲线,如图10.4.1所示。
由图可见,三路信号时域混叠无法在时域分离。
但频域是分离的,所以可以通过滤波的方法在频域分离,这就是本实验的目的。
图10.4.1 三路调幅信号st 的时域波形和幅频特性曲线(2)要求将st 中三路调幅信号分离,通过观察st 的幅频特性曲线,分别确定可以分离st 中三路抑制载波单频调幅信号的三个滤波器(低通滤波器、带通滤波器、高通滤波器)的通带截止频率和阻带截止频率。
实验五IIR滤波器的设计与信号滤波IIR滤波器,即无限脉冲响应滤波器(Infinite Impulse Response Filter),是一类数字滤波器,其输出依赖于输入信号和先前的输出信号。
相比于有限脉冲响应滤波器(FIR Filter),IIR滤波器具有更少的延迟和更高的效率。
本实验将介绍IIR滤波器的设计原理以及在信号滤波中的应用。
IIR滤波器的设计是通过对传递函数进行分析和设计实现的。
传递函数H(z)可以通过差分方程来表示,其中z是时间变量的复数变换。
一般而言,IIR滤波器的传递函数分为分子多项式和分母多项式两部分,它们都是z的多项式。
例如,一个简单的一阶低通滤波器的传递函数可以表示为:H(z)=b0/(1-a1z^(-1))其中b0是分子多项式的系数,a1是分母多项式的系数,z^(-1)表示滤波器的延迟项。
IIR滤波器的设计方法有很多种,其中一种常用的方法是巴特沃斯滤波器设计。
巴特沃斯滤波器是一种最优陡峭通带和带外衰减的滤波器。
设计巴特沃斯滤波器的步骤如下:1.确定滤波器的阶数:阶数决定了滤波器的复杂度和频率特性。
一般而言,阶数越高,滤波器的效果越好,但计算和实现的复杂度也越高。
2.确定通带和带外的频率特性:根据应用需求,确定滤波器在通带和带外的频率响应。
通带的频率范围内,滤波器应该具有尽可能小的幅频特性,带外的频率范围内,滤波器应该具有尽可能高的衰减。
3.根据阶数和频率特性计算巴特沃斯滤波器的极点:巴特沃斯滤波器的极点是滤波器的传递函数的根。
根据阶数和频率特性,可以使用巴特沃斯极点表来获取滤波器的极点。
4.将极点转换为差分方程:利用极点可以构造差分方程,定义IIR滤波器的传递函数。
除了巴特沃斯滤波器设计方法,还有其他IIR滤波器设计方法,例如Chebyshev滤波器、椭圆滤波器等。
每种设计方法都有其独特的优点和适用范围,可以根据具体需求选择适合的设计方法。
在信号滤波中,IIR滤波器可以用于实现多种滤波效果,例如低通滤波、高通滤波、带通滤波和带阻滤波等。
数字信号处理实验报告姓名:张贤辉班级:078205130 第一题wp=0.4*pi;ws=0.6*pi;ap=0.5;as=50;%[b,a]=afd_butt(omgp,omgs,ap,as);[N,wc]=buttord(wp,ws,ap,as,'s');[b,a]=butter(N,wc,'s');w=[0:1:500]*pi/500;h=freqs(b,a,w);subplot(221);plot(w/pi,abs(h));title('幅度响应');grid;subplot(223);plot(w/pi,20*log10(abs(h)));title('幅度响应(dB)');grid;subplot(222);plot(w/pi,angle(h)*180/pi);title('相频响应');grid;subplot(224);impulse(b,a);tiltle('脉冲响应');grid;第二题T=1;Fs=1/T;wpz=0.4;wsz=0.6;%[b,a]=afd_butt(omgp,omgs,ap,as);wp=(2/T)*tan(wpz*pi/2);ws=(2/T)*tan(wsz*pi/2);ap=0.5;as=50;[N,wc]=buttord(wp,ws,ap,as,'s');[b,a]=butter(N,wc,'s');%w=[0:1:500]*pi/500;[Bz,Az]=bilinear(b,a,Fs);[h,w]=freqz(Bz,Az);subplot(221);plot(w/pi,abs(h));title('幅度响应');grid;subplot(223);plot(w/pi,20*log10(abs(h)));title('幅度响应(dB)');grid; subplot(222);plot(w/pi,angle(h));title('相频响应');grid;n=[0:1:59];imp=[1;zeros(59,1)];y=filter(Bz,Az,imp);subplot(224);plot(n,y);title('脉冲响应');grid;T=1;Fs=1/T;wpz=0.2;wsz=0.4;%[b,a]=afd_butt(omgp,omgs,ap,as);wp=(2/T)*tan(wpz*pi/2);ws=(2/T)*tan(wsz*pi/2);ap=0.25;as=50;[N,wc]=buttord(wp,ws,ap,as,'s');[b,a]=butter(N,wc,'s');%w=[0:1:500]*pi/500;[Bz,Az]=bilinear(b,a,Fs);[h,w]=freqz(Bz,Az);subplot(221);plot(w/pi,abs(h));title('幅度响应');grid;subplot(223);plot(w/pi,20*log10(abs(h)));title('幅度响应(dB)');grid; subplot(222);plot(w/pi,angle(h));title('相频响应');grid;n=[0:1:59];imp=[1;zeros(59,1)];y=filter(Bz,Az,imp); subplot(224);plot(n,y);title('脉冲响应');grid;数字信号实验报告姓名:张贤辉班级:078205130 一、实验目的(1)熟悉双线性变换法设计IIR数字滤波器的原理与方法(2)熟悉用脉冲响应不变法设计IIR数字滤波器的原理与方法二、实验原理理解脉冲响应变换和双线性变换原理,会用MTLAB设计基本的IIR数字滤波器三、修改后的实验程序功能函数function [b,a]=u_buttap(N,OmegaC);[z,p,k]=buttap(N);p=p*OmegaC;k=k*OmegaC^N;B=real(poly(z));b=k*B;b0=k;a=real(poly(p));功能函数function [b,a]=afd_butt(Omgp,Omgs,Ap,As);if Omgp<=0error('passband edge must be lager than 0')endif Omgs<=Omgperror('Stopband edge must be lager than Passband edge')endif (Ap<=0)|(As<0)error('PB ripple and/or SB attention must be lager than 0')endN=ceil((log10((10^(Ap/10)-1)/(10^(As/10)-1)))/(2*log10(Omgp/Omgs)));fprintf('\n***Butterworth Filter Order=%2.0f\n',N);OmegaC=Omgp/((10^(Ap/10)-1)^(1/(2*N)));[b,a]=u_buttap(N,OmegaC);(1)T=1;Fs=1/T;OmegaP=0.4*pi/T;OmegaS=0.6*pi/T;Ap=0.5;As=50;%[b,a]=afd_butt(omgp,omgs,ap,as);%[N,wc]=buttord(wp,ws,ap,as,'s');%[b,a]=butter(N,wc,'s');[cs,ds]=afd_butt(OmegaP,OmegaS,Ap,As);%w=[0:1:500]*pi/500;%h=freqs(b,a,w);[b,a]=impinvar(cs,ds,Fs);[h,w]=freqz(b,a);subplot(2,2,1);plot(w/pi,abs(h));title('幅度响应');grid;subplot(2,2,3);plot(w/pi,20*log10(abs(h)));title('幅度响应(dB)'); grid; subplot(2,2,2);plot(w/pi,angle(h)*180/pi);title('相频响应');grid;n=[0:1:59];imp=[1;zeros(59,1)];y=filter(b,a,imp);subplot(2,2,4);plot(n,y);title('脉冲响应');grid;(2)T=1;Fs=1/T;wpz=0.4;wsz=0.6;%[b,a]=afd_butt(omgp,omgs,ap,as);wp=(2/T)*tan(wpz*pi/2);ws=(2/T)*tan(wsz*pi/2);ap=0.5;as=50;%[N,wc]=buttord(wp,ws,ap,as,'s');%[b,a]=butter(N,wc,'s');[b,a]=afd_butt (OmegaP, OmegaS, AP, as);[BZ, AZ]=bilinear(b,a,Fs);[h,w]=freqz(Bz,Az);subplot(221);plot(w/pi,abs(h));title('幅度响应');grid;subplot(223);plot(w/pi,20*log10(abs(h)));title('幅度响应(dB)');grid;subplot(222);plot(w/pi,angle(h));title('相频响应');grid;n=[0:1:59];imp=[1;zeros(59,1)];y=filter(Bz,Az,imp);subplot(224);plot(n,y);title('脉冲响应');grid;四、实验总结运行前应先将要计算的IIR数字滤波器功能函数在MALAB中生成脚本文件然后运行脚本文件,上图是用脉冲响应变换和双线性变换运行后生成的IIR数字滤波图。
实验五I I R 数字滤波器设计与滤波(附思考题程序)实验五IIR数字滤波器设计与滤波1.实验目的(1) 加深对信号采样的理解, (2) 掌握滤波器设计的方法; (3) 复习低通滤波器的设计。
2 •实验原理目前,设计IIR 数字滤波器的通用方法是先设计相应的低通滤波器,然后再 通过双线性变换法和频率变换得到所需要的数字滤波器。
模拟滤波器从功能上 分有低通、高通、带通及带阻四种,从类型上分有巴特沃兹(Butterworth )滤波器、切比雪夫(Chebyshev I 型滤波器、切比雪夫II 型滤波器、椭圆 (Elliptic )滤波器以及贝塞尔(Besse )滤波器等。
典型的模拟低通滤波器的指标如下:P , S分别为通带频率和阻带频率,P , S分别为通带和阻带容限(峰波纹值)。
在通带内要求1 P |H a (J ) 1,有时指标由通带最大衰减p和阻带最小衰减s 给出,定义如下:P20lg(1 p )和 s 20lg( s )第二种常用指标是用参数 和A 表示通带和阻带要求,如图所示:者之间的关系为:[(1p) 2 1]1/2和s 1/A ,根据这几个参数可导出另外两个参数d,k,分别称为判别因子和选择性因子。
系,所以称为预畸变。
3. 实验内容及其步骤 实验的步骤:(1) 给定数字滤波器的幅度相应参数。
(2) 用预畸变公式将数字滤波器参数变换为相应的等效模拟滤波器参数。
(3) 采用模拟滤波器设计方法设计等效模拟滤波器 H a (s)(4) 采用双线性变换公式把等效模拟滤波器映射为所期望的数字滤波器。
BUTTERWOR 低通滤波器:幅度平方函数定义为H / I \21Ha( J )2N,1 ( / )N 为滤波器阶数,c 为截止频率。
当c时,有H a (J ) 1/、、2,为 3DB 带宽。
BUTTERWOR 低通滤波器系统函数有以下形式:H a (S )N c N~Nsa 1s(s Sjk 11・・・aN 1sa由模拟滤波器设计IIR 数字滤波器,必须建立好s 平面和z 平面的映射关 系。
实验四、无限冲激响应(IIR)数字滤波器的设计一、实验目的1、熟悉用双线性变换法设计IIR数字滤波器的原理与方法;掌握数字滤波器的计算机仿真方法。
2、掌握用Matlab软件设计流程。
二、实验设备微型计算机、Matlab7.0教学版三、实验原理数字滤波器可以理解为是一个计算程序或算法,将代表输入信号的数字时间序列转化为代表输出信号的数字时间序列,并在转化过程中,使信号按预定的形式变化。
数字滤波器有多种分类,根据数字滤波器冲击响应的时域特征,可以将数字滤波器分为两种,即无限长冲击响应滤波器(IIR)和有限长冲激响应滤波器(FIR)。
在MATLAB中,可以通过调用simulink中的功能模块,可以构成数字滤波器的仿真框图。
在仿真过程中,双击各个功能模块,随时改变参数,获得不同状态下的仿真结果。
四、实验内容(1)用fdatool设计一个IIR低通滤波器(具体参数不要求)(2)并用simulink 仿真(3)对滤波器输入一个含噪信号并能观察到滤波前后的波形(4)对结果进行分析。
五、实验结果1、Simulink仿真原理图2、Filter参数设置3、滤波效果Scope Scope1Scope2六、实验总结通过这次实验,我熟悉用双线性变换法设计IIR数字滤波器的原理与方法;掌握数字滤波器的计算机仿真方法。
熟悉和了解了simulink仿真的真个过程。
Simulink中各种非常有用的工具箱不仅对于设计IIR数字滤波器非常有用,而且对于整个型号仿真处理具有相当可视化的效果,从仿真的角度看,是达到了技术指标的要求。
Simulink是一个进行动态系统建模、仿真和综合分析的集成软件包。
它可以处理的系统包括:线性、非线性系统:离散、连续及混合系统;单任务、多任务离散时间系统。
IIR滤波器设计实习报告班级:姓名:学号:目录1.mATLAB软件简介2.基本信号3.设计题目3.1原理3.2涉及函数3.3仿真程序3.4运行结果3.5结论4.体会与总结1.mATLAB软件简介MATLAB是一种科学计算软件,适用于工程应用各领域的分析设计与计算。
它使用方便、运算效率高且内容丰富,很容易被用户自行扩展。
因此,当前已成为美国和其他国家大学教学和科学研究中最常用且必不可少的工具。
MATLAB是矩阵实验室(matrix laboratory)的缩写,它是一种以矩阵运算为基础的交互式程序语言,着重针对科学计算、工程计算和绘图的需求。
与其他计算机语言相比,其特点是简洁和智能化,适应科技专业人员的思维方式和书写习惯,使得编程和调试效率大大提高。
它用解释方式工作,输入程序立即得出结果,人机交互性能好,通过它的演示(demo)和帮助(help)命令,人们可以方便地在线学习各种函数的用法及其内涵。
目前,也已成为国内外大学电子信息类学科的学生都应掌握的工具,也为相关科技人员所乐于接受。
MATLAB与研究有以下特点:1起点高(1).每个变量代表一个矩阵,从MATLAB名字的来源可知,它以矩阵运算见长。
当前的科学计算中,几乎无处不用矩阵计算,这使它的优势得到了充分的体现。
在MATLAB中,每个变量代表一个矩阵,它可以有n*m个元素。
(2).每个元素都看做复数,这个特点在其他语言中是不多见的。
(3).所有的运算都对矩阵和复数有效,包括加、减、乘、除函数运算等。
2.人机界面适合科技人员(1).MATLAB的语言规则于笔算是相似。
MATLAB的程序于可既然人员的书写习惯相近,因此,易写易读,易于在科技人员之间间交流。
(2).矩阵的行列数无需定义。
要输入一个矩阵,用其它语言时必须先定定义矩阵的阶数,而MATLAB则不必有阶数定义语句。
输入数据的行列数就可以决定它的阶数。
(3).输入算式立即得到结果,无需编译。
MATLAB是以解释方式工作的,即它对每条语句解释后立即执行,若有错误也立即反应,便于编程者随时改正。
数字信号处理实验五IIR数字滤波器设计与滤波学院:信息与通信学院专业:电子信息工程学号:0900220418姓名:梁芝铭1.实验目的(1)加深对信号采样的理解;(2)掌握滤波器设计的方法;(3)复习低通滤波器的设计。
2.实验原理典型的模拟低通滤波器的指标如下:,P S ΩΩ分别为通带频率和阻带频率,,P S δδ分别为通带和阻带容限(峰波纹值)。
在通带内要求1()1P a H J δ-≤Ω≤,有时指标由通带最大衰减p α和阻带最小衰减s α给出,定义如下:20lg(1)p p αδ=-- 和20lg()s s αδ=-第二种常用指标是用参数ε和A 表示通带和阻带要求,如图所示:二者之间的关系为:21/2[(1)1]p εδ-=--和1/s A δ=,根据这几个参数可导出另外两个参数d ,k ,分别称为判别因子和选择性因子。
d =/p s k =ΩΩBUTTERWORTH 低通滤波器:幅度平方函数定义为221()1(/)a N c H J Ω=+ΩΩ,N 为滤波器阶数,c Ω为截止频率。
当c Ω=Ω时,有()1/a H J Ω=3DB 带宽。
BUTTERWORTH 低通滤波器系统函数有以下形式:11111()...()N c a N NN N N k H s s a s a s a k s s --=Ω==++++∏-由模拟滤波器设计IIR 数字滤波器,必须建立好s 平面和z 平面的映射关系。
使模拟系统函数()a H s 变换成数字滤波器的系统函数()H z ,通常采用冲激相应不变法和双线性变换法。
冲激相应不变法存在频谱混叠现象,双线性变换法消除了这一线象,在IIR 数字滤波器的设计中得到了更广泛的应用。
s 平面和Z 平面的映射关系为1121()1s Zs f Z T Z---==+,将s j =Ω和jw z e =待入数字频率和等效的模拟频率之间的映射关系:tan()2wΩ=,由于二者不是线性关系,所以称为预畸变。
3.实验内容及其步骤实验的步骤:(1)给定数字滤波器的幅度相应参数。
(2)用预畸变公式将数字滤波器参数变换为相应的等效模拟滤波器参数。
(3)采用模拟滤波器设计方法设计等效模拟滤波器()a H s(4)采用双线性变换公式把等效模拟滤波器映射为所期望的数字滤波器。
其中第三步中模拟滤波器设计步骤为:首先,根据滤波器指标求选择因子k 和判别因子d其次,确定满足技术所需的滤波器阶数N, log log dN k ≥再次,设3db 截止频率c Ω最后由表查出归一化巴特沃斯滤波器系数。
例1 设计一个模拟巴特沃特低通滤波器,它在30rad/s 处具有1dB 或更好的波动,在50rad/s 处具有至少30dB 的衰减。
求出级联形式的系统函数,画出滤波器的幅度响应、对数幅度响应、相位响应和脉冲响应图。
先为下面的子程序建立相应的M 文件,共三个,然后在COMMEND WINDOW 中输入下面程序:Wp=30;Ws=50;Rp=1;As=30; %技术指标Ripple=10^(-Rp/20);Attn=10^(-As/20);[b,a]=afd_butt (Wp,Ws,Rp,As) %巴特沃兹低通滤波器子程序[db,mag,pha,w]=freqs_m(b,a,50); %计算幅频响应[ha,x,t]=impulse(b,a); %计算模拟滤波器的单位脉冲响应figure(1);clf;subplot(2,2,1);plot(w,mag);title('Magnitude Response');xlabel('Analog frequency in rad/s'); ylabel('H');axis([0,50,0,1.1]);grid;subplot(2,2,2);plot(w,db);title('Magnitude in dB');xlabel('Analog frequency in rad/s');ylabel('decibels');axis([0,50,-40,5])gridsubplot(2,2,3);plot(w,pha/pi);title('Phase Response');xlabel('Analog frequency in rad/s');ylabel('radians');axis([0,50,-1.1,1.1])gridsubplot(2,2,4);plot(t,ha);title('Impulse Response');xlabel('time in seconds');ylabel('ha(t)');axis([0,max(t)+0.05,min(ha),max(ha)+0.025]);grid%巴特沃兹模拟滤波器的设计子程序function[b,a]=afd_butt(Wp,Ws,Rp,As);if Wp<=0error('Passband edge must be larger than 0')endif Ws<=Wperror('Stopband edge must be larger than Passed edge')endif (Rp<=0)|(As<0)error('PB ripple and /0r SB attenuation must be larger than 0') endN=ceil((log10((10^(Rp/10)-1)/(10^(As/10)-1)))/(2*log10(Wp/Ws)));OmegaC=Wp/((10^(Rp/10)-1)^(1/(2*N)));[b,a]=u_buttap(N,OmegaC);%设计非归一化巴特沃兹模拟低通滤波器原型子程序function [b,a]=u_buttap(N,OmegaC);[z,p,k]=buttap(N); z、p和k分别是设计出的()G p的极点、零点及增益。
p=p*OmegaC; %非归一化k=k*OmegaC^N;B=real(poly(z));b0=k;b=k*B; 分子向量a=real(poly(p));分母向量%计算系统函数的幅度响应和相位响应子程序function [db,mag,pha,w]=freqs_m(b,a,wmax);w=[0:1:500]*wmax/500;H=freqs(b,a,w);mag=abs(H);db=20*log10((mag+eps)/max(mag));pha=angle(H);结果为:b =3.8682e+013a =1.0e+013 *Columns 1 through 80.0000 0.0000 0.0000 0.0000 0.0000 0.0001 0.0036 0.0613 Columns 9 through 100.6888 3.8682例2设计如下指标的数字低通滤波器。
相应的MA TLAB程序如下:fp=100;fst=300;Fs=1000;rp=3;rs=20;wp=2*pi*fp/Fs;ws=2*pi*fst/Fs;Fs=Fs/Fs; % let Fs=1wap=tan(wp/2);was=tan(ws/2); %预畸变公式[n,wn]=buttord(wap,was,rp,rs,'s') ;%设计等效模拟滤波器[z,p,k]=buttap(n);[bp,ap]=zp2tf(z,p,k) % 设计模拟低通原型滤波器[bs,as]=lp2lp(bp,ap,wap) ; %将模拟低通原型滤波器转换为低通滤波器[bz,az]=bilinear(bs,as,Fs/2) % 实现双线性变换,即由模拟滤波器()sH得到数字滤波器[h,w]=freqz(bz,az,256,Fs*1000);plot(w,abs(h));grid on;调试运行该程序,运行结果如下:bp =0 0 1ap =1.0000 1.4142 1.0000bz =0.0675 0.1349 0.0675az =1.0000 -1.1430 0.41284.思考题设计低通数字滤波器,要求在通带内频带低于rad π2.0时,允许幅度误差在1dB 以内,在频率rad rad ππ~3.0之间的阻带衰减大于15dB 。
用双线性设计数字滤波器,1=T ,模拟滤波器采用巴特沃兹滤波器原型。
开始【START 】→【Toolboxes 】→【Filter Design 】→【Filter Design&Analysis Tool 】 最后按要求输入如下:6.实验总结(1)例2的参考程序的;号用到中文的了,改正后结果如上;(2)在实验过程中,MATLAB 函数命令有数字滤波器函数[N,Wn]=buttord(Wp,Ws,Rp,Rs)、模拟滤波器函数[N,Wn]=buttord(Wp,Ws,Rp,Rs,‘s’)。
式中Wp,Ws 分别上通带和阻带的截止频率,实际上它们是归一化频率,其值在0~1之间,Rp,Rs 分别是通带和阻带的衰减,单位为dB 。
N 是求出的相应低通滤波器的阶次,Wn 是求出的3dB 频率,第二个式子的单位为rad/s ,因此,它们实际上是频率。
用来设计模拟低通原型滤波器()G p ,其调用格式是[z,p,k]=buttap(N) N 是欲设计的低通原型滤波器的阶次,z 、p 和k 分别是设计出的()G p 的极点、零点及增益。
以下4个文件用来将模拟低通原型滤波器()G p分别转换为低通、高通、带通、及带阻滤波器。
其调用格式分别是(1)[B,A]=lp2lp(b,a,Wo) 或[B,A]=lp2hp(b,a,Wo)(2)[B,A]=lp2bp(b,a,Wo,Bw) 或[B,A]=lp2bs(b,a,Wo,Bw)式中b,a分别是模拟低通原型滤波器()G p有分子、分母多项式的系数向量,B,A分别是转换后的()sH有分子、分母多项式的系数向量;在格式(1)中,Wo是低通或高通滤波器的截止频率;在格式(2)中Wo是带通或带阻滤波器的中心频率,Bw是其带宽。
实现双线性变换,即由模拟滤波器()sH。
其调用格式是H得到数字滤波器()z[Bz,Az]=bilinear(B,A,Fs)式中B、A分别是()sH的分子、分H的分子、分母多项式的系数向量;Bz、Az分别是()z母多项式的系数向量,Fs是抽样频率。