【DSP】求解系统的单位脉冲响应
零、Matlab常用操作
(1) 从矩阵中截取
B=A(a:b,c:d)
矩阵A为m*n,求由A的第a-b行,第c-d列的元素构成的矩阵
(2) filter 求解差分方程
1 维数字滤波器 - MATLAB filter - MathWorks 中国
一、求解时域离散系统的单位脉冲响应
%%计算整个系统的单位脉冲响应
%%矩形序列
n = (0:99);
len = 6;
h2 = n >= 0 & n<=(len - 1);
subplot(4,1,2);
stem(n,h2,'filled','magenta');
axis([-2,40,-2,2])
title('系统h2')
% 实指数序列
x = n >= 0 & n<=(len - 1);
h1 = (0.5).^n .* x;
subplot(4,1,1);
stem(n,h1,'filled','magenta');
axis([-2,40,-2,2])
title('系统h1')
%%单位脉冲序列的移位加权和
for i =1:length(n)
if n(i) == 1
h3(i) = 0.25;
elseif n(i) == 2
h3(i) = 0.5;
elseif n(i) == 3
h3(i) = 0.25;
else
h3(i) = 0;
end
end
subplot(4,1,3);
stem(n,h3,'filled','magenta');
axis([-2,40,-2,2])
title('系统h3')
h12 = conv(h1,h2) ;
h12 = h12(1:1,1:100);
vn = h12 + h3;
%调用filter函数求解h(n) = T[v(n)]
B4 = [1,1];
A4 = [1,-0.9,0.81];
hn = filter(B4,A4,vn);
subplot(4,1,4);
stem(n,hn,'filled','magenta');
axis([-2,40,-2,8])
title('总系统单位脉冲响应序列')