1.1 濾波器設(shè)計流程
本文展示了如何使用Matlab中濾波器設(shè)計規(guī)格對象函數(shù)fdesign
的使用方法。根據(jù)fdesign
創(chuàng)建的濾波器規(guī)格對象,可以使用design
函數(shù)直接設(shè)計濾波器。
濾波器的設(shè)計、分析以及在數(shù)據(jù)流上的應(yīng)用的示意圖如下所示:
具體的步驟如下所示:
- 步驟一: 創(chuàng)建一個
fdesign.response
規(guī)格對象用以表述濾波器設(shè)計參數(shù); - 步驟二: 使用
designmethods
確定針對濾波器規(guī)格隊形的濾波器設(shè)計方法; - 步驟三: 如果想要進一步修改濾波器的參數(shù),可以查看
designoptions
函數(shù)的使用方法,進行具體的濾波器參數(shù)設(shè)置。 - 步驟四: 使用
design
方法從濾波器規(guī)格對象設(shè)計一個濾波器,并以步驟二中的設(shè)計方法作為輸入。如果需要修改設(shè)計選項值,需要指定名稱-值
對的方式向design
函數(shù)中傳遞參數(shù);另外,如果在調(diào)用design
函數(shù)時,沒有指定任何輸出參數(shù),則將默認啟動濾波器可視化工具FVTool
,并現(xiàn)實設(shè)計濾波器的幅值響應(yīng)。 - 步驟五: 至此,我們就可以進一步查看設(shè)計的濾波器分析結(jié)果包括:頻率響應(yīng)、損失函數(shù)、濾波器響應(yīng)特征測量值等。具體的可以參考Analysis Methods for Filter System Objects。
- 步驟六: 經(jīng)過濾波器分析、設(shè)計后,我們就可以將濾波器對象應(yīng)用于輸入數(shù)據(jù)流。
1.2 濾波器設(shè)計規(guī)格對象函數(shù)fdesign的語法
fdesign
函數(shù)的使用語法主要包括如下四種方式:
- (1)
designSpecs = fdesign.response
:返回一個具有特定響應(yīng)(response
)的濾波器設(shè)計規(guī)格對象(design specification object)。 - (2)
designSpecs = fdesign.response(spec)
:指定用于定義濾波器設(shè)計的變量spec
。 - (3)
designSpecs = fdesign.response(___, Fs)
:指定設(shè)計濾波器的采樣頻率()。注意:Fs
參數(shù)必須作為最后一個參數(shù)。 - (4)
designSpecs = fdesign.response(___, magunits)
:指定輸入?yún)?shù)的幅值單位。
二、低通濾波器設(shè)計與性能分析
示例: 設(shè)計一個采樣頻率為的低通濾波器,低通濾波器的參數(shù)規(guī)格如下所示:
- 通帶頻率為;
- 阻帶頻率為;
- 通帶波動為;
- 阻帶衰減為。
低通濾波器的階數(shù)可以根據(jù)參數(shù)規(guī)格自動的配置。
2.1 低通濾波器的設(shè)計
首先,使用fdesign.lowpass
函數(shù)設(shè)置低通濾波器規(guī)格對象,Matlab代碼如下所示:
Fs = 96e3; % 采樣頻率
Fpass = 20e3; % 通帶頻率
Fstop = 24e3; % 阻帶頻率
Apass = 0.01; % 通帶波紋
Astop = 80; % 阻帶衰減
% 使用fdesign.lowpass函數(shù)得到濾波器規(guī)格對象filtSpecs
filtSpecs = fdesign.lowpass( ...
Fpass, ... % 通帶頻率
Fstop, ... % 阻帶頻率
Apass, ... % 通帶波紋
Astop, ... % 阻帶衰減
Fs); % 采樣頻率
然后,使用designmethods
函數(shù)可以輸出針對濾波器規(guī)格對象filtSpecs
可用的濾波器設(shè)計方法,Matlab代碼如下所示:
% 查看可用的濾波器設(shè)計方法
designmethods(filtSpecs, 'SystemObject', true)
該代碼的執(zhí)行結(jié)果如下圖所示:
下面,使用design
函數(shù)設(shè)計兩個滿足規(guī)格的低通濾波器:
- 等波紋FIR低通濾波器(equiripple);
- 橢圓IIR低通濾波器。
!! ? 注意:
design
函數(shù)的返回值是一個dsp.FIRdecimator
系統(tǒng)對象,Matlab代碼如下所示:
等波紋FIR低通濾波器濾波器的實現(xiàn)代碼如下所示:
lpFIR = design(filtSpecs, 'equiripple', 'SystemObject', true)
代碼輸出如下圖所示:
橢圓IIR低通濾波器的實現(xiàn)代碼如下所示:
lpIIR = design(filtSpecs, 'ellip', 'SystemObject', true)
代碼輸出結(jié)果如下圖所示:
2.2 低通濾波器的分析
最后,我們可以使用如下函數(shù)對設(shè)計的濾波器進行分析與可視化:
measure
函數(shù):測量濾波器系統(tǒng)對象的頻率響應(yīng)特性,對于低通濾波器,該函數(shù)測量的濾波器指標(biāo)如下表所示:
頻率響應(yīng)特性 | 描述 |
---|---|
Sample Rate |
濾波器采樣頻率 |
Passband Edge |
通帶進入過渡時的邊緣位置 |
3-dB Point |
響應(yīng)曲線上-3dB點的位置 |
6-dB Point |
響應(yīng)曲線上-6dB點的位置 |
Stopband Edge |
過渡帶進入阻帶時的邊緣位置 |
Passband Ripple |
通帶波紋 |
Stopband Atten |
阻帶衰減 |
Transition Width |
通帶與阻帶之間的過渡寬度 |
cost
函數(shù):評估濾波器系統(tǒng)對象的實現(xiàn)計算成本,并返回一個包含計算成本評估值的結(jié)構(gòu)體,返回值包含的內(nèi)容如下表所示:
計算成本評估值 | 描述 |
---|---|
NumCoefficients |
濾波器系數(shù)的數(shù)量,不包含 |
NumStates |
濾波器狀態(tài)的數(shù)量 |
MultiplicationsPerInputSample |
每個輸入樣本執(zhí)行乘法運算的數(shù)量 |
AdditionsPerInputSample |
每個輸入樣本執(zhí)行加法運算的數(shù)量 |
fvtool
:對濾波器進行可視化并直觀地比較不同濾波器的性能。
(1)濾波器頻率響應(yīng)特性測量
等波紋FIR低通濾波器濾波器的頻率響應(yīng)特性測量代碼如下所示:
FIRmeas = measure(lpFIR)
等波紋FIR低通濾波器濾波器的頻率響應(yīng)特性測量結(jié)果如下圖所示:
橢圓IIR低通濾波器的頻率響應(yīng)特性測量代碼如下所示:
IIRmeas = measure(lpIIR)
橢圓IIR低通濾波器的頻率響應(yīng)特性測量結(jié)果如下圖所示:
(2)濾波器計算成本評估
等波紋FIR低通濾波器濾波器的計算成本評估代碼如下所示:
FIRcost = cost(lpFIR)
等波紋FIR低通濾波器濾波器的計算成本評估結(jié)果如下圖所示:
橢圓IIR低通濾波器的計算成本評估代碼如下所示:
IIRcost = cost(lpIIR)
橢圓IIR低通濾波器的計算成本評估結(jié)果如下圖所示:
(3)濾波器頻率響應(yīng)可視化
下面使用fvtool
對等波紋FIR低通濾波器濾波器與橢圓IIR低通濾波器進行可視化處理,代碼如下所示:
hvft = fvtool(lpFIR, lpIIR, 'Fs', Fs);
legend(hvft, '等波紋FIR低通濾波器', '橢圓IIR低通濾波器')
兩個濾波器的可視化結(jié)果如下圖所示:
-
matlab
+關(guān)注
關(guān)注
185文章
2974瀏覽量
230405 -
濾波器
+關(guān)注
關(guān)注
161文章
7799瀏覽量
178011 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4329瀏覽量
62576
發(fā)布評論請先 登錄
相關(guān)推薦
評論