1. 程式人生 > >matlab數字濾波器

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('相頻特性');