2014-10-31 81 views
0

我給出了這個。Kaiser濾波器的第二個參數應該是什麼?

的噪聲信號在44100赫茲取樣。 通帶邊緣:2500Hz。 阻帶邊緣:4000Hz。 通帶最大增益Gpbmax:40 dB。 通帶Gpbmin的最小增益:37 dB。 阻帶的最大增益Gsbmax:-55 dB。

而且我已經用Kaiser(低通濾波器)來過濾,但是,我不明白在第二個參數放置([1:0]),以及如果其他參數是否正確? 我正在收到一個n = -36。我不知道該怎麼辦

我的代碼:

% Design Kaiser Filter 
Fs = 44100;   % Sampling Frequency (Hz) 
Fcuts = [2500 4000]; % cutoff Frequency 
pass = [3 55];  % passband 

% Use kaiserord to get the minimum order of the filter 
[n,Wn,beta,ftype] = kaiserord(Fcuts, [1 0], pass, Fs); 

同樣的問題也適用於公園,麥克萊倫 [N,FO,AO,W] = firpmord(F,A,DEV,FS) 是一樣的嗎?

謝謝。

回答

0

通帶和阻帶的偏差不能以dB爲單位給出。

pass = [3 55];  % passband 

它必須根據濾波器增益給出。

doc kaiserord 

dev爲一個矢量相同的大小作爲指定輸出濾波器的頻率響應和其期望的振幅之間的最大容許誤差或偏差,針對每個頻帶。 dev中的條目指定通帶波動和阻帶衰減。 您將dev中的每個條目指定爲正數,表示絕對濾波器增益(不是分貝)。

0

有趣的是,你試圖google的問題。我搜索了「kaiser matlab」,第一次打到kaiser,第二次打到kaiserord

該文檔明確指出,Fcuts是頻段,第二個輸入aFcuts中頻率的幅度。所以你說的是Fcuts(1)和Fcuts(2)的0(或接近)的大小是1。

+0

*拍手* ..沒有你也看過我的問題的內容? – achehab 2014-10-31 16:05:05

+0

@achehab好的,但你不能說我的答案沒有回答最重要的問題。但是,其餘的,不,這是不正確的。您通帶邊緣增益設置爲0 dB,但規格是Gpbmin:37分貝你還需要指定另一點以前來實現這個要求Gpbmax 40分貝(0赫茲也許?)和參數傳遞必須在絕對座標其餘的部分。對於阻帶邊緣的-inf db,你也很難做到。 -55 dB(絕對座標)就足夠了 – patrik 2014-10-31 16:18:08

相關問題