0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

FIR數(shù)字濾波器的設(shè)計(jì)及驗(yàn)證方案

454398 ? 來源:MYMINIEYE ? 作者:MYMINIEYE ? 2020-11-08 16:31 ? 次閱讀

一 .濾波器介紹

濾波器是一種用來減少,消除干擾的電器部件,有對特定頻率的頻點(diǎn)或該頻點(diǎn)以外的頻率信號進(jìn)行有效濾除,從而實(shí)現(xiàn)消除干擾、獲取特定頻率信號的功能。數(shù)字濾波器相比模擬濾波器,有著更高的精度、信噪比、無可比擬的可靠性。

FIR,IIR是數(shù)字濾波器中最常見的兩種濾波器。FIR濾波器是有限沖擊響應(yīng),最主要特點(diǎn)是沒有反饋回路,故不存在不穩(wěn)定的問題,很容易做到嚴(yán)格的線性相位特性,另外設(shè)計(jì)方式是線性的,硬件容易實(shí)現(xiàn),對于抽取和插入,結(jié)構(gòu)簡單,很容易得到高速流水線的設(shè)計(jì),有定義明確的量化噪聲,并且有較低的系數(shù)和算法四舍五入誤差預(yù)算,但是其高濾波器長度的實(shí)現(xiàn)需要大量的工作量及資源;IIR濾波器是無限沖擊響應(yīng),最主要的特點(diǎn)是可以用較低的階數(shù),獲得高的選擇性,所用的存儲單元少,計(jì)算量小,效率高。但是這樣的效率是以非線性相位為代價的,選擇性越好,相位非線性越嚴(yán)重。本文以FIR為例介紹數(shù)字濾波器的設(shè)計(jì)及驗(yàn)證。

二.FIR濾波器設(shè)計(jì)
采用matlab的Filter Design 來完成對FIR濾波器的設(shè)計(jì),打開matlab,在命令行輸入filterDesigner,進(jìn)入到設(shè)計(jì)頁面,如下

對濾波器的設(shè)計(jì)主要涉及三個點(diǎn):通帶,阻帶,過渡帶。

主要的參數(shù)有以下5個:

Fpass:通帶上限截至頻率,Apass:帶內(nèi)平坦度;

Fstop:阻帶下限截至頻率,Astop:帶外抑制幅度;

Fs:數(shù)據(jù)率

輸入數(shù)據(jù)的速率為9.14MHz,通帶上限截止頻率為2M,由于考慮到鏡像干擾,阻帶截至頻率設(shè)為2.2M,階數(shù)選擇128階,濾波器階數(shù)可以根據(jù)需要設(shè)置,也可以設(shè)置帶內(nèi)平坦度和帶外抑制幅度,來選擇所需最小階數(shù),達(dá)到自己需要的精度即可。設(shè)置完成之后,如下:

濾波器設(shè)計(jì)完成之后需要對濾波器的系數(shù)進(jìn)行定點(diǎn)量化,選擇按鈕3,定義16位的數(shù)據(jù)位寬,其中15位為小數(shù)。如下:

點(diǎn)擊Filter Design菜單欄的Targets選項(xiàng)下拉菜單的Generate C Header和XILINX Coefficient(.COE) File,分別導(dǎo)出的是C的頭文件和.coe文件(濾波器系數(shù)文件),C的頭文件如下

Coe文件為:

這里選擇產(chǎn)生Generate C Header,產(chǎn)生濾波器系數(shù),此處沒有選擇coe文件,是因?yàn)楫?dāng)vivado IP核使用coe方式導(dǎo)入時,vivado不能區(qū)分小數(shù)位。

三.vivado FIR IP核介紹
1.設(shè)置濾波器的屬性:打開vivado IP核,直接填入濾波器的系數(shù),此處系數(shù)需要量化為小數(shù),左邊為濾波器的增益,和matlab一致,如下:

濾波器的類型包括單速率(Single Rate,即數(shù)據(jù)輸出與輸入速率相同),抽?。―ecimation)和插值(Interpolation)應(yīng)用于多速率信號處理系統(tǒng),此外還支持希爾伯特變換(Hilbert)模式。抽取型一般多用于數(shù)字前端下變頻抽取樣值降低AD采樣速率,插值型用于常用于提高采樣速率。由于需要對AD數(shù)據(jù)進(jìn)行抽取濾波,這里選擇抽取類型,抽取的倍數(shù)為2倍。

2.設(shè)置FIR濾波器的通道,由于只使用一個通道,因此交織通道序列(Channel Sequence)選擇Basic,通道數(shù)(Number of Channels)為1;Hardware Oversampling Specification中設(shè)置過采樣模式,選擇Input Sample Period,即輸入采樣周期,也可以通過輸入采樣頻率和時鐘頻率來設(shè)置,設(shè)置如下:

3.濾波器量化設(shè)置

填入濾波器系數(shù)之后,選擇量化的位數(shù),輸入的數(shù)據(jù)位寬為16,小數(shù)位數(shù)為15,如果全精度輸出,輸出位寬為33,對后續(xù)的處理很不方便,輸出也需要進(jìn)行相應(yīng)的截尾,因此設(shè)置為:

4.FIR濾波器在FPGA上實(shí)現(xiàn)資源選取的情況,一般采用系統(tǒng)默認(rèn)即可。

5.對外輸入和對外輸入接口情況,這里只添加復(fù)位信號,可以根據(jù)自己的實(shí)際需求,添加信號。

6.Summary是對FIR濾波器設(shè)計(jì)的總結(jié),所使用的類型功能,濾波器階數(shù)等,最后點(diǎn)擊生成FIR IP核。

四.FIR 濾波器實(shí)現(xiàn)
1.C模型使用
Vivado提供了FIR IP核的C仿真模型,但是不能直接再matlab上運(yùn)行,需要搭建仿真環(huán)境,根據(jù)自己使用的matlab選擇不同的版本,具體搭建參考https://www.cnblogs.com/qiantuo1234/p/7284384.html 。搭建完成之后在matlab命令窗口輸入mex-setup,出現(xiàn)以下提示表示安裝成功

然后找到IP核C模型,在vivado工程FIR IP核的目錄下的cmodel的文件夾,F(xiàn)IR_demo.srcs/sources_1/ip/fir_compiler_0/cmodel,其中有兩個文件,lin64是linux版本的,nt64是windows版本的,選擇nt64解壓。

matlab打開解壓的文件夾,輸入run make_fir_compiler_v7_2_mex,出現(xiàn)以下表示運(yùn)行成功。

最后要調(diào)用的文件是run_fir_compiler_v7_2_mex.m,這個文件可以作為參考使用,部分內(nèi)容為:

作如下修改:

其中FIR參數(shù)設(shè)置要和vivado中的IP核配置完全相同,否則會出現(xiàn)比對數(shù)據(jù)不一致的情況,具體參數(shù)配置見下表

各類型對應(yīng)的數(shù)值選擇

2.Modelsim 仿真
仿真時需要注意,采用的抽取類型,數(shù)據(jù)速率和時鐘速率不一樣,每隔8個時鐘周期采一個數(shù)據(jù),然后輸入到FIR IP核,輸出是每隔16個時鐘周期輸出一個數(shù)據(jù),輸出延遲可在FIR IP核Summary界面得知,模塊時序如下:

3.數(shù)據(jù)對比
濾波器的截至頻率為2MHz,用matlab產(chǎn)生一個1MHz和3MHz的混合信號,分別輸入C仿真模型和modelsim進(jìn)行仿真,得到的結(jié)果進(jìn)行對比如下:

可以清楚的看到輸出的結(jié)果是一致的,通過比較matlab和modelsim輸出的數(shù)據(jù),發(fā)現(xiàn)也是一致的,相減之后為零,驗(yàn)證了濾波器的正確性。

編輯:hfy
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1625

    文章

    21620

    瀏覽量

    601234
  • 濾波器
    +關(guān)注

    關(guān)注

    160

    文章

    7703

    瀏覽量

    177476
  • fir濾波器
    +關(guān)注

    關(guān)注

    1

    文章

    94

    瀏覽量

    19009
收藏 人收藏

    評論

    相關(guān)推薦

    基于FPGA實(shí)現(xiàn)FIR數(shù)字濾波器

    數(shù)字信號處理系統(tǒng)中,有限脈沖響應(yīng)(finite impulse response,FIR)數(shù)字濾波器是一個非常重要的基本單元。近年來,由于FPGA具有高速度、高集成度和高可靠性的特點(diǎn)而得到快速發(fā)展
    的頭像 發(fā)表于 11-05 16:26 ?135次閱讀
    基于FPGA實(shí)現(xiàn)<b class='flag-5'>FIR</b><b class='flag-5'>數(shù)字濾波器</b>

    Δ-Σ ADC中的數(shù)字濾波器類型

    電子發(fā)燒友網(wǎng)站提供《Δ-Σ ADC中的數(shù)字濾波器類型.pdf》資料免費(fèi)下載
    發(fā)表于 09-06 09:50 ?0次下載
    Δ-Σ ADC中的<b class='flag-5'>數(shù)字濾波器</b>類型

    數(shù)字濾波器的實(shí)現(xiàn)方法

    數(shù)字濾波器是一種通過對數(shù)字信號進(jìn)行處理來完成對數(shù)字信號或模擬信號進(jìn)行濾波的儀器。其實(shí)現(xiàn)方式多樣,可以從硬件和軟件兩個角度進(jìn)行探討,同時涉及多種數(shù)學(xué)方法和設(shè)計(jì)步驟。
    的頭像 發(fā)表于 08-20 16:06 ?454次閱讀

    AMC1210四通道數(shù)字濾波器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《AMC1210四通道數(shù)字濾波器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-19 09:15 ?0次下載
    AMC1210四通道<b class='flag-5'>數(shù)字濾波器</b>數(shù)據(jù)表

    數(shù)字濾波器的原理和應(yīng)用

    數(shù)字濾波器是一種由數(shù)字乘法器、加法器和延時單元組成的算法或裝置,其輸入和輸出均為數(shù)字信號。它的主要功能是通過一定的運(yùn)算關(guān)系改變輸入信號所含頻率成分的相對比例或者濾除某些頻率成分,以達(dá)到期望的響應(yīng)特性。
    的頭像 發(fā)表于 08-05 16:19 ?747次閱讀
    <b class='flag-5'>數(shù)字濾波器</b>的原理和應(yīng)用

    如何區(qū)分IIR濾波器FIR濾波器

    對信號進(jìn)行處理的系統(tǒng),它可以按照預(yù)定的規(guī)則改變信號的頻譜特性。在數(shù)字信號處理中,濾波器通常用于去除噪聲、抑制干擾或提取特定頻率成分。IIR和FIR濾波器是兩種基本的
    的頭像 發(fā)表于 07-19 09:44 ?2569次閱讀

    iir濾波器fir濾波器的優(yōu)勢和特點(diǎn)

    (Infinite Impulse Response)濾波器是一種具有無限脈沖響應(yīng)的數(shù)字濾波器。它的輸出不僅取決于當(dāng)前的輸入值,還取決于之前的輸入值。IIR濾波器通常由遞歸濾波器實(shí)現(xiàn),
    的頭像 發(fā)表于 07-19 09:28 ?909次閱讀

    數(shù)字濾波器是如何工作的

    之前我們在說明數(shù)字濾波器的時候,多為Python來進(jìn)行示例驗(yàn)證的。實(shí)際應(yīng)用中,多為C/C++,無論是在嵌入式系統(tǒng)中,還是PC機(jī)上,尤其對于時間或者實(shí)時性要求比較嚴(yán)格的情況下,C/C++應(yīng)該是我們的首選。
    的頭像 發(fā)表于 06-13 10:09 ?471次閱讀
    <b class='flag-5'>數(shù)字濾波器</b>是如何工作的

    數(shù)字濾波器的頻率響應(yīng)與模擬濾波器的頻率響應(yīng)有何區(qū)別

    數(shù)字濾波器的頻率響應(yīng)與模擬濾波器的頻率響應(yīng)有何區(qū)別? 數(shù)字濾波器和模擬濾波器是用于信號處理和濾波的兩種主要類型的
    的頭像 發(fā)表于 02-05 09:10 ?1290次閱讀

    數(shù)字濾波器在中頻處理中的分類及區(qū)別

    數(shù)字濾波器在中頻處理中的分類主要依據(jù)其用途和性能要求。
    的頭像 發(fā)表于 01-29 17:03 ?821次閱讀

    ∑-?型ADC數(shù)字濾波器對PID的影響是什么?

    一般的∑-?型ADC 都內(nèi)置有數(shù)字濾波器,這些數(shù)字濾波器對信號會產(chǎn)生相移吧,這個相移有多大,對做數(shù)字PID有影響嗎?
    發(fā)表于 12-07 06:22

    請問AD7607內(nèi)部數(shù)字濾波器的過采樣率怎么理解?

    AD7607數(shù)據(jù)手冊Page26上說,AD的過采樣率通過OS[2:0]來配置,過采樣率越大,AD7607內(nèi)部數(shù)字濾波器的截止頻率越小。我搞不明白,過采樣率為什么會影響數(shù)字濾波器的截止頻率?AD7607過采樣功能具體是什么功能,多采幾個點(diǎn)求平均值,還是別的什么意思?
    發(fā)表于 12-06 07:33

    FIR數(shù)字濾波器的理論和設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《FIR數(shù)字濾波器的理論和設(shè)計(jì).rar》資料免費(fèi)下載
    發(fā)表于 11-18 14:56 ?2次下載
    <b class='flag-5'>FIR</b><b class='flag-5'>數(shù)字濾波器</b>的理論和設(shè)計(jì)

    數(shù)字濾波器基本結(jié)構(gòu)介紹

    電子發(fā)燒友網(wǎng)站提供《數(shù)字濾波器基本結(jié)構(gòu)介紹.rar》資料免費(fèi)下載
    發(fā)表于 11-18 11:05 ?0次下載
    <b class='flag-5'>數(shù)字濾波器</b>基本結(jié)構(gòu)介紹

    IIR數(shù)字濾波器時域濾波效果

    電子發(fā)燒友網(wǎng)站提供《IIR數(shù)字濾波器時域濾波效果.pdf》資料免費(fèi)下載
    發(fā)表于 11-18 09:58 ?1次下載
    IIR<b class='flag-5'>數(shù)字濾波器</b>時域<b class='flag-5'>濾波</b>效果