怎么将matlab滤波器系数导出_matlab与FPGA数字信号处理系列(1)——通过matlab工具箱设计FIR数字滤波器...
以99階FIR低通濾波器為例,學(xué)習(xí)使用matlab的fdatool工具箱設(shè)計(jì)濾波器,并將濾波器系數(shù)導(dǎo)出到.coe文件,聯(lián)合Vivado進(jìn)行FPGA的FIR濾波器設(shè)計(jì)。
本文濾波器參數(shù)為:低通FIR濾波器,窗函數(shù)設(shè)計(jì),采用布萊克曼窗,99階,抽樣頻率32MHz,通帶頻率1.5MHz,使用窗函數(shù)時(shí)截止頻率不需要設(shè)定,根據(jù)選定的窗函數(shù)和階數(shù)決定截止頻率。
1. 打開matlab
2.命令行輸入fdatool,回車,打開fdatool濾波器設(shè)計(jì)工具箱
打開后的初始界面如下:
1處選定濾波器類型(低通、高通、帶通、帶阻);
2處選擇要設(shè)計(jì)IIR(無限沖激響應(yīng))濾波器還是FIR(有限沖擊響應(yīng))濾波器,并且選擇使用哪種方法設(shè)計(jì)對(duì)應(yīng)的濾波器;
3處設(shè)計(jì)濾波器的階數(shù),一般階數(shù)越多濾波效果越好,但是系數(shù)對(duì)應(yīng)的也越多,在FPGA硬件實(shí)現(xiàn)的時(shí)候會(huì)占用更多的資源,設(shè)計(jì)時(shí)要綜合考慮;
3.設(shè)計(jì)所需濾波器
低通(Lowpass),FIR濾波器,窗函數(shù)設(shè)計(jì)(Window),采用布萊克曼窗(Blackman),99階(會(huì)有100個(gè)系數(shù),這個(gè)是固定的,N階FIR需要N+1個(gè)系數(shù)),抽樣頻率32MHz,通帶頻率1.5MHz,使用窗函數(shù)時(shí)截止頻率不需要設(shè)定,選定的窗函數(shù)和階數(shù)已經(jīng)限定了截止頻率。
按照上圖設(shè)定參數(shù)后,點(diǎn)擊Design Filter。
設(shè)計(jì)完成后,黃色框內(nèi)顯示幅頻響應(yīng)曲線,可以看到,使用Fs=32MHz的抽樣頻率,顯示的頻率為0~Fs/2即0-16MHz的幅頻響應(yīng),大概在2MHz左右幅度下降為原來的-60dB以下,換算成幅度即1/1000以下(-60dB=20log(1/1000))。
4.參數(shù)量化
使用16位的濾波器參數(shù),定點(diǎn)數(shù)表示。
點(diǎn)擊左側(cè)第三個(gè)框,進(jìn)行參數(shù)量化,在FPGA中計(jì)算浮點(diǎn)數(shù)是很麻煩的事情,并且浮點(diǎn)數(shù)的操作在射頻輸出時(shí)會(huì)影響功放性能,此處設(shè)置為定點(diǎn)數(shù)(一般都是設(shè)為定點(diǎn)數(shù)處理,設(shè)成浮點(diǎn)數(shù)可以試一下,是無法導(dǎo)出為Xilinx設(shè)計(jì)所需的.coe文件)。這里進(jìn)行量化時(shí)就會(huì)引入量化誤差,位數(shù)越少誤差越大,但是位數(shù)越多在FPGA硬件中所需的資源也越多,設(shè)計(jì)中也是需要綜合考慮,此處選擇16位定點(diǎn)數(shù)量化(Fixed-point)。
5.導(dǎo)出參數(shù)
(1)導(dǎo)出參數(shù)到matlab
回到設(shè)計(jì)界面(不回去也不影響導(dǎo)出參數(shù),此處為了更方便觀看濾波器的參數(shù)),再點(diǎn)擊 Export,即可導(dǎo)出參數(shù)到 matlab,導(dǎo)出一個(gè)名為 Num 的數(shù)組,名字可以自己修改,在命令行輸入 Num 再回車即可觀察系數(shù)。
(2)導(dǎo)出參數(shù)到Xilinx的存儲(chǔ)文件(.coe文件)
點(diǎn)擊 Targets -> XILINX Coeffient(.coe) File,
導(dǎo)出的參數(shù)共有 100 個(gè),可以發(fā)現(xiàn)這樣設(shè)計(jì)出來的時(shí)對(duì)稱結(jié)構(gòu)的FIR濾波器,第一個(gè)參數(shù)和第 100 個(gè)參數(shù)一樣,第 2 個(gè)和第 99 個(gè)一樣,依次對(duì)應(yīng)。
作者:FPGA探索者
總結(jié)
以上是生活随笔為你收集整理的怎么将matlab滤波器系数导出_matlab与FPGA数字信号处理系列(1)——通过matlab工具箱设计FIR数字滤波器...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cmake用法及常用命令总结(全)
- 下一篇: matlab广泛用于什么,目前,Matl