<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于FPGA分布式算法的低通FIR濾波器的設計與實(shí)現

基于FPGA分布式算法的低通FIR濾波器的設計與實(shí)現

作者: 時(shí)間:2015-01-06 來(lái)源:網(wǎng)絡(luò ) 收藏

  在中可以預先設定一個(gè)N位輸入的查找表來(lái)實(shí)現部分乘積項,即預先設定N階濾波系統查找表,實(shí)現向量x(i)={x0(i),x1(i),x2(i),…,xN-1(i))到p(i)的一個(gè)映射。由于查找表的地址空間與階數成指數關(guān)系(2N),完全用查找表來(lái)實(shí)現部分乘積項需要容量很大的存儲器,這就需要占用巨大的資源,而且功耗增加、速度降低。因此為了減小設計規模,可以將一個(gè)大的查找表分為幾個(gè)較小的查找表來(lái)實(shí)現。例如,本系統采用的8階FIR,則用一個(gè)查找表來(lái)實(shí)現需要256(28)位地址空間的ROM,將8階FIR分成兩個(gè)4階FIR實(shí)現,只需要2個(gè)16(24)位地址空間的ROM,這樣大大地降低了設計規模和資源使用量。把輸入x(i)作為地址,分為高四位和低四位地址進(jìn)行查找。表1給出了8階濾波系統的低四位地址x(i)與p(i)的映射關(guān)系。

本文引用地址:http://dyxdggzs.com/article/267747.htm

  

 

  本系統中濾波器系統函數采用Matlab中的fdatool工具,并根據設計要求采用了kaiser窗設計出濾波器的系統函數h(n),其采樣頻率為500 kHz,通頻帶帶寬為100 Hz。設計的低通濾波器如圖1所示。若需實(shí)現高通或帶通濾波器,只需在設計時(shí)利用高通或帶通濾波器代替低通濾波器即可。

  

 

  利用Verilog硬件描述語(yǔ)言設計本系統軟件,系統主要分為以下4個(gè)部分。包括頂層文件、A/D采樣、算法實(shí)現和D/A轉換。系統總體結構如圖2所示。

  

 

  由于頻率為100 MHz,采用的DAC0809轉換頻率必須小于1 MHz,所以在頂層文件對系統時(shí)鐘進(jìn)行200分頻,提供外圍所需時(shí)鐘。然后對各模塊進(jìn)行例化,使之成為完整的系統。

  對A/D采樣輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復位。下降沿時(shí)啟動(dòng)A/D轉換,之后EOC輸出信號變低,指示轉換正在進(jìn)行。直到完成A/D轉換,EOC變?yōu)楦唠娖?,指示A/D轉換結束,結果數據已存入鎖存器,這個(gè)信號可用作中斷申請。當OE輸入高電平時(shí),輸出三態(tài)門(mén)打開(kāi),轉換結果的數字量輸出到數據總線(xiàn)上。CLK為時(shí)鐘輸入信號線(xiàn)。由頂層文件的分頻時(shí)鐘提供500 kHz時(shí)鐘,對信號進(jìn)行采集。

  算法主體的實(shí)現主要由以下幾個(gè)部分組成:數據接收存儲、數據選擇器、2個(gè)存儲器、加法和控制部分。

  數據接收是在每個(gè)時(shí)鐘下降沿時(shí)檢測轉換完成信號,如果完成,則存入對應的存儲器中,對于N階的系統,就需要存儲N個(gè)數據等待處理。然后利用數據選擇器依次選擇各個(gè)數據,對數據的每一位進(jìn)行檢測和提取,組成算法中所需要的數據。在控制信號的作用下利用累加器對數據疊加、移位處理即可實(shí)現。

  最后,向DAC0832的數據輸入口(D10~D17)輸送數據。提供DAC0832數據鎖存允許控制信號ILE,高電平有效。提供DAC0832控制信號(CS:片選信號;Xfer:數據傳輸控制信號;WRl、WR2:DAC寄存器寫(xiě)選通信號),低電平有效。

  3 仿真實(shí)驗、工況信號測試實(shí)驗

  基于分布式算法低通FIR濾波器選用xilinx公司的virrex-Ⅱpro器件,在isel0.1下進(jìn)行設計。利用modelsim 6.5對濾波器進(jìn)行仿真。系統采用頻率為500 kHz的分頻時(shí)鐘,在FPGA中產(chǎn)生一個(gè)高頻方波和一個(gè)低頻鋸齒波信號,并對兩個(gè)信號進(jìn)行疊加。疊加后的信號作為輸入,對應圖中DIN,經(jīng)過(guò)系統處理后輸出結果對應圖中RESULT,仿真結果如圖3所示。

  

 

  由圖3中可以看出,本系統存在相位偏移和濾波后依然存在雜波信號的缺點(diǎn),相位偏移主要是由濾波處理滯后于輸入引起的,比較穩定且偏移較小,一般情況下可以忽略;雜波信號由系統階數較低和系數量化誤差引起的。實(shí)際應用中可根據情況選擇適當階數的濾波器和提高采樣頻率予以解決。

  工況信號測試實(shí)驗。由信號發(fā)生器同時(shí)產(chǎn)生一個(gè)50 Hz低頻信號和一個(gè)5 kHz高頻信號,然后對兩個(gè)信號進(jìn)行疊加,作為被測的工況信號。被測的工況信號經(jīng)過(guò)A/D轉換、濾波處理、D/A轉換,然后在示波器中顯示,如圖4所示。輸出波形中過(guò)濾掉了高頻信號部分,同時(shí)低頻信號能夠通過(guò)該濾波器。由圖4中可以看出,濾波處理后與實(shí)際信號還存在一定的誤差。誤差主要是由于算法中采用了低階濾波器、系數量化誤差、器件精度低等原因所致,該誤差可以控制在允許范圍,還可以通過(guò)選擇高精度的器件和增加濾波器的階數得以提高。

  

 

  4 結語(yǔ)

  實(shí)驗結果表明,基于分布式算法低通FIR濾波器的優(yōu)點(diǎn)是工作可靠,濾波精度較高,且具有占用資源少,運算速度快。在資源允許的條件下可根據實(shí)際應用任意確定濾波器的字長(cháng)和階數,在高速數字信號處理領(lǐng)域可以得到很好的應用。

電氣符號相關(guān)文章:電氣符號大全


濾波器相關(guān)文章:濾波器原理


fpga相關(guān)文章:fpga是什么


濾波器相關(guān)文章:濾波器原理


低通濾波器相關(guān)文章:低通濾波器原理


電源濾波器相關(guān)文章:電源濾波器原理


數字濾波器相關(guān)文章:數字濾波器原理

上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: FPGA 濾波器 DSP

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>