基于FPGA的FIR數字濾波器設計方案(二)
模型搭建好之后,需要確定16階FIR數字濾波器的系數,在這使用Matlab中的FDATool濾波器設計工具來(lái)確定。確定好濾波器的指標:
?。?)設計一個(gè)16階的FIR 濾波器;
?。?)低通濾波器;
?。?)采樣頻率fs為16 384 Hz,截頻點(diǎn)頻率fs為533 Hz;
?。?)輸入序列位寬為16位。
在設計濾波器界面中,如圖4所示,進(jìn)行下列選擇:
?。?)濾波器類(lèi)型(Filter Type)為低通(Lowpass);
?。?)設計方法(Design Method)為FIR,采用窗口法(Window);
?。?)濾波器階數(Filter Order)定制為15(設置為15 階而不是16階,是由于設計的16階FIR濾波器的常系數項h(0)=0);
?。?)濾波器窗口類(lèi)型為Kaiser,Beta為0.5.
所有的選項確定好后,在FDATool濾波器設計界面中點(diǎn)擊“Design Filter”,Matlab就會(huì )計算濾波器系數并作相關(guān)分析。圖5所示為濾波器的幅頻響應。
由于所有的模塊都在同一個(gè)Simulink圖中,這時(shí)的Simulink設計圖顯得很復雜,不利于閱讀和排錯,因此把FIR數字濾波器模型做成一個(gè)子系統在設計圖中顯示出來(lái),如圖7所示,這就是Matlab中的層次化設計,在頂層設計圖中,濾波器作為名稱(chēng)是SubFIR_533_16js的一個(gè)模塊出現。同時(shí),圖7中還設置了其他模塊,包括仿真信號輸入模塊、Signal Tap Ⅱ信號實(shí)時(shí)監測模塊、Signal Compiler模塊、硬件開(kāi)發(fā)板模塊、TestBench模塊。
這樣整個(gè)濾波器的Simulink電路設計模型就完成了,然后要對該模型進(jìn)行系統級仿真,查看其仿真結果,在頻率為533 Hz的波形輸入上加入了頻率為3 600 Hz的擾動(dòng)波形,其Simulink仿真結果如圖8所示。
圖中,上面的波形是533 Hz的輸出,中間的波形是533 Hz加上3600 Hz高頻干擾后的輸出,下面的波形是經(jīng)過(guò)濾波后的輸出。
3.2 從模型文件到Verilog代碼的RTL級轉換和編譯適配
利用Signal Compiler模塊將電路模型文件即Simu-link 模塊文件(。mdl)轉換成RTL 級的Verilog 代碼表述和Tcl(工具命令語(yǔ)言)腳本。這種轉換
評論