实验1 离散时间系统的时域特性分析
1.1 实验目的
线性时不变(Linear Time Invariant,LTI)离散时间系统在时域中可以通过常系数线性差分方程来描述,冲激响应序列可以刻画其时域特性。本实验通过使用MATLAB函数研究离散时间系统的时域特性,以加深对离散时间系统的差分方程、冲激响应喝系统的线性和时不变特性的理解。
1.2 基本原理
一个离散时间系统是将输入序列变换成输出序列的一种运算。若以T[•]表示这种运算,则一个离散时间系统可由图1-1来表示,即
x(n)T[•]y(n) (1-1)
图1-1 离散时间系统
离散时间系统中最重要的。最常用的是“线性是不变系统”。
1. 线性系统
满足叠加原理的系统称为线性系统,即若某一输入是由N个信号的加权和组成的,则输出就是系统对这几个信号中每一个输入的响应的加权和。
第 1 页 共 17 页
如果系统在序列x1(n)和x2(n)输入时的输出分别为y1(n)和y2(n),即
y1(n)T[x1(n)],,y2(n)T[x2(n)]
那么当且仅当式(1-2)和(1-3)成立时,该系统是线性的。
T[x1(n)x2(n)]T[x1(n)]T[x2(n)] (1-2)
和
T[ax1(n)]aT[x1(n)] (1-3)
式中:a为任意常数。上述第一个性质称为可加性,第二个性质称为齐次性或比例性。这两个性质合在一起就成为叠加原理,写成
T[a1x1(n)[a2x2(n)]a1T[x1(n)]a2T[x2(n)] (1-4)
式(1-4)对任意常数a1和a2都成立。
在证明一个系统是线性系统时,必须证明此系统同时满足可加性和比例性,而且信号以及任何比例常数都可以是复数。
2. 时不变系统
系统的运算关系T[•]在整个运算过程中不随时间(也不随序列的先后)而变化,这种系统称为时不变系统(或称移不变系统)。这个性质可用以下关系表示:若输入x(n)的输出为y(n),则将
第 2 页 共 17 页
输入序列移动任意位后,其输出序列除了跟着移位外,数值应保持不变,即
若T[x(n)]y(n),则T[x(nm)]y(nm) (m为任意整数)
满足以上关系的系统就称为时不变系统。
3. 常系数线性差分方程
线性时不变离散系统的输入、输出关系可用以下常系数线性差分方程描述:
y(n)=﹣
ay(nk)kk1N+
bx(nr)rr0M
(1-5)
当输入x(n)为单位冲激序列时,输出y(n)即为系统的单位冲激响应h(n)。当ak=0时,k=1,2,…,N时,h(n)是有限长度的,称系统为有限长单位冲激响应(Finite Impulse Response,FIR)系统;反之,则称系统为无限长单位冲激响应(Infinite Impulse Response,IIR)系统。
1.3 实验内容及要求
1. 阅读并输入1.5节中介绍的例题程序,理解每一条语句的含义。改变例题中的有关参数(如信号的频率、周期、幅度、显示时间的取值范围、采样点数等),观察对信号波形有何影响。
2. 参考1.5节中给出的例题程序,自己编写MATLAB程序,产生下列离散序列:
(1) x(n)u(n),5n5
第 3 页 共 17 页
(2) (3)
nx(n)3sin,0n204 x(n)e(0.1j1.6)n,0n16
(4)
x(n)sinn/4,0n20n/4
3. 考虑如下差分方程描述的两个离散时间系统:
系统1:y(n)=0.5x(n)+0.27x(n-1)+0.77x(n-2)
系统2:y(n)=0.45x(n)+0.5x(n-1)+0.45x(n-2)+0.53y(n-1)-0.46y(n-2)
20n200nx(n)cos()cos()256256,0n299 输入
(1) 编程求上述两个系统的输出,兵分别画出系统的输入与输出波形.
(2) 编程求上述两个系统的冲激响应序列,并画出波形。
(3) 若系统的初始状态为零,判断系统2是否为时不变的?是否为线性的?
1.4 实验报告要求
(1) 简述实验原理,画出程序框图,并列出实验程序清单,包括必要的程序说明。
(2) 记录调试运行情况及所遇问题的解决方法。
第 4 页 共 17 页
1.5 实验用MATLAB语言工具函数简介
1. 产生N个零元素矢量函数
x=zeros (1,N)
2. 计算系统的单位冲激响应h(n)的两种函数
(1) y=impz(b,a,N)
功能:计算系统的激励响应序列的前N个取样点。
(2) y=filter(b,a,x)
功能:系统对输入进行滤波,如果输入为单位冲激序列(n),则输出y即为系统的单位冲激响应h(n)。
上面两个函数中,输入参数:b,a为式(1-5)中线性差分方程的系数,即:
a[1,a1,a2,aN]b[b0,b1,b2,bM],,
输出参数:y在此为系统的单位冲激响应序列。
3. 序列的产生
下面介绍四种常用的典型序列。
第 5 页 共 17 页
(1) 单位冲激序列:
(n){1,n00,n0
单位冲激序列也叫单位脉冲序列或单位取样序列,如同1-2所示,其特点是:仅在n=0时取样为1,其他时刻取值为0。
例1.1 产生一个长度为N=100的单位冲激序列:
图1-2 单位冲激序列
N=100;
u=[1 zeros(1,N-1)];
Stem(0:N-1,u) %注意,MATLAB的下标是从1开始的,这点与C语言不同。
(2) 单位阶跃响应:
第 6 页 共 17 页
u(n){1,n00,n0
例1.2 产生一个长度为N=100的单位阶跃序列(见图1-3):
N=100;
s=[ones(1,N)];
stem(0:99,s);
axis([0 100 0 2]) (3) 正弦序列:x(n)sin(n)
图1-3 单位阶跃序列
第 7 页 共 17 页
例1.3 产生一个正弦序列(见图1-4)
图1-4 正弦序列
n=0:40;
f=0.1;
phase=0;
A=1.5;
arg=2*pi*f*n-phase;
x=A*cos(arg);
stem(n,x);
第 8 页 共 17 页
axis([0 40 -2 2]);
grid
(4) 复指数序列
x(n)ejn
例1.4 产生一个复指数序列(见图1-5)
图1-5 复指数序列
c= - (1/12)+(pi/6)*I;
k=2;
n=0:40;
第 9 页 共 17 页
x=k*exp(c*n);
subplot(2,1,1);
stem(n,real(x));
subplot(2,1,2);
stem(n,imag(x));
xlabel(‘时间序列n’);ylabel(‘信号幅度’);
title(‘虚部’);
4. 离散时间系统时域分析
(1) 线性和非线性系统
例1.5 假设系统为 y(n)0.4y(n1)0.75y(n2)2.2403x(n)2.4908x(n1)2.2403x(n2),输入三个不同
的序列x1(n),x2(n)和x(n)=ax1(n)+bx2(n),求y1(n),y2(n)及y(n),并判断此系统是否为线性系统。
MATLAB程序如下:
n=0:40;
a=2;
第 10 页 共 17 页
b=-3;
x1=cos(2*pi*0.1*n);
x2=cos(2*pi*0.4*n);
x=a*x1+b*x2;
num=[2.2403 2.4908 2.2403];
den=[1 -0.4 0.75];
y1=filter(num,den,x1); %计算出y1(n)
y2=filter(num,den,x2); %计算出y2(n)
y=filter(num,den,x); %计算出y(n)
yt=a*y1+b*y2; %y(n)=ay1(n)+ay2(n)
subplot(2,1,1);
stem(n,y);
ylabel(‘信号幅度’);
第 11 页 共 17 页
subplot(2,1,2);
stem(n,yt);
ylabel(‘信号幅度’);
执行结果如下图1-6所示。
图1-6 线性系统的判断
从图上可知,上下两个图完全一样,即y(n)=T[ax1(n)+bx2(n)]=aT[x1(n)]+bT[x2(n)],所以此系统是个线性系统。注意上式中的T是算子。
(2) 时不变系统和时变系统
例1.6 假设系统为:(DEN)
第 12 页 共 17 页
y(n)-0.4y(n-1)+0.75y(n-2)=2.2403x(n)+2.4908x(n-1)+2.2403x(n-2) (NUM),试判别此系统是否为时不变系统。
MATLAB程序如下:
n=0:40;
D=10;
a=3;
b=-2;
num=[2.2403 2.4908 2.2403];
den=[1 -0.4 0.75];
ic=[0 0]; %设置零初始条件
x=a*cos(2*pi*0.1*n)+b*cos(2*pi*0.4*n);
y=filter(num,den,x,ic);通过滤波器。
xd=[zeros(1,D) x];
yd=filter(num,den,xd,ic);
第 13 页 共 17 页
N=length(y);
d=y-yd(1+D:N+D);
subplot(3,1,1);
stem(n,y);
ylabel('信号幅度');
title('输出y[n]');
grid;
subplot(3,1,2);
stem(n,yd(1:length(y)));
ylabel('信号幅度');grid;
subplot(3,1,3);
stem(n,d);
xlabel('时间序列n');
第 14 页 共 17 页
ylabel('信号幅度');
title('差值信号');
grid; 执行结果如图1-7所示。
图1-7 时不变系统的判断
由图可知,y(n-D)=T[x(n-D)],故此系统为时不变系统。
(3) 线性时不变系统的冲激响应计算
例1.8 用MATLAB命令y=impz(num,den,N)计算因果线性时不变离散时间系统的冲激响应的前N个样本。系统仍采用前两个例子的系统。
MATLAB程序如下:
第 15 页 共 17 页
N=40;
num=[2.2403 2.4908 2.2403];
den=[1 -0.4 0.75];
y=impz(num,den,N);
stem(y);
xlabel(‘时间序列n’);
ylabel(‘信号幅度’);
title(‘冲激响应’);
grid;
执行结果如图1-8所示。
第 16 页 共 17 页
图1-8 线性时不变系统的冲激响应计算
第 17 页 共 17 页
因篇幅问题不能全部显示,请点此查看更多更全内容