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

你可能感兴趣的:(MATLAB)