资源描述:
《《测试信号分析与处理》实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《测试信号分析与处理》实验一差分方程、卷积、z变换一、实验目的通过该实验熟悉 matlab软件的基本操作指令,掌握matlab软件的使用方法,掌握数字信号处理中的基本原理、方法以及matlab函数的调用。二、实验设备1、微型计算机1台;2、matlab软件1套三、实验原理Matlab软件是由mathworks公司于1984年推出的一套科学计算软件,分为总包和若干个工具箱,其中包含用于信号分析与处理的sptool工具箱和用于滤波器设计的fdatool工具箱。它具有强大的矩阵计算和数据可视化能力,是广泛
2、应用于信号分析与处理中的功能强大且使用简单方便的成熟软件。Matlab软件中已有大量的关于数字信号处理的运算函数可供调用,本实验主要是针对数字信号处理中的差分方程、卷积、z变换等基本运算的matlab函数的熟悉和应用。差分方程(differenceequation)可用来描述线性时不变、因果数字滤波器。用x表示滤波器的输入,用y表示滤波器的输出。a0y[n]+a1y[n-1]+…+aNy[n-N]=b0x[n]+b1x[n-1]+…+bMx[n-M](1)ak,bk为权系数,称为滤波器系数。N为所需
3、过去输出的个数,M为所需输入的个数卷积是滤波器另一种实现方法。y[n]=∑x[k]h[n-k]=x[n]*h[n](2)等式定义了数字卷积,*是卷积运算符。输出y[n]取决于输入x[n]和系统的脉冲响应h[n]。传输函数H(z)是滤波器的第三种实现方法。H(z)=输出/输入=Y(z)/X(z)(3)即分别对滤波器的输入和输出信号求z变换,二者的比值就是数字滤波器的传输函数。序列x[n]的z变换定义为X(z)=∑x[n]z-n(4)把序列x[n]的z变换记为Z{x[n]}=X(z)。由X(z)计算x[
4、n]进行z的逆变换x[n]=Z-1{X(z)}。Z变换是Z-1的幂级数,只有当此级数收敛,Z变换才有意义,而且同一个Z变换等式,收敛域不同,可以代表不同序列的Z变换函数。这三种数字滤波器的表示方法之间可以进行相互转换。一、实验步骤1、熟悉matlab软件基本操作指令。读懂下列matlab程序指令,键入程序并运行,观察运行结果。Conv.m%计算两个序列的线性卷积;%-----------------------------------------------------------------cle
5、ar;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)');gridon;subplot(232);stem(nh,h,'.k');xlabel('n');ylabel('h(n)');gridon;subplot(233);stem(ny,y,'.k');xlabel('n
6、');ylabel('y(n)');gridon;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.82
7、91,-2.2925,.55075];[h,t]=impz(b,a,40);subplot(221)stem(t,h,'.');gridon;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-');gridon;ylabel('x(n)andy(n)')xlabel('n')例题运行结果图2、编程求出下列问题的解1)、滤波器的
8、差分方程为:y[n]=x[n]-0.8x[n-1]-0.5y[n-1]求出此滤波器脉冲响应和阶跃响应的前十个采样值。clear;%impz.m%计算滤波器的冲击响应b=[1,-.8];a=[1,.5];[h,t]=impz(b,a,10);stem(t,h,'.');girdon;ylabel('h(n)')xlabel('n')clear;%filter.m%计算滤波器的阶跃响应x=ones(10);t=1:10;b=[1,-.8];a=[1,.5];y=filte