1、樓上給的代碼就可以了:
n = -5:40;
x = (1.02.^n+0.5*cos(2*pi*n/8+pi/4)).*(n>=0)+0.1*(n==-1)+0.15*(n==-2);
stem(n,x);
2、把系統T表示為濾波器形式的傳遞函數,然後直接調用impulse求解脈沖響應
T=filt(ones(1,7),[1 zeros(1,6)])/7;
[y,t]=impulse(T,40);
stem(t,y);
3、對系統進行z變換,得到傳遞函數為
T(z) = (1 + z^-1 + z^-2 + z^-3 + z^-4 + z^-5 + z^-6) / 7
系統所有極點均位於z=0,所以系統穩定;
從差分方程看,系統在n時刻的輸出,只取決於該時刻以及該時刻之前的輸入,所以是因果系統;
差分方程只包含輸入量的壹次方項,所以是線性系統;
差分方程的系數均為常數,所以是時不變系統。
4、使用循環求解y(n):
y = x * 0;
for i = 7:length(x)
y(i) = sum(x(i-6:i-0)) / 7;
end
stairs(n,y)
5、使用filter函數求解:
y1 = filter(ones(1,7)/7,[1 zeros(1,6)],x);
plot(n,y,n,y1)
第4步編程計算時,輸出從n=1開始計算的所以前幾個值為0,而filter的計算結果則是從信號最左端開始,結果更可信。
也可以把幾種信號都放在壹張圖中對比:
plot(n,x,'-o',n,y,'.-',n,1.02.^n.*(n>=-5),'--');
legend('x(n)','y(n)','ideal',4)
6、感想和體會自己寫吧。