![](https://img.51dongshi.com/20250107/wz/18416187352.jpg)
為了畫出x(n)波形,可以采用MATLAB中的代碼: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); 這段代碼首先定義了n的范圍,然后根據給定的公式計算x(n)的值,并使用stem函數繪制了x(n)的波形。接下來,將系統T表示為濾波器形式的傳遞函數,可以直接調用impulse求解脈沖響應。代碼如下:T=filt(ones(1,7),[1 zeros(1,6)])/7; [y,t]=impulse(T,40); stem(t,y); 通過這段代碼,我們可以得到系統T的脈沖響應,并通過stem函數將其繪制出來。對系統進行z變換,得到傳遞函數為T(z) = (1 + z^-1 + z^-2 + z^-3 + z^-4 + z^-5 + z^-6) / 7。從差分方程來看,系統在n時刻的輸出只取決于該時刻以及該時刻之前的輸入,因此它是因果系統。差分方程只包含輸入量的一次方項,說明該系統是線性系統。由于差分方程的系數均為常數,所以它是時不變系統。此外,系統所有極點均位于z=0,因此系統穩定。使用循環求解y(n)的代碼如下:y = x * 0; for i = 7:length(x) y(i) = sum(x(i-6:i-0)) / 7; end stairs(n,y) 這段代碼通過循環計算了y(n)的值,并使用stairs函數繪制了y(n)的波形。使用filter函數求解y(n)的代碼如下:y1 = filter(ones(1,7)/7,[1 zeros(1,6)],x); plot(n,y,n,y1) 通過這段代碼,我們可以得到使用filter函數計算得到的y(n)波形,并將其與之前的y(n)波形進行比較。值得注意的是,filter函數計算的y(n)波形從信號最左端開始,因此結果更可信。為了更直觀地對比幾種信號,可以將它們放在一張圖中。代碼如下:plot(n,x,'-o',n,y,'.-',n,1.02.^n.*(n>=-5),'--'); legend('x(n)','y(n)','ideal',4) 這段代碼將x(n)、y(n)和理想波形1.02^n*(n>=-5)放在同一張圖中,并使用不同的標記進行區分。通過觀察這三者的波形,可以更好地理解它們之間的關系。以上就是在MATLAB中繪制x(n)波形的過程,通過不同的方法和函數可以得到所需的波形,并進行分析和比較。希望這些方法能幫助你更好地理解和掌握MATLAB在信號處理中的應用。