离散系统的时域分析实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验2 离散系统的时域分析
一、实验目的
1、熟悉并掌握离散系统的差分方程表示法;
2、加深对冲激响应和卷积分析方法的理解。
二、实验原理
在时域中,离散时间系统对输入信号或者延迟信号进行运算处理,生成具有所需特性的输出信号,具体框图如下:
其输入、输出关系可用以下差分方程描述:
输入信号分解为冲激信号,
记系统单位冲激响应,则系统响应为如下的卷积计算式:
当时,h[n]是有限长度的(),称系统为FIR系统;反之,称系统为IIR系统。
三、实验内容
1、用MATLAB 求系统响应
1) 卷积的实现
线性移不变系统可由它的单位脉冲响应来表征。若已知了单位脉冲响应和系统激励就
可通过卷积运算来求取系统响应,即)(*)()(n h n x n y
程序:
x=input(‘Type in the input sequence=’); %输入x
h=input(‘Type in the impulse response sequence=’); %输入h
y=conv(x,h); % 对x ,h 进行卷积
N=length(y)-1; %求出N 的值
n=0:1:N; %n 从0开始,间隔为1的取值取到N 为止
disp(‘output sequence=’); disp(y); %输出y
stem(n,y); %画出n 为横轴,y 为纵轴的离散图
xlabel(‘Time index n ’); ylable(‘Amplitude ’); % 规定x 轴y 轴的标签
输入为:
x=[-2 0 1 -1 3]
h=[1 2 0 -1]
图形:
2) 单位脉冲响应的求取
线性时不变因果系统可用MA TLAB 的函数filter 来仿真
y=filter(b,a,x);
其中,x 和y 是长度相等的两个矢量。矢量x 表示激励,矢量a ,b 表示系统函数形式
滤波器的分子和分母系数,得到的响应为矢量y 。例如计算以下系统的单位脉冲响应
y(n)+0.7y(n-1)-0.45y(y-2)-0.6y(y-3)=0.8x(n)-0.44x(n-1)+0.36x(n-2)+0.02x(n-3)
程序:
N=input(‘Desired impuse response length=’);
b=input(‘Type in the vector b=’);
a=input(‘Type in the vector a=’);
x=[1 zeros(1,N-1)];
y=filter(b,a,x);
k=0:1:N-1;
stem(k,y);
xlabel(’Time index n’); ylable(‘Amplitude’);
输入:
N=41
b=[0.8 -0.44 0.36 0.02]
a=[1 0.7 -0.45 -0.6]
图形:
2、以下程序中分别使用conv和filter函数计算h和x的卷积y和y1,运行程序,并分析y和y1是否有差别,为什么要使用x[n]补零后的x1来产生y1;具体分析当h[n]有i个值,x[n]有j个值,使用filter完成卷积功能,需要如何补零?
程序:
clf;
h = [3 2 1 -2 1 0 -4 0 3]; %impulse response
x = [1 -2 3 -4 3 2 1]; %input sequence
y = conv(h,x);
n = 0:14;
subplot(2,1,1);
stem(n,y);
xlabel('Time index n'); ylabel('Amplitude');
title('Output Obtained by Convolution'); grid;
x1 = [x zeros(1,8)];
y1 = filter(h,1,x1);
subplot(2,1,2);
stem(n,y1);
xlabel('Time index n'); ylabel('Amplitude');
title('Output Generated by Filtering'); grid;
图形:
因为在y=filter(b,a,x)中,利用给定矢量a和b对x中的数据进行滤波,结果放入y
矢量中,y与x长度要相等,所以要使用x[n]补零后的x1来产生y1。
若h[n]有i个值,x[n]有j个值,则x1 = [x zeros(1,i-1)
3、编制程序求解下列两个系统的单位冲激响应,分别用filter 和 impz实现,并绘出其图形。
给出理论计算结果和程序计算结果并讨论。
第一题:
filter实现:
程序:
N=input('Desired impuse response length=');
b=input('Type in the vector b=');
a=input('Type in the vector a=');
x=[1 zeros(1,N-1)];
y=filter(b,a,x);
k=0:1:N-1;
stem(k,y);
xlabel('Time index n');
ylabel('Amplitude');
图形: