《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 基于分布式算法的低通FIR濾波器
基于分布式算法的低通FIR濾波器
摘要: 分布式算法是一種適合FPGA設計的乘加運算,由于FPGA中硬件乘法器資源有限,直接應運乘法會消耗大量的資源。本文利用了豐富的存儲器資源進行查找表運算,設計了一種基于分布式算法低通FIR濾波器;利用線性相位FIR濾波器的對稱性減小了硬件規模;利用分割查找表的方法減小了存儲空間;采用并行分布式算法結構和流水線技術提高了濾波器的速度,在FPGA上實現了該濾波器。
Abstract:
Key words :

  0 引言

  傳統數字濾波器硬件的實現主要采用專用集成電路(ASIC)和數字信號處理器(DSP)來實現。FPGA內部的功能塊中采用了SRAM的查找表(lo-ok up table,LUT)結構,這種結構特別適用于并行處理結構,相對于傳統方法來說,其并行度和擴展性都很好,它逐漸成為構造可編程高性能算法結構的新選擇。

  分布式算法是一種適合FPGA設計的乘加運算,由于FPGA中硬件乘法器資源有限,直接應運乘法會消耗大量的資源。本文利用了豐富的存儲器資源進行查找表運算,設計了一種基于分布式算法低通FIR濾波器;利用線性相位FIR濾波器的對稱性減小了硬件規模;利用分割查找表的方法減小了存儲空間;采用并行分布式算法結構和流水線技術提高了濾波器的速度,在FPGA上實現了該濾波器。

  1 分布式的濾波器算法

  FIR濾波器突出的特點是單位取樣響應h(n)僅有有限個非零值。對于一個N階的FIR濾波器形式如下:

  

 

  在許多數字信號處理應用領域中,在技術上是不需要通用的乘法算法的。對于本系統可以通過Matlab中的fdatool工具根據設計要求設計出濾波器的系統函數h(n),那么乘積項h(k)×x(n-k)就變成了2個常數的乘法。無符號數的分布式算法和有符號數的分布式算法是分布式算法在FIR濾波器中的2種典型算法。

  1.1 無符號數的分布式算法設計

  由于FPGA為并行處理結構,所以假設x(n-k)數據寬度為L b,則由式(1)可表示為:

  

 

  由式(1)、式(2)可以得到:

  

 

  假設:

  

 

  則式(1)可以表示為:

  

 

  1.2 有符號數的分布式算法設計

  對于有符號數的補碼表示為:

  

 

  則由式(5),式(1)可得:

  

 

  2 分布式的濾波器的軟件實現

  從式(5)和式(7)可以看出,利用分布式算法實現一個N項乘積和,關鍵是如何實現式(4)中乘積項及各乘積項之和。

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

  

8階濾波系統的低四位地址x(i)與p(i)的映射關系 www.elecfans.com

 

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

  

 

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

  

 

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

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

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

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

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

  3 仿真實驗、工況信號測試實驗

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

  

 

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

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

  

 

  4 結語

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

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 99日韩精品 | 日本三黄色大 | 天天插视频 | 特级黄色视频毛片 | 一级一级毛片免费播放 | 最近中文字幕免费完整国语 | 中国美女大战黑人国产 | 久操视频在线观看免费 | 成人免费激情视频 | 天堂网在线看 | 国产成人福利在线 | 久久国产精品成人免费 | 亚洲国产经典 | 日日操日日干 | 亚洲二区在线 | 美女一级毛片毛片在线播放 | 国产一区二区三区毛片 | 欧美大陆日韩一区二区三区 | 99精品视频在线在线视频观看 | 国产精品视频成人 | 日韩免费成人 | 色y情视频免费看 | 六度国产福利午夜视频黄瓜视频 | 美腿丝袜亚洲综合 | 91成人午夜精品福利院在线观看 | 日本videos18高清hd下 | 曰批全过程免费视频观看软件 | 免费无遮挡嘿嘿嘿视频动态 | 男女男精品视频网站 | igao国产精品| 视频日韩p影院永久免费 | 亚欧洲精品在线视频免费观看 | 花蝴蝶亚洲一区二区三区 | 欧美综合亚洲 | 日韩三级中文 | 99久久er这里只有精品17 | 精品久久久久久亚洲精品 | 国产亚洲精品日韩香蕉网 | 色影院在线 | 欧美双茎同入视频在线观看 | 日韩视频二区 |