离散时间系统的时域特性分析实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信号、系统与信号处理实验报告实验一、离散时间系统的时域特性分析
姓名:
学号:
班级:
专业:
一.实验目的
线性时不变(LTI)离散时间系统在时域中可以通过常系数线性差分方程来描述,冲激响应列可以刻画时域特性。本次实验通过使用MATLAB函数研究离散时间系统的时域特性,以加深对离散时间系统的差分方程、冲激响应和系统的线性和时不变性的理解。
二.基本原理
一个离散时间系统是将输入序列变换成输出序列的一种运算。离散时间系统中最重要、最常用的是“线性时不变系统”。
1.线性系统
满足叠加原理的系统称为线性系统,即若某一输入是由N个信号的加权和组成的,则输出就是系统对这几个信号中每一个输入的响应的加权和。即
那么当且仅当系统同时满足
和
时,系统是线性的。
在证明一个系统是线性系统时,必须证明此系统同时满足可加性和比例性,而且信号以及任何比例系数都可以是复数。
2.时不变系统
系统的运算关系在整个运算过程中不随时间(也即序列的先后)而变化,这种系统称为时不变系统(或称移不变系统)。若输入的输出为,则将输入序列移动任意位后,其输出序列除了跟着位移外,数值应该保持不变,即
则
满足以上关系的系统称为时不变系统。
3.常系数线性差分方程
线性时不变离散系统的输入、输出关系可用以下常系数线性差分方程描述:
当输入为单位冲激序列时,输出即为系统的单位冲激响应。当时,
是有限长度的,称系统为有限长单位冲激响应(FIR)系统;反之,则称系统为无限长单位冲激响应(IIR)系统。
三.实验内容及实验结果
1.实验内容
考虑如下差分方程描述的两个离散时间系统:
系统1:
系统2:
输入:
(1)编程求上述两个系统的输出,并画出系统的输入与输出波形。
(2)编程求上述两个系统的冲激响应序列,并画出波形。
(3)若系统的初始状态为零,判断系统2是否为时不变的?是否为线性的?
2.实验结果
(1)编程求上述两个系统的输出和冲激响应序列,并画出系统的输入、输出与冲激响应波形。
clf;
n=0:300;
x=cos((20*pi*n)/256)+cos((200*pi*n)/256);
num1=[ ];
den1=[1];
num2=[ ];
den2=[1 ];
y1=filter(num1,den1,x);
y2=filter(num2,den2,x);
subplot(3,1,1);
stem(n,x);
xlabel('时间信号');
ylabel('信号幅度');
title('输入信号');
subplot(3,1,2);
stem(y1);
xlabel('时间信号n');
ylabel('信号幅度');
title('输出信号');
subplot(3,1,3);
stem(y2);
xlabel('时间序号n ');
ylabel('信号幅度');
title('冲激响应序列');
(2)
N=40;
num1=[ ];
den1=[1];
num2=[ ];
den2=[1 ];
y1=impz(num1,den1,N);
y2=impz(num2,den2,N);
subplot(2,1,1);
stem(y1);
xlabel('时间信号n ');
ylabel('信号幅度');
title('³冲激响应');
subplot(2,1,2);
stem(y2);
xlabel('时间信号n ');
ylabel('信号幅度');
title('³冲激响应');
1.应用叠加原理验证系统2是否为线性系统:
clear all
clc
n = 0 : 1 : 299;
x1 = cos(20 * pi * n / 256);
x2 = cos(200 * pi * n / 256);
x = x1 + x2;
num = [ ];
den = [1 ];
y1 = filter(num, den, x1);
y2 = filter(num, den, x2);
y= filter(num, den, x);
yt = y1 + y2;
figure
subplot(2, 1, 1);
stem(n, y, 'g');
xlabel('时间信号n');
ylabel('信号幅度');
axis([0 100 -2 2]);
grid;
subplot(2, 1, 2);
stem(n, yt, 'r');
xlabel('时间信号n');
ylabel('信号幅度');
axis([0 100 -2 2]);
grid;
2.应用时延差值来判断系统2是否为时不变系统。
clear all
clc
n = 0 : 299;
D = 10;
x = cos(20 * pi * n / 256) + cos(200 * pi * n / 256);
xd = [zeros(1, D) x]; %生成新序列xd = x(n - D),延时D个单位num = [ ];
den = [1 ];
ic = [0 0]; %初始化
y = filter(num, den, x, ic);
yd = filter(num, den, xd, ic);
N = length(y);
d = y-yd(1+D : N+D);
figure
subplot(3, 1, 1);
stem(n, y);
ylabel('信号幅度');
title('输出y[n]');
grid;
subplot(3, 1, 2);
stem(n, yd(1 : length(yd) - D));
ylabel('信号幅度');
title('由于输入延时而产生的输出yd[n]');
grid;
subplot(3, 1, 3);
stem(n, d);
xlabel('时间序号n');