www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > > FPGA開源工作室

Matlab數(shù)字濾波器設(shè)計實踐—FIR

1低通濾波器設(shè)定

在理想情況下,低通濾波器使信號中低于指定截止頻率 ωc 的所有頻率分量保持不變,并拒絕高于 ωc 的所有分量。由于實現(xiàn)理想低通濾波器所需的脈沖響應(yīng)是無限長的,因此無法設(shè)計出理想的 FIR 低通濾波器。理想脈沖響應(yīng)的有限長度逼近會導(dǎo)致濾波器的通帶 (ω<ωc) 和阻帶 (ω>ωc) 中都出現(xiàn)波紋,并導(dǎo)致通帶和阻帶之間的過渡帶寬度非零。
當(dāng)用有限脈沖響應(yīng)逼近時,通帶/阻帶波紋和過渡帶寬度都是不希望出現(xiàn)的,且不可避免地與理想低通濾波器存在偏差。下圖說明了這些偏差:

實際的 FIR 設(shè)計通常包括過渡帶寬度和最大通帶和阻帶波紋不超過允許值的濾波器。除了這些設(shè)計設(shè)定之外,還必須選擇濾波器階數(shù),它等效于選擇截斷的脈沖響應(yīng)的長度。
濾波器設(shè)計中的設(shè)計設(shè)定可形象地比喻為下圖所示的三角形,每個設(shè)定對應(yīng)其中一個角。

三角形相當(dāng)于選擇設(shè)計設(shè)定時可用的自由度。由于各角之和是固定值,因此最多只能選擇兩個設(shè)定的值。第三個設(shè)定將由特定設(shè)計算法確定。此外,就像三角形中的各角一樣,如果我們使一個設(shè)定更大/更小,它將影響其他一個或兩個設(shè)定。
FIR 濾波器廣受歡迎,因為它們非常穩(wěn)定,并可以設(shè)計成具有線性相位的濾波器。盡管如此,這些濾波器仍可能有長瞬時響應(yīng),在某些應(yīng)用中的計算成本可能很高。

2 最小階 FIR 設(shè)計

通過指定通帶和阻帶頻率以及通帶波紋和阻帶衰減,可以獲得最小階設(shè)計。然后,設(shè)計算法會選擇符合設(shè)定的最小濾波器長度。
設(shè)計最小階低通 FIR 濾波器,其通帶頻率為 0.37pi 弧度/采樣點,阻帶頻率為 0.43pi 弧度/采樣點(因此過渡帶寬度等于 0.06*pi 弧度/采樣點),通帶波紋為 1 dB,阻帶衰減為 30 dB。

Fpass = 0.37; 
Fstop = 0.43;
Ap = 1;
Ast = 30;

d = designfilt('lowpassfir','PassbandFrequency',Fpass,...
 'StopbandFrequency',Fstop,'PassbandRipple',Ap,'StopbandAttenuation',Ast);

hfvt = fvtool(d);

可以使用 filtord 函數(shù)查詢生成的濾波器階數(shù)。
可以使用 filtord 函數(shù)查詢生成的濾波器階數(shù)。
N = filtord(d)
N = 39
可以使用 info 函數(shù)獲取用于設(shè)計濾波器的參數(shù)的有關(guān)信息
info(d)

默認(rèn)情況下,designfilt 函數(shù)會選擇一個等波紋設(shè)計算法。線性相位等波紋濾波器是令人滿意的,因為對于給定階數(shù),這種濾波器與理想濾波器的最大可能偏差最小。
然而,請注意,也可以使用 Kaiser 窗獲得最小階設(shè)計。即使 Kaiser 窗方法對相同設(shè)定產(chǎn)生更大的濾波器階數(shù),當(dāng)設(shè)計設(shè)定非常嚴(yán)格時,該算法的計算成本更低,并且不太可能出現(xiàn)收斂問題。如果應(yīng)用需要非常窄的過渡帶寬度或非常大的阻帶衰減,就可能出現(xiàn)這種情況。
使用 Kaiser 窗方法設(shè)計與上述設(shè)定相同的濾波器,并將其響應(yīng)與等波紋濾波器進(jìn)行比較。

dk = designfilt('lowpassfir','PassbandFrequency',Fpass,...
 'StopbandFrequency',Fstop,'PassbandRipple',Ap,...
 'StopbandAttenuation',Ast, 'DesignMethod', 'kaiserwin');

addfilter(hfvt,dk);
legend(hfvt,'Equiripple design', 'Kaiser window design')
 

N = filtord(dk)
N = 52

3 以赫茲為單位指定頻率參數(shù)

如果知道濾波器工作將使用的采樣率,可以指定采樣率和頻率(以赫茲為單位)。重新設(shè)計采樣率為 2 kHz 的最小階等波紋濾波器。

Fpass = 370;
Fstop = 430;
Ap = 1;
Ast = 30;
Fs = 2000; 

d = designfilt('lowpassfir','PassbandFrequency',Fpass,...
 'StopbandFrequency',Fstop,'PassbandRipple',Ap,...
 'StopbandAttenuation',Ast,'SampleRate',Fs);
 
hfvt = fvtool(d);

4 固定階、固定過渡帶寬度

固定階設(shè)計適用于對計算負(fù)載敏感或?qū)V波器系數(shù)個數(shù)有限制的應(yīng)用。一種選擇是以控制通帶波紋/阻帶衰減為代價來固定過渡帶寬度。
假設(shè)一個 30 階低通 FIR 濾波器,其通帶頻率為 370 Hz,阻帶頻率為 430 Hz,采樣率為 2 kHz。對于這組特定設(shè)定,可使用兩種設(shè)計方法:等波紋法和最小二乘法。下面我們?yōu)槊糠N方法設(shè)計一個濾波器,并比較結(jié)果。

N = 30;
Fpass = 370;
Fstop = 430;
Fs = 2000; 

% Design method defaults to 'equiripple' when omitted
deq = designfilt('lowpassfir','FilterOrder',N,'PassbandFrequency',Fpass,...
 'StopbandFrequency',Fstop,'SampleRate',Fs);

dls = designfilt('lowpassfir','FilterOrder',N,'PassbandFrequency',Fpass,...
 'StopbandFrequency',Fstop,'SampleRate',Fs,'DesignMethod','ls');

hfvt = fvtool(deq,dls);
legend(hfvt,'Equiripple design', 'Least-squares design')
 

等波紋濾波器非常適合必須滿足特定容差的應(yīng)用,例如設(shè)計具有給定最小阻帶衰減或給定最大通帶波紋的濾波器。另一方面,如果我們想最小化通帶/阻帶中(理想濾波器和實際濾波器之間)的誤差能量,這些設(shè)計可能并不理想。
如果您要盡可能降低某個頻帶內(nèi)信號的能量,請使用最小二乘設(shè)計。
在上述示例中,設(shè)計的濾波器在通帶和阻帶中具有相同的波紋。我們可以使用權(quán)重來減少其中一個頻帶內(nèi)的波紋,同時保持濾波器階數(shù)固定。例如,如果您希望阻帶波紋是通帶波紋的十分之一,則為阻帶賦予的權(quán)重必須是通帶權(quán)重的十倍。根據(jù)上述情況重新設(shè)計等波紋濾波器。

deqw = designfilt('lowpassfir','FilterOrder',N,'PassbandFrequency',Fpass,...
 'StopbandFrequency',Fstop,'SampleRate',Fs,...
 'PassbandWeight',1,'StopbandWeight',10);

hfvt = fvtool(deq,deqw);
legend(hfvt,'Equiripple design', 'Equiripple design with weighted stopband')
 

5 固定階、固定截止頻率

可以使用窗口設(shè)計方法設(shè)計具有固定濾波器階數(shù)和截止頻率的濾波器。
可以使用不同窗口來控制阻帶衰減,同時保持濾波器階數(shù)不變。
例如,假設(shè)有截止頻率為 60 Hz、采樣率為 1 kHz 的 100 階低通 FIR 濾波器。比較使用 Hamming 窗和使用旁瓣衰減為 90 dB 的 Chebyshev 窗產(chǎn)生的設(shè)計。

dhamming = designfilt('lowpassfir','FilterOrder',100,'CutoffFrequency',60,...
 'SampleRate',1000,'Window','hamming');

dchebwin = designfilt('lowpassfir','FilterOrder',100,'CutoffFrequency',60,...
 'SampleRate',1000,'Window',{'chebwin',90});

hfvt = fvtool(dhamming,dchebwin);
legend(hfvt,'Hamming window', 'Chebyshev window')
 

可以通過其他方式指定具有固定階數(shù)的濾波器:固定截止頻率、通帶波紋和阻帶衰減;固定過渡帶寬度;以及固定半功率 (3dB) 頻率。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
關(guān)閉