matlab數字濾波器
阿新 • • 發佈:2019-02-09
MATLAB提供了專門用於求離散系統頻響特性的函式freqz(),呼叫freqz()的格式有以下兩種:
(1)[H,w]=freqz(B,A,N)
(2)[H,w]=freqz(B,A,N,'whole')
因此,可以先呼叫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('相頻特性');
(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('相頻特性');