matlab数字滤波器

MATLAB提供了专门用于求离散系统频响特性的函数freqz(),调用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个频率等分店的频率响应的值。
因此,可以先调用freqz()函数计算系统的频率响应,然后利用abs()和angle()函数及plot()函数,即可绘制出系统在 或 范围内的频响曲线。
绘制如下系统的频响曲线
y(n)=x(n)-x(n-3) %减法滤波器 

MATLAB命令如下:

clear all; 
clc; 
fs=600; 
b=[1,0,0,-1]; 
a=[1]; 
[h,f]=freqz(b,a,256,fs); 
mag=abs(h); 
ph=angle(h); 
ph=ph*180/pi; 
subplot(2,1,1) 
plot(f,mag); 
grid on 
xlabel('频率(Hz)'); 
ylabel('幅频特性'); 
subplot(2,1,2) 
plot(f,ph); 
grid on 
xlabel('频率(Hz)'); 
ylabel('相频特性');

你可能感兴趣的:(数字滤波器)