1. 程式人生 > >matlab的FIR濾波器設計

matlab的FIR濾波器設計

1.matlab設計fir濾波器的方法

matlab可以使用fir1函式設計低通、高通、低通、帶通等具有嚴格線性相位特性的濾波器。
fir1函式的幾種語法如下:

    b=fir1(n,wn);
    b=fir1(n,wn,'ftype');
    b=fir1(n,wn,'ftype',window)
    b=fir1(...,'noscale')

各個引數的含義:

  • b:返回fir濾波器的單位脈衝相應,偶對稱,長度為n+1;
  • n:濾波器的階數,設計出的濾波器長度為n+1;
  • wn:濾波器的截止頻率,取值範圍0<wn<1,1對應取樣頻率的1/2。當需要設計低通/高通濾波器,wn是單個值的,即截至頻率,ftype引數是low/high;;當設計帶通/帶阻濾波器時,wn由兩個陣列成的向量[wn1 wn2],ftype引數是bandpass/stop;
  • window:指定使用的窗函式,預設是漢明窗(Hamming),最常用的還有漢寧窗(Hanning)、布萊克曼窗(Blackman)、凱賽窗(Kaiser);
  • noscale:指定歸一化濾波器的幅度‘

2.fir1函式設計濾波器

設計濾波器,採用漢明窗,長度41(階數40),取樣頻率2000hz:

  • 1.低通,截至頻率200hz;
  • 2.高通,截至頻率200hz;
  • 3.帶通,通帶200-400hz;
  • 4.帶阻,阻帶200-400h’z
clear all; close all; clc;
% 濾波器長度
N=41;
%取樣頻率
fs=2000;

%各種濾波器的特徵頻率
fc_lpf=
200; fc_hpf=200; fp_bandpass=[200 400]; fc_stop=[200 400]; %以取樣頻率的一般,對頻率歸一化 wn_lpf=fc_lpf*2/fs; wn_hpf=fc_hpf*2/fs; wn_bandpass=fp_bandpass*2/fs; wn_stop=fc_stop*2/fs; %採用fir1函式設計FIR濾波器 b_lpf=fir1(N-1,wn_lpf); b_hpf=fir1(N-1,wn_hpf,'high'); b_bandpass=fir1(N-1,wn_bandpass,'bandpass'); b_stop=fir1(N-1,wn_stop,'stop'
); %求幅頻響應 m_lpf=20*log(abs(fft(b_lpf)))/log(10); m_hpf=20*log(abs(fft(b_hpf)))/log(10); m_bandpass=20*log(abs(fft(b_bandpass)))/log(10); m_stop=20*log(abs(fft(b_stop)))/log(10); % 設定頻率響應的橫座標單位為hz x_f=0:(fs/length(m_lpf)):fs/2; % 單位脈衝響應 subplot(4,2,1);stem(b_lpf);xlabel('n');ylabel('h(n)');legend('lpf'); subplot(4,2,3);stem(b_hpf);xlabel('n');ylabel('h(n)');legend('hpf'); subplot(4,2,5);stem(b_bandpass);xlabel('n');ylabel('h(n)');legend('bandpass'); subplot(4,2,7);stem(b_stop);xlabel('n');ylabel('h(n)');legend('stop'); % 幅頻響應 subplot(4,2,2);plot(x_f,m_lpf(1:length(x_f)));xlabel('頻率(hz)');ylabel('幅度(db)','fontsize',8);legend('lpf') subplot(4,2,4);plot(x_f,m_hpf(1:length(x_f)));xlabel('頻率(hz)');ylabel('幅度(db)','fontsize',8);legend('hpf') subplot(4,2,6);plot(x_f,m_bandpass(1:length(x_f)));xlabel('頻率(hz)');ylabel('幅度(db)','fontsize',8);legend('bandpass') subplot(4,2,8);plot(x_f,m_stop(1:length(x_f)));xlabel('頻率(hz)');ylabel('幅度(db)','fontsize',8);legend('stop');

模擬脈衝相應和幅頻響應圖:
在這裡插入圖片描述