1. 程式人生 > >matlab繪製數字濾波器的幅頻響應曲線

matlab繪製數字濾波器的幅頻響應曲線

FREQZ 是計算數字濾波器的頻率響應的函式    [H,W] = FREQZ(B,A,N)  

可以先呼叫freqz()函式計算系統的頻率響應,然後利用abs()和angle()函式及plot()函式,即可繪製出系統在或 範圍內的頻響曲線。



In its simplest form, freqz accepts the filtercoefficient vectors b and a,and an integer p specifying the number of pointsat which to calculate the frequency response. freqz returnsthe complex frequency response in vector h

, andthe actual frequency points in vector w in rad/s.

呼叫freqz()的格式有以下兩種:

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

(2)[H,w]=freqz(B,A,N,’whole’)

   (1)中B和A分別為離散系統的系統函式分子、分母多項式的係數向量,返回量H則包含了離散系統頻響在0~pi範圍內N個頻率等分點的值(其中N為正整數),w則包含了範圍內N個頻率等分點。呼叫預設的N時,其值是512。

(2)中呼叫格式將計算離散系統在0~pi內的N個頻率等分點的頻率響應的值。


例:

繪製如下系統的頻響曲線

H(z)=(z-0.5)/z

 MATLAB命令如下:

    B=[1-0.5];

    A =[10];

   [H,w]=freqz(B,A,400,'whole');

   Hf=abs(H);

   Hx=angle(H);

    clf

   figure(1)

   plot(w,Hf)

title('離散系統幅頻特性曲線')

   figure(2)

   plot(w,Hx)

   title('離散系統相頻特性曲線')

MATLAB官方例項    http://cn.mathworks.com/help/signal/ref/freqz.html?requestedDomain=true

2018年4月23日15:27:45

更:在影象處理運算元過程中如果要得到掩模模板的幅頻響應,直接可以用freqz2來得到

官方例項:https://ww2.mathworks.cn/help/images/ref/freqz2.html