你好,可以这么做,代码仅供参考:
clc
clear
h1 = @(n) 1/2.^n.*ismember(n, 0:1:5);
h2 = @(n) 1.*ismember(n, 0:1:5);
y3 = @(n, x) 1/4*x(n) + 1/2*x(n-1) + 1/4*x(n-2);
y4 = @(n, y, v) 0.9*y(n-1) -0.81*y(n-2) + v(n) + v(n-1);
nt = 100;
dt = 1;
x = zeros(nt,1);
x(1) = 1/dt;
T3 = zeros(size(x));
T3(1) = 1/4*x(1);
T3(2) = 1/2*x(2) + 1/2*x(1);
v = zeros(size(x));
T4 = zeros(size(x));
for n = 0:nt-1
T1 = h1(x(n+1));
T2 = h2(T1);
if(n>=2)
T3(n+1) = y3(n+1,x);
end
v(n+1) = T2 + T3(n+1);
if(n>=2)
T4(n+1) = y4(n+1,T4,v);
elseif(n==0)
T4(n+1) = v(n+1);
elseif(n==1)
T4(n+1) = 0.9*T4(n) + v(n+1) + v(n);
end
end
y = T4;
plot(y)%画出响应
xlabel('n');ylabel('y')