《测试信号分析与处理》实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
测控1005班齐伟 25 (18号)
实验一差分方程、卷积、z变换
一、实验目的
通过该实验熟悉matlab软件的基本操作指令,掌握 matlab软件的使用方法,掌握数字信号处理中的基本原理、方法以及matlab函数的调用。
二、实验设备
1、微型计算机1台;
2、matlab软件1套
三、实验原理
Matlab 软件是由mathworks公司于1984年推出的一套科学计算软件,分为总包和若干个工具箱,其中包含用于信号分析与处理的sptool工具箱和用于滤波器设计的fdatool工具箱。它具有强大的矩阵计算和数据可视化能力,是广泛应用于信号分析与处理中的功能强大且使用简单方便的成熟软件。Matlab软件中已有大量的关于数字信号处理的运算函数可供调用,本实验主要是针对数字信号处理中的差分方程、卷积、z变换等基本运算的matlab函数的熟悉和应用。
差分方程(difference equation)可用来描述线性时不变、因果数字滤波器。用x表示滤波器的输入,用y表示滤波器的输出。
a 0y[n]+a
1
y[n-1]+…+a
N
y[n-N]=b
x[n]+b
1
x[n-1]+…+b
M
x[n-M]
(1)
ak,bk 为权系数,称为滤波器系数。
N为所需过去输出的个数,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[n] 进行 z 的逆变换 x[n] = Z-1{X(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); % 求并画出第二个系统的极零图