实验2.docx
《实验2.docx》由会员分享,可在线阅读,更多相关《实验2.docx(10页珍藏版)》请在冰豆网上搜索。
实验2
浙江工业大学之江学院
信息工程分院实验报告册
课程matlab仿真
(二)__
姓名张加满
班级通信1103
学号201120110325
教师骆崇
实验名称离散系统频率响应
和零极点分布
实验日期2013.10.28
1、实验目的
通过MATLAB仿真简单的离散时间系统,研究其时域特性,加深对离散时间系统的冲激响应、频率响应分析和零、极点分布概念的理解。
2、实验原理
通过系统的零极点增益表达式,可以判断一个LTI离散时间系统的稳定性。
对于因果稳定系统,所有极点都位于单位园内。
单位园附近的零点对幅度响应的谷点的位置与深度有明显影响,当零点位于单位园上时,谷点为零。
零点可在单位园外。
单位园附近的极点对幅度响应的峰点的位置与高度有明显影响,
MATLAB语言工具函数
1、计算频率响应函数
[h,f]=freqz(b,a,n,fs)
2、系统的有理分式形式转换成零极点增益形式
[z,p,k]=tf2zp(b,a)
3、计算有限长序列的线性卷积
y=conv(x,h)
求系统响应
y=filter(b,a,x)
y与x的长度相等,对于IIR系统,x应补较多的零值点。
h=impz(b,a,N),y=conv(x,h)
对于IIR系统,h无限长,N的值应尽量取大些。
4、绘制离散时间系统零极点图函数
zplane(b,a)
zplane(z,p,k)
3、实验内容及要求
一个LTI离散时间系统的输入输出差分方程为
y(n)-1.6y(n-1)+1.28y(n-2)=0.5x(n)+0.1x(n-1)
(1)编程求此系统的单位冲激响应序列,并分别画出其波形。
(2)若输入序列x(n)=δ(n)+2δ(n-1)+3δ(n-2)+4δ(n-3)+5δ(n-4)
编程求出此系统输出序列y(n),并画出其波形。
(3)编程得到系统频响的幅度响应和相位响应,并画图。
(4)编程得到系统的零极点分布图,分析系统的因果性和稳定性。
4、程序框图
①单位冲激响应②输出序列y(n)
③幅度响应和相位响应④两种情况的零极点分布图
5、程序清单及说明
(1)程序如下:
%系统
:
y(n)-1.6y(n-1)+1.28y(n-2)=0.5*x(n)+0.1*x(n-1)
clf;
%clf;用来清除图形的命令。
一般在画图之前用。
N=50;
num=[0.50.1];
den=[1-1.6+1.28];
y=impz(num,den,N);
%计算出系统的y
y为y[n]
stem(y);
xlabel('时间信号n');
ylabel('信号幅度');
title('冲击响应');
grid;
(2)程序如下:
%系统
:
y(n)-1.6y(n-1)+1.28y(n-2)=0.5*x(n)+0.1*x(n-1)
clf;
%clf;用来清除图形的命令。
一般在画图之前用。
x=[1,2,3,4,5];
num=[0.50.1];
den=[1-1.6+1.28];
y=filter(num,den,x);
%计算出系统的y
stem(y);
xlabel('时间信号n');
ylabel('信号幅度');
title('冲击响应');
grid;
(3)程序如下:
%系统
:
y(n)-1.6y(n-1)+1.28y(n-2)=0.5*x(n)+0.1*x(n-1)
clf;
%clf;用来清除图形的命令。
一般在画图之前用。
fs=1000;
x=[1,2,3,4,5];
num=[0.50.1];
den=[1-1.6+1.28];
[h,f]=freqz(num,den,256,fs);
mag=abs(h);
ph=angle(h);
ph=ph*180/pi;
subplot(2,1,1),plot(f,mag);
xlabel('频率(Hz)');
ylabel('幅度');
subplot(2,1,2),plot(f,ph);
xlabel('频率(Hz)');
ylabel('相位');
(4)程序如下:
%系统
:
y(n)-1.6y(n-1)+1.28y(n-2)=0.5*x(n)+0.1*x(n-1)
clf;
%clf;用来清除图形的命令。
一般在画图之前用。
num=[0.50.1];
%x序列前系数
den=[1-1.6+1.28];
[z,p,k]=tf2zp(num,den);
zplane(z,p);
num=[0.50.1];
%x序列前系数
den=[1-1.6+1.28];
zplane(num,den);
6、运行结果
7、调试问题及解决方法
实验过程中遇到很多问题,刚开始时输入程序,结果出现错误,仔细检查发现有些语句拼写错误,如:
filter写成filtr。
有时候程序没错,但出来的图不对,发现是把图的自变量搞错了,y(n)是关于n的函数,不是关于x的函数。
求冲激的时候只看见一条很靠近y轴的冲激线,分辨度很低,所以点数要选小一点,这样就能看出其在冲激部分的图形变化。
新建m程序时,注意命名要以字母开头