對於一個變量a,matlab中定義需要這樣 syms a;
定義之后就可以寫由變量組成的式子,比如 c=(1+a^-1)^5;
可以用expand(c) 就能把c展開成多項式,每一項的系數就可以看到。
freqz的用法
MATLAB提供了專門用於求離散系統頻響特性的函數freqz(),調用freqz()的格式有以下兩種:
l [H,w]=freqz(B,A,N)
B和A分別為離散系統的系統函數分子、分母多項式的系數向量,N為正整數,返回量H則包含了離散系統頻響 在 0——pi范圍內N個頻率等分點的值,向量w則包含 范圍內N個頻率等分點。調用中若N默認,默認值為512。
l [H,w]=freqz(B,A,N,’whole’)
該調用格式將計算離散系統在0—pi范內的N個頻率等分店的頻率響應的值。
因此,可以先調用freqz()函數計算系統的頻率響應,然后利用abs()和angle()函數及plot()函數,即可繪制出系統在 或 范圍內的頻響曲線。
繪制如下系統的頻響曲線
H(z)=(z-0.5)/z
MATLAB命令如下:
B=[1 -0.5];
A =[1 0];
[H,w]=freqz(B,A,400,'whole');
H是頻率響應的幅度,w是0---pi內的400個點
Hf=abs(H);
Hx=angle(H);
clf
figure(1)
plot(w,Hf)
title('離散系統幅頻特性曲線')
figure(2)
plot(w,Hx)
title('離散系統相頻特性曲線')
這樣畫出來的是線性的,要想獲得db格式的幅度,需要轉換 20*log10(Hf)
之后再畫就是db格式的
也可以直接用freqz(b,a)這樣就會畫出幅頻響應和相頻響應,幅頻響應直接是db格式的幅度。
在輸入數據中,b,a的數據應該按照如下格式寫下系數
z^0,z^-1,z^-2,z^-3......z^-m。
也就是先寫常數,再寫z^-1的系數再寫z^-2的系數。。。。。