matlab的FIR濾波器設計

2021-08-30 08:45:15 字數 3377 閱讀 5570

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

fir1函式的幾種語法如下:

b=

fir1

(n,wn)

; b=

fir1

(n,wn,

'ftype');

b=fir1

(n,wn,

'ftype'

,window)

b=fir1(.

..,'noscale'

)

各個引數的含義:

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

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'

);

**脈衝相應和幅頻響應圖:

前面已經設計了低通,帶通,高通的濾波器,根據引數設定得到了濾波器係數:

b_lpf、b_hpf、b_bandpass、b_stop

假設我們現在由原始資料xx,要對xx進行濾波,得到資料yy,在matlab應該怎麼操作呢

就一句:

yy=

filter

(b_lpf,

1,xx)

;

FIR濾波器設計

fir濾波器的優越性 相位對應為嚴格的線性,不存在延遲失真,僅僅有固定的時間延遲 因為不存在穩定性問題,設計相對簡單 僅僅包括實數演算法,不涉及複數演算法,不須要遞推運算,長度為m,階數為m 1,計算值約為m 2。關於fir濾波器的幅頻特性和相頻特性。在人們不關心相位時,能夠讓幅頻特性常為正,原來為...

FIR濾波器設計

該文件為了說明fir濾波器,iir濾波器的原理,數學含義,設計方法 一 原理 1 fir有限衝擊響應,iir無限衝擊響應。前者無反饋,只與當前和歷史輸入有關,後者有反饋,不僅與當前和歷史輸入有關,還與歷史輸出有關。fir輸出相位線性,設計簡單,但是階數更高 iir輸出相位不線性,設計困難,但相同效能...

FIR濾波器的設計

matlab可以使用fir1函式設計低通 高通 低通 帶通等具有嚴格線性相位特性的濾波器。fir1函式的幾種語法如下 b fir1 n,wn b fir1 n,wn,ftype b fir1 n,wn,ftype window b fir1 noscale 各個引數的含義 設計濾波器,採用漢明窗,長...