matlab與FPGA數字濾波器設計、FPGA數字信號處理系列(1)——通過matlab的fdatool工具箱設計FIR數字濾波器

Matlab濾波器設計——fdatool工具箱使用教程

下一講:matlab與FPGA無線通信、FPGA數字信號處理系列(2)——Vivado調用IP核設計FIR濾波器

MATLAB 與 FPGA無線通信、圖像處理、數字信號處理系列 彙總

     以99階FIR低通濾波器爲例,學習使用matlabfdatool工具箱設計濾波器,並將濾波器係數導出到.coe文件,聯合Vivado進行FPGAFIR濾波器設計。

     本文濾波器參數爲:低通FIR濾波器窗函數設計,採用布萊克曼窗99階抽樣頻率32MHz通帶頻率1.5MHz使用窗函數時截止頻率不需要設定,根據選定的窗函數和階數決定截止頻率

1. 打開matlab

在這裏插入圖片描述

2.命令行輸入fdatool,回車,打開fdatool濾波器設計工具箱

     打開後的初始界面如下:
     1處選定濾波器類型(低通、高通、帶通、帶阻);
     2處選擇要設計IIR(無限衝激響應)濾波器還是FIR(有限衝擊響應)濾波器,並且選擇使用哪種方法設計對應的濾波器
     3處設計濾波器的階數,一般階數越多濾波效果越好,但是係數對應的也越多,在FPGA硬件實現的時候會佔用更多的資源,設計時要綜合考慮;
在這裏插入圖片描述

3.設計所需濾波器

     低通(Lowpass)FIR濾波器,窗函數設計(Window),採用布萊克曼窗(Blackman),99階(會有100個係數,這個是固定的,N階FIR需要N+1個係數),抽樣頻率32MHz通帶頻率1.5MHz,使用窗函數時截止頻率不需要設定,選定的窗函數和階數已經限定了截止頻率。

     按照上圖設定參數後,點擊Design Filter。
在這裏插入圖片描述
     設計完成後,黃色框內顯示幅頻響應曲線,可以看到,使用Fs=32MHz的抽樣頻率,顯示的頻率爲0~Fs/2即0-16MHz的幅頻響應,大概在2MHz左右幅度下降爲原來的-60dB以下,換算成幅度即1/1000以下(-60dB=20log(1/1000))。

4.參數量化

     使用16位的濾波器參數,定點數表示。
     點擊左側第三個框,進行參數量化,在FPGA中計算浮點數是很麻煩的事情,並且浮點數的操作在射頻輸出時會影響功放性能,此處設置爲定點數(一般都是設爲定點數處理,設成浮點數可以試一下,是無法導出爲Xilinx設計所需的.coe文件)。這裏進行量化時就會引入量化誤差,位數越少誤差越大,但是位數越多在FPGA硬件中所需的資源也越多,設計中也是需要綜合考慮,此處選擇16位定點數量化(Fixed-point)。

5.導出參數

(1)導出參數到matlab

     回到設計界面(不回去也不影響導出參數,此處爲了更方便觀看濾波器的參數),再點擊 Export,即可導出參數到 matlab,導出一個名爲 Num 的數組,名字可以自己修改,在命令行輸入 Num 再回車即可觀察係數。

(2)導出參數到Xilinx的存儲文件(.coe文件)

點擊 Targets -> XILINX Coeffient(.coe) File,

     導出的參數共有 100 個,可以發現這樣設計出來的時對稱結構的FIR濾波器,第一個參數和第 100 個參數一樣,第 2 個和第 99 個一樣,依次對應。
在這裏插入圖片描述
下一講:matlab與FPGA無線通信、FPGA數字信號處理系列(2)——Vivado調用IP核設計FIR濾波器

MATLAB 與 FPGA無線通信、圖像處理、數字信號處理系列 彙總

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章