歡迎您光臨本站 登入註冊首頁

概述

1.引言   在數字信號處理系統中,FIR數字濾波器多採用專用DSP晶元(如TMS320CXX系列),這種基於DSP的處理系統存在很多優點,比如方案靈活、可操作性強、程序……

1.引言
    在數字信號處理系統中,FIR數字濾波器多採用專用DSP晶元(如TMS320CXX系列),這種基於DSP的處理系統存在很多優點,比如方案靈活、可操作性強、程序易於移植。但這種結構的濾波器多是根據FIR 濾波器的數據移位相乘累加的演算法編寫相應軟體,利用軟、硬體相互結合完成濾波器的設計。由於軟體運行時,指令都是串列執行的,這嚴重製約了系統的運行速率,不能滿足高傳輸速率,大數據吞吐量的數字信號的實時性處理要求。而基於DA演算法的FPGA濾波器則是一種採用純硬體的方式實現FIR 濾波器的方式,這種方法突出的優點是運算速度快,特別適合在高速、實時、快變的數字信號處理要求。

2.DA演算法的基本思想
    第一個討論分散式演算法(distributed arithmetic,DA)的可以追溯到1973年Cr0i Croisier的一篇論文,並由Peled和Liu來推廣。但是直到FPGA出現以後,才在FPG計算乘積和中被廣泛地應用。在FPGA 晶元設計中,分散式演算法(distributed arithmetic,DA)是一種很重要的技術。它在乘積和的計算中已被廣泛應用,為了理解DA演算法設計原理,我們考慮有一個線性時不變網路的輸出可以用下式表示:
 
假設係數c[n]是已知常數,x[n]是變數,在有符號DA系統中假設變數x[n]的表達式如下:
 
其中xb[n]表示 x[n]的第b位,即x[n]是x第n個樣點。所以,內積y 可以表示為:
 
我們重新分別求和次序(這就是分散式演算法的由來),結果是:
y=(c[0]xB-1[0]+c[1]+……+c[N-1]xB-1[N-1])2B-1+(c[0]xB-2[0]+c[1]+……+c[N-1]xB-2[N-1])2B-2     (2-4)
.
.
.
+(c[0]x0[0]+c[1]x0[1]+c[N-1]x0[N-1])20
    用更緊湊的形式表示為:
 
    從(2—4)式可以發現,分散式演算法是一種以實現乘加運算為目的的運算方法。它與傳統演算法實現乘加運算的不同在於執行部分積運算的先後順序不同。分散式演算法在實現乘加功能時,是通過將各輸入數據的每一對應位產生的部分積預先進行相加形成相應的部分積,然後再對各個部分積累加而得到最終的結果,而傳統演算法是等到所有乘積已經產生之後再來相加完成乘加運算的。與傳統串列演算法相比,分散式演算法可極大地減少硬體電路的規模,提高電路的執行速度。

3.基於DA演算法的FIR數字濾波器的硬體實現
    由上面分析可以知道,對於任何一個線性時不變網路總可以將它轉換成式(2-5)那樣的形式,FIR濾波器是一個很典型的線性時不變網路,它的表達式是:
 
我們可以將它轉化成下面這樣的形式:
 
在本系統中,採用的是8 位輸入,所以B = 8 則:
 
    線性相位FIR濾波器滿足係數對稱條件,本系統設計的系統為16階,那麼它的係數關於h[7]偶對稱,即有:
h[n]= h[16-1-n]= h[15-n]   (3-4)
    由式(3-3)和(3-4)可得到實現系統硬體框圖如圖3-1:
 

4.系統的VHDL描述
4.1頂層模塊設計
Library ieee;
Use ieee.std_logic_1164.a11;
Use ieee.std_logic_unsigned.all;
Entity FIR is
Port (x: in std_logic_vector(7 downto 0);
clk : in std_logic;
y : out std_logic_vector(7 downto 0));
end FIR;
architecture behave of FIR is
component lpfir
port (
in : in std_logic_vector(7 downto 0);
clk : in std_logic;
out : out std_logic_vector(7 downto 0));
end component ;
begin
process(clk)
begin
u1:lpfir port map (x,clk,y);
end process;
end behave;

4.2 LUT查詢表ROM的建立
用MIF文件格式編輯的ROM初始化值
WIDTH = 16
DEPTH = 16
ADDRESS_RADIX = HEX ;
DATA_RADIX = HEX ;
CONTENT BEGIN
0 : 0000;
1 : 0045;
2 : 00E6;
……
F : 0000;
END;

4.3 濾波器係數的設計
    我們利用matlab 自帶的濾波器設計工具FDAtool和信號處理工具Pstool設計出一個16階窗函數FIR低通濾波器。它的具體參數是:
窗函數類型:Blackman窗,信號採樣頻率:50KHz,通帶截至頻率10KHz,濾波係數h[n]見下表1,該濾波器的傳輸特性如下圖4-1 所示:
 

5.系統的模擬與結果分析
    為了驗證與檢測該系統的效果,我們採用Cyclone 公司EP1C6Q240C8晶元對系統進行了開發,並通過ALTERA 公司的綜合設計工具Quartus II 4.2 對該系統進行了綜合編譯與模擬,我們對該系統連續輸入了16個數據(0.3,0.32,-0.79,0.45,-0.87,-0.91,-0.12,0.89,0.37,0.66,-0.57,0.75,-0.21,0.96,0.56,-0.19)進行處理,得到了如下模擬結果。


5.1 系統綜合性能的模擬結果
    系統的綜合性能見表5-1:
  
    由表5-1可以看出系統佔有硬體資源很少,運行速度很高。

5.2 系統處理準確性的模擬結果
    系統的處理結果與理論結果對比見表5-2:
    為了獲得一個更為準確的結果,取后8 個數據進行分析,通過表5-2我們可以看出該系統的實際處理結果與理論計算結果誤差很小,可以滿足實際工程方面的需求。

6. 結論
    以上理論分析和模擬結果表明,軟硬體結合串列執行的DSP演算法相比,DA演算法具有明顯的佔用系統資源低和運行速度高的優點,是一種更為有效的FIR 濾波器設計方法;基於DA演算法的數字信號處理設計具有DSP演算法所無可比擬的優勢,在極大的提高了FIR 數字濾波器的處理速度和數據吞吐能力的同時,又可以保證系統很小的處理誤差,是一種比較實用可靠高效的設計方法。


[admin via 研發互助社區 ] 基於DA演算法的FIR濾波器設計與實現已經有2824次圍觀

http://cocdig.com/docs/show-post-43160.html