<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è) > 網(wǎng)絡(luò )與存儲 > 設計應用 > 基于脈動(dòng)陣列的FIR濾波器設計

基于脈動(dòng)陣列的FIR濾波器設計

——
作者: 時(shí)間:2007-12-27 來(lái)源: 收藏

  1引 言

  ()在數字信號處理中是一種基本的處理單元。無(wú)限長(cháng)單位沖激響應(IIR)數字的優(yōu)點(diǎn)是可以利用模擬設計的結果,但其缺點(diǎn)是不具有線(xiàn)性相位性。圖像處理以及數據傳輸都要求信道具有線(xiàn)性相位特性,濾波器可以做成嚴格的線(xiàn)性相位,避免被處理信號產(chǎn)生相位失真,還可以具有任意的幅度特性。此外,濾波器的單位沖激響應是有限長(cháng)的,因而濾波器一定是穩定的。

  在數字濾波器的研究中,已經(jīng)提出多種FIR濾波器的設計和實(shí)現方法,如并行結構、流水線(xiàn)結構、分布式結構等[1-3]。FIR濾波器計算量大,且要求實(shí)時(shí)實(shí)現。如何提高速度以滿(mǎn)足信號處理的高效性和實(shí)時(shí)性一直是人們研究的重點(diǎn)和熱點(diǎn)。脈動(dòng)陣列是一種新型的流水線(xiàn)結構,所有處理單元是相同且全流水的,并且有模塊化和規則化的特征,這對于硬件設計是很重要的。脈動(dòng)陣列結構可以很好地滿(mǎn)足高速實(shí)時(shí)信號處理的需要,提高數據的通過(guò)率及電路的執行速度。該結構結合了并行結構和流水線(xiàn)的優(yōu)勢,使FIR濾波器達到了更高的處理速度。

  數字濾波器現在大多在DSP芯片上實(shí)現[4]。隨著(zhù)集成電路技術(shù)的發(fā)展,現在已有多種專(zhuān)用DSP芯片用于實(shí)現濾波、FFT等運算。另外,FPGA內部的規整的邏輯塊陣列,很適合實(shí)現脈動(dòng)陣列這種高度并行的運算。Altera公司新推出的Stratix系列FPGA內部有豐富的邏輯陣列資源及高性能嵌入式DSP塊,能夠高效地實(shí)現數字信號處理功能[5]。

  本文首先介紹了FIR濾波器和脈動(dòng)陣列的原理,然后設計了脈動(dòng)陣列結構的FIR濾波器,畫(huà)出電路的結構框圖,并進(jìn)行了時(shí)序分析,最后在FPGA上進(jìn)行驗證。結果表明,脈動(dòng)陣列的模塊化和高度流水線(xiàn)的結構使FIR濾波器在FPGA上獲得了很好的性能,比串行結構的運算速度更快,呵以更好地滿(mǎn)足數字信號處理中高效、實(shí)時(shí)的要求。

  2 FIR濾波器及脈動(dòng)陣列原理

  2.1 FIR濾波器原理

  數字濾波器用于改變輸入信號X(n)的頻譜特性以滿(mǎn)足某種特定的設計要求。一個(gè)因果的數字濾波器可以用它的單位沖激響應h(n)、傳輸函數H(z)或者差分方程來(lái)表達。其中單位沖激響應和傳輸函數描述了系統的時(shí)域和頻域性質(zhì),差分方程則反映了實(shí)現該濾波器所需的運算。

  一個(gè)線(xiàn)性時(shí)不變因果濾波器可以用式(1)的差分方程描述:

  

公式

  如果1≤k≤N時(shí),ak=0,則:

  

公式

  這就是一個(gè)M階的FIR濾波器,是非遞歸運算。

  2.2 脈動(dòng)陣列

  脈動(dòng)陣列結構是1978年由Carneige-Mellon大學(xué)的H.T.Kung等人發(fā)展起來(lái)的一種專(zhuān)用處理器設計模型,是一種新的流水線(xiàn)結構,表示一種有節奏地汁算并通過(guò)系統傳輸數據的處理單元網(wǎng)絡(luò )。這些處理單元規則地泵入泵出數據以維持規則的數據流[6]。由于其數據運算與傳送方式類(lèi)似于心臟或脈搏有節奏地跳動(dòng),因此被稱(chēng)為心動(dòng)陣列或脈動(dòng)陣列。利用脈動(dòng)陣列可設計出一系列適合數字信號處理應用的模塊化、規則且有效的運算結構。脈動(dòng)陣列結構的基本特性如下:

  (1)脈動(dòng)性

  數據在一個(gè)全局時(shí)鐘的精確控制下,有節奏地經(jīng)過(guò)計算和傳遞過(guò)程,最后通過(guò)網(wǎng)絡(luò )。

  (2)模塊性和規則性

  陣列由模塊化的處理單元組成,各處理單元之間的互連方式均勻一致,并且計算網(wǎng)絡(luò )可任意擴大。

  (3)空間局部性和時(shí)間局部性

  表現在數據從一個(gè)計算節點(diǎn)傳遞到下一個(gè)計算節點(diǎn)至少需要一個(gè)單元時(shí)間。

  (4)有效的流水線(xiàn)結構

  脈動(dòng)陣列免除了形成數據流所需的控制開(kāi)銷(xiāo)。陣列內處理單元間的局部連接方式使陣列中負載均勻、連線(xiàn)極短,最大限度地減小了系統內部的通信延時(shí),提高了處理單元的利用率,使整個(gè)陣列的系統性能得到充分發(fā)揮。

  脈動(dòng)結構是將線(xiàn)性映射技術(shù)用于規則依賴(lài)圖上進(jìn)行設計的。依賴(lài)圖的邊表示優(yōu)先約束。脈動(dòng)陣列設計中的基本矢量有:

  (1)投影矢量:

  

公式

  (2)處理器矢量:PT=(p1 p2)

  (3)調度矢量:ST=(S1 S2)

  (4)硬件利用率:HUE=1/│STd │

  3 FlR濾波器的脈動(dòng)結構設計

  3.1 FIR濾波器的脈動(dòng)陣列結構

  用調度不等式選擇可行的調度矢量ST,并根據脈動(dòng)結構的可行性限制條件選擇投影矢量d和處理器空間矢量PT,然后用線(xiàn)性映射技術(shù)設計脈動(dòng)列。

  選擇投影矢量、處理器矢量和調度矢量如下:

  

公式

  于是,節點(diǎn)IT=(i,j)被處理為:

  

公式

  節點(diǎn)IT=(i,j)的執行時(shí)間為:

  

公式

  硬件利用率:

  

公式

  以五階FIR濾波器為例:

  

公式

  FIR濾波器的脈動(dòng)結構設計框圖如圖1所示。

  

FIR濾波器的脈動(dòng)結構設計框圖

  其中,d0,d1,d2和d3作為延時(shí)單元,m0,m1,…,m4為固定乘數的乘法器,乘數分別為ω0,ω1,…,ω4。乘法器m0和加法器a0構成處理器P0;乘法器m1和加法器a1構成處理器P1;類(lèi)似的,m4和a4構成處理器P4。5個(gè)處理器同時(shí)工作,x(n)輸入后同時(shí)到達5個(gè)處理器,分別和權重ωi相乘后,經(jīng)不同的延時(shí)相加得到結果y(n)。

  該設計框圖很好地體現了2.2節提到的脈動(dòng)陣列的4個(gè)基本特性。數據在網(wǎng)絡(luò )中有節奏的輸入、計算、傳遞并輸出。

  該結構由5個(gè)相同的模塊化處理器構成,容易擴展,可實(shí)現任意階的FIR濾波器。數據的輸入、和權重的相乘、中間結果的寄存、數據的輸出各需要一個(gè)單元時(shí)問(wèn),但這幾種操作可同時(shí)進(jìn)行,不會(huì )互相干擾。該脈動(dòng)陣列結構以高度的流水線(xiàn)方式運行。

  需要注意的是,在乘法器輸出的時(shí)候需要對輸出的數據進(jìn)行一位擴展,以避免加法器的溢出問(wèn)題。

  3.2 時(shí)序分析

  該結構的空問(wèn)時(shí)間表示如圖2所示。橫軸為時(shí)間軸,縱軸為處理器軸。圖中的每一行對應一個(gè)處理器??梢钥吹皆跁r(shí)間軸的某一點(diǎn)上,輸入數據x(n)在同一時(shí)間劍達所有處理器,即輸入"廣播";在處理器軸的某一點(diǎn)上,權重ωi在各處理器中處于相同的空間坐標,因此權重"保持";而輸出數據y(n)在不同的空間和時(shí)間得到,所以輸出"移動(dòng)"。該FIR濾波器為輸入廣播、權重保持、輸出移動(dòng)型的脈動(dòng)陣列結構。

  借助于脈動(dòng)陣列技術(shù),輸入和輸出之間的處理可以同時(shí)進(jìn)行,因此,總的執行時(shí)間變得最小。對該結構進(jìn)行時(shí)序分析,如圖3所示。在第一個(gè)時(shí)鐘周期x(0)送到各處理器,和權重分別相乘后在第二個(gè)時(shí)鐘周期得到y(0)=ω0x(0),在此同時(shí)數據x(1)已經(jīng)輸入;第三個(gè)時(shí)鐘周期輸入x(2),在處理器P0得到ω0x(1),此時(shí)處理器P1的結果ω1x(0)經(jīng)一級延時(shí)后和P0的結果相加得到y(1)=ω0(1)+ω1x(O)。同理,第四個(gè)周期得到y(2)=ω0x(2)+ω1x(1)+ω2x(0),第五個(gè)周期得到y(3)=ω0x(3)+ω1x(2)+ω2x(1)+ω3x(O)…。

  

空間-時(shí)間表示圖和時(shí)序分析

  4 FPGA驗證

  以一個(gè)輸入輸出均為8 b的五階FIR濾波器為例,對該脈動(dòng)陣列結構的FIR濾波器在FPGA上進(jìn)行驗證。目標器件選用Stratix系列器件,編譯軟件為QuartusⅡ4.2。

  Stratix系列器件是Altera公司推出的新型FPGA,其內部有豐富的嵌入式存儲器、優(yōu)化的數字信號處理(DSP)塊和高性能I/O能力。Stratix器件是設計復雜的高性能系統的理想選擇。StratiX器件使用DSP塊實(shí)現大計算量應用所需的大數據吞吐量。DSP塊由硬件乘法器、加法器、減法器、累加器和流水線(xiàn)寄存器組成[6]。從圖1中可以看出,每個(gè)處理器單元由一個(gè)乘法器和一個(gè)加法器構成,這種結構很適合用FPGA內部的DSP塊實(shí)現。

  實(shí)驗結果如表1所示。為了便于比較,使用相同的器件,還給出了串行結構FIR濾波器的實(shí)驗結果。在串行結構中,每次計算1個(gè)x(n),需要3個(gè)時(shí)鐘周期。脈動(dòng)陣列結構每次計算5個(gè)x(n),需要5個(gè)時(shí)鐘周期。每個(gè)x(n)為8 b數據。運算速度可以由下面的公式得出:

  運算速度=(每次處理數據長(cháng)度/運算耗用的時(shí)鐘周期數)

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




評論


相關(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>