资源描述
测控1005班 齐伟 0121004931725 (18号)实验一 差分方程、卷积、z变换 一、 实验目的 通过该实验熟悉 matlab软件的基本操作指令,掌握 matlab软件的使用方法,掌握数字信号处理中的基本原理、方法以及matlab函数的调用。二、 实验设备1、 微型计算机1台;2、 matlab软件1套三、 实验原理 Matlab 软件是由mathworks公司于1984年推出的一套科学计算软件,分为总包和若干个工具箱,其中包含用于信号分析与处理的sptool工具箱和用于滤波器设计的fdatool工具箱。它具有强大的矩阵计算和数据可视化能力,是广泛应用于 信号分析与处理中的功能强大且使用简单方便的成熟软件。Matlab软件中已有大量的关于数字信号处理的运算函数可供调用,本实验主要是针对数字信号处理中的差分方程、卷积、z变换等基本运算的matlab函数的熟悉和应用。 差分方程(difference equation)可用来描述线性时不变、因果数字滤波器。用x表示滤波器的输入,用y表示滤波器的输出。a0yn+a1yn-1+aNyn-N=b0xn+b1xn-1+bMxn-M (1)ak,bk 为权系数,称为滤波器系数。N为所需过去输出的个数,M 为所需输入的个数卷积是滤波器另一种实现方法。yn= xk hn-k = xn*hn (2)等式定义了数字卷积,*是卷积运算符。输出 yn 取决于输入 xn 和系统的脉冲响应hn。传输函数H(z)是滤波器的第三种实现方法。 H(z)=输出/输入= Y(z)/X(z) (3)即分别对滤波器的输入和输出信号求z变换 ,二者的比值就是数字滤波器的传输函数。序列xn的z变换定义为X (z)=xnz-n (4)把序列 xn 的 z 变换记为Zxn = X(z)。 由 X(z) 计算 xn 进行 z 的逆变换 xn = Z-1X(z)。 Z 变换是 Z-1 的幂级数,只有当此级数收敛,Z 变换才有意义,而且同一个 Z 变换等式,收敛域不同,可以代表不同序列的 Z 变换函数。这三种数字滤波器的表示方法之间可以进行相互转换。四、 实验步骤1、熟悉matlab软件基本操作指令。读懂下列matlab程序指令,键入程序并运行,观察运行结果。Conv.m% 计算两个序列的线性卷积;%-clear;N=5;M=6;L=N+M-1;x=1,2,3,4,5;h=6,2,3,6,4,2;y=conv(x,h);nx=0:N-1;nh=0:M-1;ny=0:L-1;subplot(231);stem(nx,x,'.k');xlabel('n');ylabel('x(n)');grid on;subplot(232);stem(nh,h,'.k');xlabel('n');ylabel('h(n)');grid on;subplot(233);stem(ny,y,'.k');xlabel('n');ylabel('y(n)');grid on;filter.m;%求一个离散系统的输出;clear;x=ones(100);t=1:100;b=.001836,.007344,.011016,.007374,.001836;a=1,-3.0544,3.8291,-2.2925,.55075;y=filter(b,a,x); clear;impz .m% 计算滤波器的冲击响应b=.001836,.007344,.011016,.007374,.001836;a=1,-3.0544,3.8291,-2.2925,.55075;h,t=impz(b,a,40);subplot(221)stem(t,h,'.');grid on;ylabel('h(n)')xlabel('n')filter.m% 计算滤波器的阶跃响应x=ones(100);t=1:100;y=filter(b,a,x);subplot(222)plot(t,x,'g.',t,y,'k-');grid on;ylabel('x(n) and y(n)')xlabel('n')freqz.m%用来在已知B(z),A(z)的情况下求出系统的频率响应;% 求如下三个系统的幅频响应;b1=1/2,1/2;b2=1/2,-1/2;b3=1 0 1;b3=b3/2;H1,P=freqz(b1);subplot(331);plot(P/2/pi,abs(H1);grid on;H2,P=freqz(b2);subplot(332);plot(P/2/pi,abs(H2);grid on;H3,P=freqz(b3);subplot(333);plot(P/2/pi,abs(H3);grid on;zplane(b,a); % 求并画出所给系统的极零图b=1 -1.7 1.53 -0.68;a=1;subplot(222);zplane(b,a); % 求并画出第二个系统的极零图、 2,程求出下列问题的解 1)、滤波器的差分方程为:yn=xn-0.8xn-1-0.5yn-1求出此滤波器脉冲响应和阶跃响应的前十个采样值。b=1,-.8,; a=1,.5;h,t=impz(b,a,10);subplot(221)stem(t,h,'.');grid on;ylabel('h(n)');xlabel('n');x=ones(1,10);t=1:10;y=filter(b,a,x);subplot(222)stem(t,y);grid on;ylabel('x(n) and y(n)');xlabel('n'); 2)、系统的脉冲响应为hn=e-n(un-un-3),用卷积求系统的阶跃响应。N=25;M=3;L=N+M-1;x=1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1;h=1,.3679,.1353;y=conv(x,h);nx=0:N-1;nh=0:M-1;ny=0:L-1;subplot(231);stem(nx,x,'.k');xlabel('n');ylabel('x(n)');grid on;subplot(232);stem(nh,h,'.k');xlabel('n');ylabel('h(n)');grid on;subplot(233);stem(ny,y,'.k');xlabel('n');ylabel('y(n)');grid on;五、实验讨论和分析 1、差分方程、卷积、z变换和傅里叶变换之间如何进行转换?答:差分方程;a0yn+a1yn-1+a2yn-2+aNyn-N=b0xn+b1xn-1+bMxn-M卷积是由输入xn所引起的全部输出yn是所有这些加权脉冲相应之和。即yn=xn*hn只要知道脉冲响应和输入就可以得到输出Z变换是把时域信号向频域进行转换X(z)=xnz-n Y(z)=ynz-n 脉冲响应是传输函数的逆z变换傅里叶变换X()=xne-jn 2、边界效应是如何产生的?它对信号的滤波效果有何影响?答:多数情况下,采样开始之前的输入情况是未知的,当脉冲响应与未知的的输入采样点重叠时,由于实际的输出值可能受采样开始之前输入信号的影响,所以无法准确的计算输出。计算的开始和末尾都存在这种现象。仅当输入序列与脉冲响应完全重叠时,计算才有意义,这种现象就是边界效应。当一个系统开始运行或条件改变时,输出需要一些时间过渡到新的稳态。边界效应会产生输出的暂态部分和稳态部分,会影响滤波效果,并且会导致失真现象出现。 实验二 数字滤波器综合设计一、 实验目的通过该设计实验掌数字滤波器设计的一般步骤,掌握利用matlab 软件设计数字滤波器的方法,熟悉sptool工具箱的使用方法。二、 实验设备1、 微型计算机1台;2、 matlab软件1套三、 实验原理一)、滤波器的形状及重要参数理想滤波器的形状是矩形,图 1 给出非理想滤波器。 图 1通带:增益高的频率范围,信号可以通过,称为滤波器的通带。阻带:增益低的频率范围,滤波器对信号有衰减或阻塞作用,称滤波器的阻带。滤波器截止频率:增益为最大值的0.707倍时所对应的频率为滤波器截止频率增益通常用分贝(dB)表示。增益(dB)= 20log(增益)增益为 0.707 时对应 -3dB,因此截止频率常被称为 -3dB。滤波器的带宽:对于低通滤波器宽带是从0 - 3dB 对于高通滤波器宽带是从 - 3dB采样频率的一半对于带通滤波器带宽是截止频率之间的频率距离二)加窗低通 FIR 滤波器的设计1. 在过渡带宽度的中间,选择通带边缘频率(Hz): f1=所要求的通带边缘频率+(过渡带宽度)/22. 计算 1=2f1/fs,并将此值代入理想低通滤波器的脉冲响应 h1n 中: h1n = sin(n1)/n3. 从表中选择满足阻带衰减及其他滤波器要求的窗函数,用表中 N 的公式计算所需要的非零项数目。选择奇数项,这样脉冲响应可以完全对称,避免了滤波器产生相位失真,对于|n|(N-1)/2,计算窗函数wn。4. 对于|n|(N-1)/2,从式 hn=h1nwn计算(有限)脉冲响应,对于其他 n 值hn=0,此脉冲响应是非因果的。5. 将脉冲响应右移 (N-1)/2,确保第一个非零值在n=0处,使此低通滤波器为因果的。三)、设计低通巴特沃斯滤波器:1) 确定待求通带边缘频率 fp1 Hz 、待求阻带边缘频率fs1 Hz 和待求阻带衰减 - 20logsdB(或待求阻带增益 20logsdB)。通带边缘频率对应 3dB增益。2) 用式 =2f/fs 把由 Hz 表示的待求边缘频率转成由弧度表示的数字频率,得到 p1 和s1 。3) 计算预扭曲模拟频率以避免双线性变化带来的失真。由 =2fs tan(/2) 求得 p1和 s1,单位是弧度/秒。4) 由已给定的阻带衰减 - 20logs(或增益- 20logs)确定阻带边缘增益 s 。5) 计算所需滤波器的阶数n 取整数。6)把 p1代入 n 阶模拟巴特沃斯滤波器传输函数H(s)中,并对 H(s) 进行双线性变换得到 n 阶数字传输函数 H(z)。滤波器实现所需的差分方程可直接从传输函数 H(s) 求出。四)、低通切比雪夫型滤波器的设计:1)确定待求的通带与阻带边缘频率 fp1 和fs1 、待求的通带边缘增益 20log(1- p) 和待求的阻带衰减-20logs(或待求的阻带增益 20logs )。2)用公式 =2f/fs 将待求的边缘频率转换为数字频率(用弧度表示),得到 p1 和 s1 。3)对数字频率采用预扭曲以避免双线性变换引起的误差。由 =2fs tan(/2) 得到p1和 s1,单位是弧度/秒。4)由指定的通带边缘增益 20log(1- p) ,确定通带边缘增益 1- p 。计算参数。5)由指定的衰减-20logs(或增益 20logs),确定阻带边缘增益 s 。6)计算所需的阶数n。7)将 p1 和 p 代入 n 阶模拟切比雪夫型滤波器的传输函数 H(s),并对其进行双线性变换,得到 n 阶数字滤波器传输函数 H(z)。实现滤波器所需的差分方程可由传输函数 H(z) 直接得到。四、实验步骤1、 任选第9、10章后滤波器设计题各2题,利用matlab编程完成滤波器的设计,并画出滤波器的脉冲响应、幅度响应和相位响应图。习题9.15f1=4000;%信号频率Hzf2=5000;%信号频率Hzf3=6000;%信号频率Hzfs=12000;%采样频率HzN=32;%采样点数t=(0:N-1)/fs;%采样时间x1=sin(2*pi*f1*t);%信号采样值x2=sin(2*pi*f2*t);%信号采样值x3=sin(2*pi*f3*t);%信号采样值x=x1+x2+x3;y=filter(h,1,x);f1=3000+250;fs=12000;w=2*f1/fs;n=3.32*fs/500;h=makelp(n,w,'hanning');mag,phase,w=dtft(h);plot(t,x,'g',t,y,'k-')习题9.20:h=makelp(19,0.625,'hamming');mag,phase,w = dtft(h);plotdtft(mag,phase,w,2)stem( 0:18,h,'.')ylabel('h(n)');xlabel('n');习题10.12n=buttord(0.25,0.375,3,44);b,a=butter(n,0.25);mag,phase,w = dtft(b,a);plotdtft(mag,phase,w,1);h,t=impz(b,a,40);subplot(111)stem(t,h,'.');grid on;ylabel('h(n)')xlabel('n')习题10.15n = cheb1ord(0.64,0.72,3,21.94);b,a=cheby1(n,3,0.64);mag,phase,w = dtft(b,a);plotdtft(mag,phase,w,1);h,t=impz(b,a,40);>> subplot(111)stem(t,h,'.');grid on;ylabel('h(n)');xlabel('n'); 5、 实验讨论和分析 1、设计得到的滤波器与设计要求有无差别?如果有,请分析误差产生的原因。 答:有差别。在设计FIR滤波器时,我们不可能得到理想的滤波器,而是要选用合适的窗函数,来满足阻带衰减要求,加窗后滤波器形状就不是理想的了,并且在它的通带和阻带内有波纹,还有就是滤波器系数自身的量化,如果选用比特数少,就会产生大的误差,量化也会影响IIR的稳定性,IIR滤波器不能保证无相位失真2、 FIR滤波器与IIR滤波器的优缺点分别是什么?针对具体信号进行滤波时,如何选择?答:FIR滤波器的最主要的特点是没有反馈回路,故不存在不稳定的问题;同时,可以在幅度特性是随意设置的同时,保证精确的线性相位。稳定和线性相位特性是FIR滤波器的突出优点。另外,它还有以下特点:设计方式是线性的;硬件容易实现;滤波器过渡过程具有有限区间;相对IIR滤波器而言,阶次较高,其延迟也要比同样性能IIR滤波器大得多。IIR滤波器的首要优点是可在相同阶数时取得更好的滤波效果。但是IIR滤波器设计方法的一个缺点是无法控制滤波器的相位特性。由于极点会杂散到稳定区域之外,自适应IIR滤波器设计中碰到的一个大问题是滤波器可能不稳定。因此,一般采用FIR滤波器作为自适应滤波器的结构。选择:FIR滤波器只要采用非递归结构,不论在理论上还是在实际的有限精度运算中都不存在稳定性问题,因此造成的频率特性误差也较小。此外FIR滤波器可以采用快速傅里叶变换算法,在相同阶数的条件下,运算速度可以快得多,IIR滤波器虽然设计简单,但主要是用于设计具有分段常数特性的滤波器,如低通、高通、带通及带阻等,往往脱离不了模拟滤波器的格局。而FIR滤波器则要灵活得多,尤其是他易于适应某些特殊应用,如构成数字微分器或希尔波特变换器等,因而有更大的适应性和广阔的应用领域。从使用要求上来看,在对相位要求不敏感的场合,如语言通信等,选用IIR较为合适,这样可以充分发挥其经济高效的特点;对于图像信号处理,数据传输等以波形携带信息的系统,则对线性相位要求较高。如果有条件,采用FIR滤波器较好。
展开阅读全文