亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        自適應(yīng)有限沖激響應(yīng)濾波器的FPGA實(shí)現(xiàn)

        2012-06-28 03:04:54雷,李
        艦船電子對(duì)抗 2012年5期
        關(guān)鍵詞:存儲(chǔ)單元乘法器移位

        王 雷,李 靜

        (1.解放軍92785部隊(duì),秦皇島066200;2.北京航天科奧電子技術(shù)有限公司,北京100070)

        0 引 言

        自適應(yīng)濾波器一直是信號(hào)處理領(lǐng)域的研究熱點(diǎn)之一,并已經(jīng)被廣泛應(yīng)用于數(shù)字通信、回波消除、天線陣波束形成、信道均衡等領(lǐng)域[1]。自適應(yīng)濾波器是一種具有自我調(diào)整能力和跟蹤能力的現(xiàn)代濾波器,可根據(jù)被控制對(duì)象的時(shí)變性做出相應(yīng)的調(diào)整,滿足某種準(zhǔn)則的要求,從而實(shí)現(xiàn)最優(yōu)濾波。同時(shí),現(xiàn)代數(shù)字信號(hào)處理更趨向于高速、實(shí)時(shí)的信號(hào)處理。它需要極高的數(shù)據(jù)吞吐量和巨大的實(shí)時(shí)計(jì)算量。FPGA有著規(guī)整的內(nèi)部邏輯陣列和豐富的連線資源,特別適合于數(shù)字信號(hào)處理任務(wù),相對(duì)于串行運(yùn)算的通用數(shù)字信號(hào)處理器(DSP)芯片,其并行性和可擴(kuò)展性更好,在實(shí)時(shí)性要求較高的場(chǎng)合更能滿足系統(tǒng)高速、實(shí)時(shí)的需要[2]。本文針對(duì)FPGA的特點(diǎn)設(shè)計(jì)了一種自適應(yīng)有限沖激響應(yīng)(FIR)濾波器的實(shí)現(xiàn)方法,并通過(guò)在Xilinx公司提供的ISE平臺(tái)上采用Verilog HDL編程[3],利用 Modelsim 和 Matlab軟件對(duì)雙模式盲自適應(yīng)均衡濾波器[4]進(jìn)行仿真驗(yàn)證。

        1 FIR濾波器原理

        FIR濾波器的基本結(jié)構(gòu)就像一個(gè)分節(jié)的延時(shí)線,將各節(jié)的輸出加權(quán)累加,得到濾波器輸出。其數(shù)學(xué)差分表達(dá)式為:

        式中:xb[n]為在n時(shí)刻采樣信號(hào)x[n]的第b位。

        將式(2)代入濾波器的輸出表達(dá)式(1),可得到:

        假設(shè)濾波器的輸入信號(hào)x[n]為B+1位補(bǔ)碼形式,即:

        對(duì)于式(3)中乘積項(xiàng)xb[n]h[N-n],當(dāng)xb[n]為1時(shí),其值為h[N-n];當(dāng)xb[n]為0時(shí),其值為0。由此可知,對(duì)于式(4)每個(gè)括號(hào)中的子式,N 位向量 (xb[0],xb[1],…,xb[N -1])有2N種情況,相應(yīng)地有2N種組合值。

        對(duì)于傳統(tǒng)的固定系數(shù)的FIR濾波器,為了提高系統(tǒng)的運(yùn)行速度,有人提出了一種分布式算法[5]。分布式算法(DA)是一種以實(shí)現(xiàn)乘加運(yùn)算為目的的運(yùn)算方法。它與傳統(tǒng)實(shí)現(xiàn)乘加運(yùn)算算法的不同之處在于:執(zhí)行部分積運(yùn)算的先后順序不同。

        該算法事先構(gòu)造一個(gè)查找表,其中存儲(chǔ)了上式括號(hào)中所有可能的組合值,并通過(guò)所有輸入變量相對(duì)應(yīng)的組合向量 (xb[0],…,xb[N-2],xb[N-1])對(duì)該表進(jìn)行尋址。DA算法的特點(diǎn)是巧妙地運(yùn)用查找表將固定系數(shù)的乘累加(MAC)運(yùn)算轉(zhuǎn)化為查表操作。但是,由于查找表在FPGA上實(shí)現(xiàn)需占據(jù)大量的邏輯資源,當(dāng)設(shè)計(jì)的系統(tǒng)較大時(shí),需要采用更大容量的FPGA。同時(shí),分布式算法一般應(yīng)用在傳統(tǒng)的系數(shù)固定的濾波器中,自適應(yīng)濾波器不象傳統(tǒng)的固定系數(shù)濾波器,它的抽頭系數(shù)是不斷向著最優(yōu)系數(shù)調(diào)整的,因此不可以將權(quán)系數(shù)的各種組合提前計(jì)算好并存儲(chǔ)起來(lái)。本文依據(jù)分布式算法,研究了一種可用于自適應(yīng)濾波器的FPGA實(shí)現(xiàn)方法。

        2 自適應(yīng)FIR濾波器的FPGA實(shí)現(xiàn)

        濾波器的實(shí)質(zhì)就是實(shí)現(xiàn)一個(gè)乘累加運(yùn)算,而濾波器的階數(shù)決定了乘累加運(yùn)算的次數(shù)。因此,濾波器的FPGA實(shí)現(xiàn)主要是利用一些乘法器和加法器。為了實(shí)現(xiàn)高速自適應(yīng)FIR濾波器的設(shè)計(jì),可以采用Xilinx FPGA的硬核DSP48單元來(lái)實(shí)現(xiàn)乘加運(yùn)算。每個(gè)DSP48模塊含有一個(gè)18位×18位的有符號(hào)硬核乘法器,在乘法器后面級(jí)聯(lián)了具有3個(gè)輸入端口的硬核加法器及若干可選流水線寄存器。

        雖然采用DSP48可以提高速度且占用較少Slice,但是在一些低端的FPGA 器件(如Spartan2E)中,其內(nèi)部無(wú)內(nèi)嵌的硬核乘法器DSP48。當(dāng)調(diào)用IP核實(shí)現(xiàn)乘法器時(shí),其實(shí)現(xiàn)方法只能用LUT查找表結(jié)構(gòu),因此有必要設(shè)計(jì)一種高效的自適應(yīng)濾波器FPGA實(shí)現(xiàn)方法[6]。

        本文設(shè)定自適應(yīng)FIR濾波器的輸入數(shù)據(jù)位寬為8位,權(quán)系數(shù)(w0,w1,…,w6)位寬為24位,輸出數(shù)據(jù)位寬截取為8位,所有數(shù)據(jù)均是用二進(jìn)制補(bǔ)碼表示的有符號(hào)數(shù)。將自適應(yīng)FIR濾波器劃分為并/串轉(zhuǎn)換模塊、數(shù)據(jù)延遲模塊、權(quán)系數(shù)組合模塊和移位相加模塊,其結(jié)構(gòu)框圖如圖1所示。

        圖1 自適應(yīng)FIR濾波器FPGA實(shí)現(xiàn)模塊框圖

        數(shù)據(jù)延遲模塊——將輸入濾波器數(shù)據(jù)x[n]通過(guò)不同的觸發(fā)器組完成N階延時(shí),產(chǎn)生與各個(gè)抽頭對(duì)應(yīng)的延時(shí)信號(hào) (x[n],x[n-1],…,x[n- N +1])。

        并/串轉(zhuǎn)換模塊——對(duì)經(jīng)過(guò)數(shù)據(jù)延遲模塊的各數(shù)據(jù)延時(shí)信號(hào)同時(shí)進(jìn)行從并行到串行的處理,為后續(xù)電路做準(zhǔn)備。該模塊輸出信號(hào)為各延時(shí)信號(hào)相對(duì)應(yīng)位組成的N 位向量 (xb[n],xb[n-1],…,xb[n-N+1])。對(duì)于一些復(fù)雜的自適應(yīng)均衡器系統(tǒng),考慮FPGA內(nèi)部邏輯有限,本文設(shè)計(jì)的整個(gè)電路以串行方式工作,然而輸入數(shù)據(jù)是并行的,所以,必須將輸入數(shù)據(jù)進(jìn)行并/串轉(zhuǎn)換處理。若數(shù)據(jù)延遲模塊的并行輸入數(shù)據(jù)為B位,則該模塊要相繼輸出B組這樣的向量后,數(shù)據(jù)延遲模塊才能輸入一個(gè)數(shù)據(jù)。

        因此,數(shù)據(jù)延遲模塊以信號(hào)速率采入B位數(shù)據(jù)(包括一個(gè)符號(hào)位),則并/串轉(zhuǎn)換模塊要以B×信號(hào)速率的時(shí)鐘頻率工作,這樣就需要實(shí)現(xiàn)倍頻。在處理高速信號(hào)時(shí),該模塊就需要更高頻率的工作時(shí)鐘。工作頻率過(guò)高時(shí),對(duì)于時(shí)序數(shù)字系統(tǒng)設(shè)計(jì)會(huì)出現(xiàn)不可預(yù)測(cè)的毛刺和干擾。因此在一些需要處理高速信號(hào)的場(chǎng)合,在FPGA資源足夠的情況下,可以采用并行方式來(lái)實(shí)現(xiàn),而不再需要并/串轉(zhuǎn)換。

        權(quán)系數(shù)組合模塊——根據(jù)并/串轉(zhuǎn)換模塊輸出的向量 (xb[n],xb[n-1],…,xb[n-N+1])完成相對(duì)應(yīng)的權(quán)系數(shù)相加組合。權(quán)系數(shù)組合模塊實(shí)際上是由多個(gè)用于存儲(chǔ)權(quán)系數(shù)的雙端口隨機(jī)處理器(DPRAM)和控制各DPRAM正確工作的控制模塊組成的,為了節(jié)省大量的邏輯資源,在設(shè)計(jì)中利用了Xilinx FPGA內(nèi)部的塊隨機(jī)處理器(RAM)。

        自適應(yīng)均衡器系數(shù)更新模塊輸出的更新權(quán)系數(shù)后面加入了多個(gè)RAM來(lái)存儲(chǔ)權(quán)系數(shù)。對(duì)于7階FIR濾波器的7個(gè)24位權(quán)系數(shù)可有27種組合,這就需要24×27的RAM。為了減小RAM的存儲(chǔ)規(guī)模,在每2個(gè)權(quán)系數(shù)后面加入1個(gè)24×8的DPRAM。同時(shí)將RAM分成A、B 2個(gè)區(qū),前4個(gè)存儲(chǔ)單元為A區(qū),后4個(gè)存儲(chǔ)單元為B區(qū)。其功能框圖如圖2所示,以w0和w1后面的RAM0為例來(lái)說(shuō)明其工作過(guò)程。

        圖2 DPRAM功能框圖

        在RAM0中,A、B 2個(gè)區(qū)的第1個(gè)存儲(chǔ)單元均存儲(chǔ)24bit 0,第2個(gè)存儲(chǔ)單元存w0,第3個(gè)存儲(chǔ)單元存w1,第4個(gè)存儲(chǔ)單元存入w0與w1的和值。另外通過(guò)一個(gè)state信號(hào)來(lái)決定A、B區(qū)的讀和寫操作。當(dāng)state=0時(shí),A區(qū)進(jìn)行寫操作,同時(shí)RAM的A端口寫地址最高位為0;B區(qū)進(jìn)行讀操作,同時(shí)RAM的B端口讀地址最高位為1。當(dāng)state=1時(shí),A區(qū)進(jìn)行讀操作,且B端口讀地址最高位變?yōu)?;B區(qū)進(jìn)行寫操作,且A端口寫地址的最高位變?yōu)?。通過(guò)state信號(hào)控制讀寫操作在A、B區(qū)交替進(jìn)行,類似于乒乓操作。RAM0的3位讀地址是由state信號(hào)和權(quán)系數(shù)組合模塊輸入信號(hào) (xb[n],xb[n-1],…,xb[n- N +1])中 相 鄰 的 2 位 (xb[n],xb[n-1])來(lái) 共 同 決 定 的。 其 中 (xb[n],xb[n -1])與w0和w1的4種組合值的對(duì)應(yīng)關(guān)系及相對(duì)應(yīng)的RAM讀地址如表1所示。對(duì)于RAM0的寫操作,只需要保證在8個(gè)時(shí)鐘周期內(nèi)(本中濾波器輸入信號(hào)為8位)將同一時(shí)刻的w0,w1和w0+w1寫入RAM0的對(duì)應(yīng)存儲(chǔ)單元即可。

        表1 (xb[n],xb[n-1])與w0 和w1 的4種組合值及讀地址的對(duì)應(yīng)關(guān)系

        所有DPRAM讀出的數(shù)據(jù)再經(jīng)過(guò)相加就得到與濾波器輸入數(shù)據(jù)中的1位(xb[n])相對(duì)應(yīng)的一種權(quán)系數(shù)的組合值。在經(jīng)過(guò)B次循環(huán)后,就得到了與濾波器輸入數(shù)據(jù)所有位 (xB-1[n],xB-2,…,x0[n])對(duì)應(yīng)的權(quán)系數(shù)組合值。

        移位相加模塊——將系數(shù)組合模塊輸出的B個(gè)權(quán)系數(shù)組合值經(jīng)過(guò)相應(yīng)的二次冪加權(quán)后再相加得到最后的濾波器輸出結(jié)果yn。在該模塊中,要對(duì)權(quán)系數(shù)組合模塊輸出的值進(jìn)行二次冪加權(quán)處理,其通過(guò)左移位運(yùn)算完成。為了提高系統(tǒng)運(yùn)行速度,B個(gè)數(shù)值的相加不采用傳統(tǒng)的累加器,而采用加法樹的形式實(shí)現(xiàn)。這樣可以將移位運(yùn)算分解成多層次的移位,進(jìn)而可減小加法器的位數(shù),起到節(jié)省FPGA資源的作用。對(duì)于B位的濾波器輸入信號(hào),當(dāng)b<B-1做加法運(yùn)算,當(dāng)b=B-1時(shí)做減法運(yùn)算。因此,經(jīng)B-2次加法和1次減法,就完成了對(duì)yn的計(jì)算。

        此外,為了提高整個(gè)自適應(yīng)FIR濾波器模塊的運(yùn)行速度,在該模塊中引入流水線技術(shù)。流水線技術(shù)為高速數(shù)字系統(tǒng)的實(shí)現(xiàn)提供了一種非常經(jīng)濟(jì)有效的方法。該技術(shù)將一個(gè)完整的操作分為若干子操作,這些子操作可以在時(shí)間上同時(shí)進(jìn)行而互不干擾。流水線技術(shù)的引入可以在不增加或盡可能少增加硬件資源的條件下,實(shí)現(xiàn)高速信號(hào)處理。

        3 自適應(yīng)FIR濾波器FPGA仿真實(shí)現(xiàn)

        為了驗(yàn)證本文方法的正確性,結(jié)合雙模式(修正恒模算法(MCMA)+判別算法(DD))自適應(yīng)盲均算法構(gòu)造的自適應(yīng)濾波器,設(shè)定輸入自適應(yīng)濾波器的信號(hào)為通過(guò)信道模型h=[0.763 1-j0.505 4,0.256 7+j0.271 4,-0.134 3-j0.016,0.059 2-j0.006,-0.026 7+j0.004 8,0.009 8+j0.001 5][7],并加入白噪聲的16位正交調(diào)制(QAM)信號(hào),濾波器的抽頭數(shù)為7,F(xiàn)PGA的時(shí)鐘周期為50MHz,分別應(yīng)用Matlab和FPGA進(jìn)行仿真。FPGA采用Xilinx公司的Virtex4中的Xc4vlx25芯片,在ISE9.1i的FPGA集成開發(fā)環(huán)境下使用硬件描述語(yǔ)言Verilog HDL進(jìn)行設(shè)計(jì),并且使用Modelsim SE 6.2b軟件進(jìn)行系統(tǒng)仿真,可以得到自適應(yīng)均衡濾波器均衡后系統(tǒng)的均方誤差效果圖,如圖3所示。

        圖3 雙模式盲均衡器系統(tǒng)功能仿真圖

        由圖3所示的仿真結(jié)果可以看出,圖3(a)的Matlab仿真圖和圖3(b)的Modelsim仿真結(jié)果基本一致,因此,可以證明上面設(shè)計(jì)的自適應(yīng)FIR濾波器的實(shí)現(xiàn)方法是可行的。整個(gè)程序是在ISE9.1i平臺(tái)上實(shí)現(xiàn)的,設(shè)計(jì)中自適應(yīng)FIR濾波器信號(hào)輸入是8位,權(quán)系數(shù)為24位,輸出也為8位,整個(gè)程序綜合于Xilinx公司的virtex4系列Xc4vlx25芯片上,其中上述雙模式均衡器中的FIR濾波器采用了并行結(jié)構(gòu),其使用資源為:3 195個(gè)Slices,占29%,3 248個(gè)4輸入LUT,占15%,32個(gè)RAMB16s,占44%,其時(shí)鐘頻率可達(dá)到316.811MHz。若要考慮節(jié)省資源,可采用串行結(jié)構(gòu)實(shí)現(xiàn),其使用資源為:581個(gè)Slices,占5%,642個(gè)4輸入LUT,占2%,1個(gè)RAMB16s,占1%,時(shí)鐘頻率可達(dá)到212.316MHz。

        4 結(jié)束語(yǔ)

        本文研究了一種自適應(yīng)有限脈沖響應(yīng)濾波器的FPGA實(shí)現(xiàn)方法。該方法將原來(lái)的乘累加運(yùn)算轉(zhuǎn)化為只有加法和移位運(yùn)算,相應(yīng)的FPGA實(shí)現(xiàn)也由傳統(tǒng)的乘法器(DSP48)和加法器轉(zhuǎn)變?yōu)榧臃ㄆ骱虳PRAM,可以節(jié)省FPGA中的硬核乘法器。該方法用FPGA內(nèi)部的塊RAM來(lái)存儲(chǔ)權(quán)系數(shù)輔助完成乘累加運(yùn)算,由于塊RAM不占用內(nèi)部邏輯資源,所以相對(duì)于查找表該方法可以節(jié)省大量的邏輯資源。另外,在移位相加時(shí)通過(guò)將移位分為多層移位減小了加法器的位數(shù),同時(shí)結(jié)合使用流水線技術(shù),保證了系統(tǒng)運(yùn)行的速度,最后通過(guò)Modelsim仿真和Matlab仿真結(jié)果比較驗(yàn)證了該設(shè)計(jì)方法是可行的。

        [1]Simon Haykin.自適應(yīng)濾波器原理[M].鄭寶玉譯.北京:電子工業(yè)出版社,2010.

        [2]楊恒.FPGA/CPLD最新實(shí)用技術(shù)指南[M].北京:清華大學(xué)出版社,2005.

        [3]田耘,徐文波.Xilinx FPGA開發(fā)實(shí)用教程[M].北京:清華大學(xué)出版社,2008.

        [4]潘立軍,劉澤民.兩種改進(jìn)的盲均衡算法[J].電路與系統(tǒng)學(xué)報(bào),2006,11(2):141-144.

        [5]郭繼昌,李香萍,滕建輔.基于位串行分布式算法和FPGA實(shí)現(xiàn)FIR電路的研究[J].電子測(cè)量與儀器學(xué)報(bào),2001,15(2):15-21.

        [6]Dawood A,Bergmann N,Asdani Z,et al.Adaptive FIR filter design and implementation empowered by reconfigurable FPGAs[J].Proceedings of SPIE-The International Society for Optical Engineering,2000,67(3):1601-1612.

        [7]張曉娟,關(guān)明明,吳長(zhǎng)奇.基于點(diǎn)判決域的多模盲均衡算法及其FPGA實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2011,37(2):49-51.

        猜你喜歡
        存儲(chǔ)單元乘法器移位
        一種28 nm工藝下抗單粒子翻轉(zhuǎn)SRAM的12T存儲(chǔ)單元設(shè)計(jì)
        再生核移位勒讓德基函數(shù)法求解分?jǐn)?shù)階微分方程
        大型總段船塢建造、移位、定位工藝技術(shù)
        Σ(X)上權(quán)移位算子的不變分布混沌性
        數(shù)據(jù)在計(jì)算機(jī)內(nèi)存中的存儲(chǔ)形式及實(shí)驗(yàn)驗(yàn)證
        基于FPGA的流水線單精度浮點(diǎn)數(shù)乘法器設(shè)計(jì)*
        一種成本更低的全新靜態(tài)DRAM存儲(chǔ)單元
        MiR-125a-5p is Upregulated in Plasma of Residents from An Electronic Waste Recycling Site
        多指離斷手指移位再植拇指25例
        乘法器模塊在FPGA中的實(shí)現(xiàn)
        男女一区视频在线观看| 久久人人97超碰超国产| 国产丝袜一区二区三区在线不卡| 午夜国产小视频在线观看黄| 国产自产二区三区精品| 最新中文字幕av无码不卡| 色拍拍在线精品视频| 亚洲熟伦在线视频| 一区二区三区免费观看日本| 欧美大片aaaaa免费观看| 欧美老妇与禽交| 日韩精品精品一区二区三区| 久久精品中文字幕有码| 波多野42部无码喷潮在线| 精品高潮呻吟99av无码视频| av亚洲在线一区二区| 亚洲av手机在线网站| 中文字幕人妻无码一夲道| 久热这里只有精品99国产| 日韩在线中文字幕一区二区三区| 亚洲国产精品国自产拍久久蜜av| 欧美俄罗斯40老熟妇| 欧美国产亚洲精品成人a v | A午夜精品福利在线| aa视频在线观看播放免费 | 亚洲一区二区观看网站| 极品粉嫩小仙女高潮喷水操av| 色综合久久久久久久久久| 欧美在线不卡视频| 一区二区三区精品亚洲视频| 18禁在线永久免费观看| 女人色毛片女人色毛片18| 亚洲AV无码乱码一区二区三区| 亚洲天堂久久午夜福利| 挺进朋友人妻雪白的身体韩国电影| 操出白浆在线观看| 中文字幕一区二区网址| 国产中文三级全黄| 97久久久久人妻精品专区| 亚洲精品在线观看一区二区| 国精产品一区一区三区有限在线|