matlab中freqz的用法以及多項式的展開


對於一個變量a,matlab中定義需要這樣 syms a;

定義之后就可以寫由變量組成的式子,比如 c=(1+a^-1)^5;

可以用expand(c) 就能把c展開成多項式,每一項的系數就可以看到。

freqz的用法

MATLAB提供了專門用於求離散系統頻響特性的函數freqz(),調用freqz()的格式有以下兩種:

l        [H,w]=freqz(B,A,N)

 

    BA分別為離散系統的系統函數分子、分母多項式的系數向量,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的系數。。。。。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM