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