实验2 离散系统的差分方程、单位脉冲响应和卷积分析
一、 实验目的
1、 熟悉并掌握离散系统的差分方程表示法;
2、 加深对单位脉冲响应和卷积分析方法的理解。
二、 实验原理
(一),
1. 单位采样序列
δ(n ) =⎨⎧1 n =0
⎩0n ≠0
在MATLAB 中可以利用zeros()函数实现。
x =zeros (1, N );
x (1) =1;
如果δ(n ) 在时间轴上延迟了k 个单位,得到δ(n -k ) 即:
δ(n -k ) =⎧⎨1
⎩0 n =k
n ≠0
2.单位阶跃序列
u (n )=⎧⎨1
⎩0 n ≥0
n
在MATLAB 中可以利用ones()函数实现。
x =ones (1, N );
3.正弦序列
x (n ) =A sin(2πfn /Fs +ϕ)
在MATLAB 中
n =0:N -1
x =A *sin(2*pi *f *n /Fs +fai )
4.复指数序列
在MATLAB 中
5.实指数序列
在MATLAB 中
(二)
在时域中,离散时间系统对输入信号或者延迟信号进行运算处理,生成具有所需特性的输出信号,具体框图如下:
n =0:N -1x =a .^n x (n ) =a n x (n ) =e j ϖn n =0:N -1x =exp(j *w *n )
其输入、输出关系可用以下差分方程描述:
∑a y (n -i ) =∑b x (n -i ) i i
i =0i =0N M
输入信号分解为单位采样序列的移位加权和,即:
x (n ) =
m =-∞∑∞x (m ) δ(n -m )
记系统单位脉冲响应
δ(n ) →h (n )
则系统响应为如下的卷积计算式:
y (n ) =x (n ) *h (n ) =
m =-∞∑x (m ) h (n -m ) ∞
当a i =0, i =1, 2,... N 时,h(n)是有限长度的(n :[0,M]),称系统为FIR 系统;反之,称系统为IIR 系统。
三、 预习要求
(1) 在MATLAB 中,熟悉利用函数y=filter(b,a,x)实现差分方程的
仿真;
(2) 在MATLAB 中,熟悉用函数 y=conv(x,h)计算卷积,用
y=impz(b,a,N)求系统单位脉冲响应的过程。
四、 实验内容
1、以下程序中分别使用conv 和filter 函数计算h 和x 的卷积y 和y1,运行程序,并分析y 和y1是否有差别,为什么要使用x(n)补零后的x1来产生y1;具体分析当h(n)有i 个值,x(n)有j 个值,使用filter 完成卷积功能,需要如何补零?
% Program P2_1
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;
2、编制程序产生上述5种信号(长度可输入确定),并绘出其图形。
3、编制程序求解下列两个系统的单位脉冲响应和阶跃响应,并绘出其图形。要求分别用 filter、conv 、impz 三种函数完成。 y (n ) +0.75y (n -1) +0.125y (n -2) =x (n ) -x (n -1)
y (n ) =0.25[x (n -1) +x (n -2) +x (n -3) +x (n -4)]
给出理论计算结果和程序计算结果并讨论。
实验2 离散系统的差分方程、单位脉冲响应和卷积分析
一、 实验目的
1、 熟悉并掌握离散系统的差分方程表示法;
2、 加深对单位脉冲响应和卷积分析方法的理解。
二、 实验原理
(一),
1. 单位采样序列
δ(n ) =⎨⎧1 n =0
⎩0n ≠0
在MATLAB 中可以利用zeros()函数实现。
x =zeros (1, N );
x (1) =1;
如果δ(n ) 在时间轴上延迟了k 个单位,得到δ(n -k ) 即:
δ(n -k ) =⎧⎨1
⎩0 n =k
n ≠0
2.单位阶跃序列
u (n )=⎧⎨1
⎩0 n ≥0
n
在MATLAB 中可以利用ones()函数实现。
x =ones (1, N );
3.正弦序列
x (n ) =A sin(2πfn /Fs +ϕ)
在MATLAB 中
n =0:N -1
x =A *sin(2*pi *f *n /Fs +fai )
4.复指数序列
在MATLAB 中
5.实指数序列
在MATLAB 中
(二)
在时域中,离散时间系统对输入信号或者延迟信号进行运算处理,生成具有所需特性的输出信号,具体框图如下:
n =0:N -1x =a .^n x (n ) =a n x (n ) =e j ϖn n =0:N -1x =exp(j *w *n )
其输入、输出关系可用以下差分方程描述:
∑a y (n -i ) =∑b x (n -i ) i i
i =0i =0N M
输入信号分解为单位采样序列的移位加权和,即:
x (n ) =
m =-∞∑∞x (m ) δ(n -m )
记系统单位脉冲响应
δ(n ) →h (n )
则系统响应为如下的卷积计算式:
y (n ) =x (n ) *h (n ) =
m =-∞∑x (m ) h (n -m ) ∞
当a i =0, i =1, 2,... N 时,h(n)是有限长度的(n :[0,M]),称系统为FIR 系统;反之,称系统为IIR 系统。
三、 预习要求
(1) 在MATLAB 中,熟悉利用函数y=filter(b,a,x)实现差分方程的
仿真;
(2) 在MATLAB 中,熟悉用函数 y=conv(x,h)计算卷积,用
y=impz(b,a,N)求系统单位脉冲响应的过程。
四、 实验内容
1、以下程序中分别使用conv 和filter 函数计算h 和x 的卷积y 和y1,运行程序,并分析y 和y1是否有差别,为什么要使用x(n)补零后的x1来产生y1;具体分析当h(n)有i 个值,x(n)有j 个值,使用filter 完成卷积功能,需要如何补零?
% Program P2_1
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;
2、编制程序产生上述5种信号(长度可输入确定),并绘出其图形。
3、编制程序求解下列两个系统的单位脉冲响应和阶跃响应,并绘出其图形。要求分别用 filter、conv 、impz 三种函数完成。 y (n ) +0.75y (n -1) +0.125y (n -2) =x (n ) -x (n -1)
y (n ) =0.25[x (n -1) +x (n -2) +x (n -3) +x (n -4)]
给出理论计算结果和程序计算结果并讨论。