欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
基于FPGA的FIR濾波器設計與仿真

摘要:FIR數字濾波器以其良好的線(xiàn)性相位特性被廣泛使用,屬于數字信號處理的基本模塊之一。FPGA具有的靈活的可編程邏輯可以方便地實(shí)現高速數字信號處理。為了提高實(shí)時(shí)數字信號處理的速度,利用FPGA芯片內部的ROM實(shí)現一種查找表結構的FIR數字濾波器。并用MATAB對實(shí)驗結果進(jìn)行仿真和分析,證明了設計的可行性。
關(guān)鍵詞:有限沖擊響應濾波器;硬件描述語(yǔ)言;查找表;現場(chǎng)可編程門(mén)陣列

0 引言
    數字濾波器是數字信號處理的重要組成部分,其作用是從接收信號中提取出需要的信息同時(shí)抑制干擾,由于FIR濾波器的沖擊響應是有限長(cháng)的,因而有可能做成具有嚴格線(xiàn)性相位的。通常用以下兩種方法來(lái)實(shí)現數字濾波器:一是把濾波器所要完成的運算編成程序并讓計算機執行,也就是采用計算機軟件實(shí)現;另一種是設計專(zhuān)用的數字硬件、專(zhuān)用的數字信號處理器或采用通用的數字信號處理器來(lái)實(shí)現。
    常用的實(shí)時(shí)數字信號處理的器件有可編程的數字信號處理(DSP)芯片、專(zhuān)用集成電路(ASIC)、現場(chǎng)可編程門(mén)陣列(FPGA)等。在工程實(shí)踐中,往往要求對信號處理要有高速性、實(shí)時(shí)性和靈活性,而已有的一些軟件和硬件實(shí)現方式則難以同時(shí)達到這幾方面的要求。隨著(zhù)電子信息技術(shù)的快速發(fā)展,很多信號處理器件開(kāi)始用FPGA來(lái)取代傳統的實(shí)現方法。與傳統的實(shí)現方法相比,FPGA的顯著(zhù)優(yōu)點(diǎn)是它的并行處理特性,可以顯著(zhù)提高濾波器的數據吞吐率。
    隨著(zhù)可編程邏輯器件和EDA技術(shù)的發(fā)展,使用FPGA來(lái)實(shí)現數字信號處理,既具有實(shí)時(shí)性,又兼顧了一定的靈活性。FPGA具有的靈活的可編程邏輯可以方便地實(shí)現高速數字信號處理,突破了并行處理、流水級數的限制,有效地利用了片上資源,加上反復的可編程能力,越來(lái)越受到國內外從事數字信號處理的研究者的青睞。

1 FIR濾波器的結構特點(diǎn)
    數字濾波器通常分為有限沖擊響應(FIR)和無(wú)限沖擊響應(IIR)兩大類(lèi)。FIR濾波器由以下幾個(gè)特點(diǎn):
    (1)系統的單位沖擊響應h(n)在有限個(gè)n值處不為零;
    (2)系統函數H(Z)在|Z|>0處收斂,在|Z|>0處只有零點(diǎn),有限z平面只有零點(diǎn),而全部極點(diǎn)都在z=0處(因果系統);
    (3)結構上主要是非遞歸結構,沒(méi)有輸出到輸入的反饋,但有些結構(例如抽樣頻率結構)也包含有反饋的部分;
    設FIR濾波器的單位沖擊響應h(n)為一個(gè)N點(diǎn)序列,0≤n≤N-1,則濾波器的系統函數為:
   


    就是說(shuō)它有N-1階極點(diǎn)在z=0處,有個(gè)N-1零點(diǎn)位于有限z平面的任何位置。
    FIR濾波器有以下幾種基本結構:橫截型(卷積型、直接型);級聯(lián)型;頻率抽樣型。這里,我們主要討論直接型FIR濾波器的實(shí)現。
    式(1)的系統的差分方程表達式為:
    

    很明顯,這就是線(xiàn)性移不變系統的卷積和公式,也是x(n)的延時(shí)鏈的橫向結構。

2 FPGA概述及特點(diǎn)
    FPGA即現場(chǎng)可編程門(mén)陣列,是20世紀90年代發(fā)展起來(lái)的。大部分FPGA采用基于SRAM的查找表(look up table,LUT)結構,也有一些軍品和宇航級FPGA采用FLASH或者反熔絲工藝的查找表結構以提高可靠性。它是在PAL、GAL、EPLD等可編程器件的基礎上進(jìn)一步發(fā)展的產(chǎn)物,具有更高的集成度,更強的邏輯實(shí)現能力和更好的設計靈活性。FPGA由許多獨立的可編程邏輯模塊組成,用戶(hù)可以通過(guò)編程將這些模塊連接起來(lái)實(shí)現不同的設計。FPGA器件的產(chǎn)生將半定制的門(mén)陣列電路的優(yōu)點(diǎn)和可編程邏輯器件的用戶(hù)可編程特性結合在一起。既解決了定制電路的不足,又克服了原有可編程邏輯器件門(mén)電路數量有限的缺點(diǎn)。
    FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個(gè)新概念,內部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸入輸出模塊IOB(InputOutput Block)和內部連線(xiàn)(Interconnect)三個(gè)部分。FPGA的基本特點(diǎn)如下。
    (1)采用FPGA設計ASIC電路,用戶(hù)不需要投片生產(chǎn),就能得到可用的芯片;
    (2)FPGA內部有豐富的觸發(fā)器和I/O引腳資源;
    (3)FPGA可做其他全定制或半定制ASIC電路的中試樣片;
    (4)FPGA是ASIC電路中設計周期最短,開(kāi)發(fā)費用最低,風(fēng)險最小的器件之一。
    (5)FPGA采用高速CHMOS工藝,功耗低,可以與CMOS、TTL電平兼容。
    可以說(shuō),FPGA芯片是小批量系統提高集成度、可靠性的最佳選擇之一。隨著(zhù)集成度密度的不斷提高,FPGA器件幾乎可以實(shí)現所有的數字電路功能。目前,器件集成度已經(jīng)達到了數百萬(wàn)門(mén)數量級,工作頻率可達300MHz以上。一般可在幾個(gè)小時(shí)或幾天內完成一個(gè)設計,并可隨時(shí)修改。這加速了產(chǎn)品設計開(kāi)發(fā)的進(jìn)程,免去了昂貴的ASIC(專(zhuān)用集成電路(器件半導體生產(chǎn)工藝費用及投資風(fēng)險,因此,FPGA技術(shù)已經(jīng)成為電子工程師不可缺少的好幫手。

3 查找表結構的FIR算法
    LUT本質(zhì)上是一個(gè)RAM。目前FPGA中多使用4輸入的LUT,所以每一個(gè)LUT可以看成一個(gè)具有4位地址線(xiàn)的16×1的RAM。當用戶(hù)通過(guò)原理圖或HDL語(yǔ)言描述了一個(gè)邏輯電路后,FPGA開(kāi)發(fā)軟件會(huì )自動(dòng)計算邏輯電路的所有結果,并把結果寫(xiě)到RAM中,當輸入一個(gè)信號進(jìn)行運算就等于輸入一個(gè)地址,找出對應的內容,然后輸出。
    由式(2)可見(jiàn)FIR濾波器系統函數是一種卷積的運算形式。如果用FPGA直接實(shí)現則計算速度很慢且占用大量的LE(邏輯單元),達不到系統對實(shí)時(shí)性的要求,于是想到能否將上述卷積運算轉化成加減運算。
    分布式算法(distributed arithmetic,DA)早在1973年就已經(jīng)被Croisier提出來(lái)了,但是直到FPGA出現以后,才被廣泛應用在FPGA中計算乘積和。
    設FIR濾波器的階數為N,輸入數據x(n)的位寬為k,則x(n)可表示為:
   

    也就是說(shuō):我們可以把每個(gè)輸入數據的每一位的值分別與相應的FIR系數相乘(因為x(n)為數字信號,每個(gè)輸入數據的每一位的值都為0或1,所以與h(n)相乘的結果非0即為h(n))然后再相加,然后再把所有位的相加值錯位相加,可得到卷積的結果從而實(shí)現了將卷積運算轉換成加法運算。
    這樣我們就可以針對N階FIR濾波器的系數預先建立一個(gè)2的N次方的一個(gè)存儲表,將系數和存放在對應的存儲單元中。進(jìn)行卷積運算時(shí)把輸入數據的每一位組合成地址碼,通過(guò)地址查找到相應的系數和,然后把所有位數的系數和移位相加即可完成卷積運算。通過(guò)查表的方式可以大大減少求和的次數,提高運算速度。

4 設計思路及步驟
4.1 FPGA系統設計的方法
    用FPGA實(shí)現數字系統設計一般可分成以下幾個(gè)步驟:設計輸入、功能仿真、編譯綜合生成網(wǎng)表文件、設計實(shí)現、時(shí)序仿真、下載到芯片進(jìn)行硬件驗證。在每一步檢查到的錯誤或缺陷都可以返回到上一層進(jìn)行修改。
    隨著(zhù)數字系統規模的不斷增大,其復雜度也隨之增大。層次化設計將系統逐層分為較小的、規??煽刂频哪K,是控制數字系統設計復雜度的一種有效方法。
    層次化設計中有兩個(gè)重要的核心思想,即模塊化和原件重用。模塊化是指將系統劃分為幾個(gè)子模塊,而這些子模塊又分別劃分為更小的模塊,直至不可再分。每個(gè)模塊都可以看成是上一層模塊的一個(gè)元件。原件重用是指同一個(gè)原件可以被不同的實(shí)體調用,或者被同一個(gè)實(shí)體多次調用。這樣不但大大減輕了設計者的工作量,而且使程序結構更加優(yōu)化,具有更好的可讀性。
4. 2 設計實(shí)例的參數選取及生成
    MATLAB的信號處理工具箱中包括許多可用于設計FIR數字濾波器的M文件。根據要設計的濾波器的參數、通帶截止頻率、阻帶截止頻率、采樣頻率、通帶或阻帶波紋要求等參數,可以利用MATLAB中的數字信號處理工具箱生成濾波器的系數。
    在設計中,采用16階FIR,輸入數據寬12位,濾波器系數以及由這些系數演算出的ROM的初始化數據文件*.mif文件可以通過(guò)MATLAB計算生成。
    因為是16階的FIR,這樣就需要65536個(gè)ROM單元來(lái)實(shí)現,ROM單元的位寬采用16位。利用器件中的ROM建立這樣的查找表,首先要將ROM的初始化數據寫(xiě)到*.mif文件中,然后在Ouartsus II中將其指向對應的ROM設計模塊。
    當FIR的階數增大時(shí),ROM的存儲量是以2的倍數增長(cháng)的,因此采用一個(gè)ROM快分時(shí)查找表的方法來(lái)降低對ROM存儲容量的要求。
4.3 模塊化設計
    用原理圖和VHDL相結合的輸入方式,分模塊進(jìn)行設計,項層模塊采用圖形化輸入,在Quartsus II中進(jìn)行設計輸入。
    系統由控制模塊、輸入數據移位模塊、地址發(fā)生模塊、存儲器模塊、運算模塊等組成。下面介紹每一模塊的基本功能。
    (1)控制模塊的作用是產(chǎn)生一系列的控制信號,對上述各種模塊進(jìn)行精確的控制??刂颇K在收到A/D轉換結束信號后,依次產(chǎn)生移位寄存器使能信號、并行到串行轉換的裝入信號、移位相加的裝入信號、加減控制信號和濾波器結果輸出信號等控制信號。使上述各個(gè)模塊按照一定的時(shí)序進(jìn)行操作,最終完成濾波功能。該模塊采用VHDL的描述方式比較方便。
    (2)輸入數據移位模塊的主要功能是使A/D轉換后的數據通過(guò)不同的觸發(fā)器,從而產(chǎn)生不同的延遲,以便取出輸入數據不同位置上的數值,來(lái)構成ROM的地址。
    (3)地址發(fā)生器模塊的主要功能是將通過(guò)輸入數據移位模塊的不同延遲分別轉換為查找表的串行地址,提供給存儲器模塊。根據結構化的程序設計思想,本模塊可由12個(gè)單通道并、串轉換模塊組成。
    (4)存儲器模塊是這種查找表結構FIR的核心。FPGA中ROM模塊的設計可以通過(guò)Quartsus II軟件中的Mega Wizard向導來(lái)生成。
    (5)運算模塊主要功能是將ROM的輸出數據在此進(jìn)行移位相加。這里實(shí)現的主要是加法和減法運算,運算速度很快。
    最后的項層模塊采用圖形化輸入,這樣可以使設計思路更加清晰,也符合自上而下的FPGA主流設計方法。

5 仿真驗證
    為了驗證設計的正確性,必須對設計進(jìn)行全面充分的功能仿真和時(shí)序仿真,功能仿真一般用Mentor公司的Modelsim來(lái)進(jìn)行,時(shí)序仿真使用QuartusII軟件。Altera公司提供的QuartusII軟件除了具有強大的編譯綜合功能之外,還提供了一定的波形(時(shí)序)仿真功能。因其輸入和輸出都是以波形的形式給出的,雖然看起來(lái)如同邏輯分析儀的輸出形式,比較直觀(guān),但是難以對隨機信號進(jìn)行輸入;隨機信號的輸出也難以分析,這就給我們的驗證工作帶來(lái)了很大的障礙。下面我們利用MATLAB與QuartusII實(shí)現聯(lián)合仿真。
5.1 產(chǎn)生向量仿真文件
    在MATLB中生成OuartusII仿真所需的輸入文件*.vec。QuartusII仿真文件有兩種格式,即*.vwf格式和*.vec格式。前者是在Quart-usII中通過(guò)波形編輯器生成的。當方針輸入數據復雜時(shí),用波形輸入的方法難以勝任,特別是在數字信號處理領(lǐng)域,大多數仿真輸入數據要疊加噪聲,采用波形輸入方式是不現實(shí)的。后者是按一定格式要求的文本文件輸入方式,可以利用任何文本編輯器產(chǎn)生,只要符合對仿真文件的格式要求即可。
    這里的仿真輸入數據是在兩個(gè)不同頻率上的正弦波,頻率分別為23Hz、58Hz。把這兩個(gè)信號疊加在一起作為輸入信號,用MATLAB軟件生成仿真所需的vec文件。FIR濾波器的截止頻率為40Hz。
    在對仿真參數進(jìn)行設置時(shí),將仿真向量文件指向由MATLAB生成的文件,即可將MATLAB中生成的仿真信號導入之中進(jìn)行仿真了。
5.2 驗證輸出結果
    用QuartusII軟件中的選項將仿真向量文件指向由MTLAB生成的*.vec文件,進(jìn)行仿真。
    將仿真結束后生成的波形文件,另存為*.tbl格式文件,以數據文件輸入的方式將此*.tbl文件中的仿真輸出信號的數值導入至MATLAB中,并進(jìn)行頻譜分析驗證FIR數字濾波器設計的正確與否,并分析其性能優(yōu)劣。


    圖1是輸入信號的時(shí)域和頻域圖形,以及經(jīng)過(guò)理想的低通濾波后得到的結果。低通濾波用MATLAB實(shí)現??梢钥闯鼋?jīng)過(guò)濾波后,23Hz的頻率成分被保留下來(lái),而58Hz的頻率成分被濾掉。圖2是同一輸入信號的時(shí)域和頻域圖形,以及經(jīng)過(guò)FPGA實(shí)現的FIR數字濾波器低通濾波后的結果。

6 結束語(yǔ)
    從這兩幅圖中,我們可以看到用FPGA實(shí)現的FIR濾波器,得到了和理論上濾波相似的結果,證明了設計的可行性及正確性。如果需要不同的濾波器,我們只要改變輸入到ROM中的初始化文件數據即可。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
matlab工具生成可編程FIR濾波器的HDL代碼
學(xué)會(huì )System Generator(2)
System Generator從入門(mén)到放棄(二)-Digital Filter
基于 DSP Builder的FIR濾波器的設計與實(shí)
[博客大賽]零基礎學(xué)FPGA(三十) IIR數字濾波器的FPGA實(shí)現筆記
數字下變頻的FPGA實(shí)現
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久