《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 基于折疊結(jié)構(gòu)的半帶濾波器的設(shè)計(jì)
基于折疊結(jié)構(gòu)的半帶濾波器的設(shè)計(jì)
摘要: 半帶濾波器是一種高效的數(shù)字濾波器,目前流行的半帶濾波器設(shè)計(jì)方法一般能夠滿足參數(shù)要求,但其存在著功耗高、面積大、資源耗費(fèi)代價(jià)高等不足之處。為了彌補(bǔ)上述的不足,文中提出了一種基于折疊技術(shù)的新的半帶濾波器設(shè)計(jì)方法。
Abstract:
Key words :

首先根據(jù)設(shè)計(jì)要求用MATLAB產(chǎn)生相應(yīng)的濾波器系數(shù),用CSD碼對(duì)系數(shù)進(jìn)行優(yōu)化,然后采用折疊結(jié)構(gòu)" title="折疊結(jié)構(gòu)">折疊結(jié)構(gòu),通過(guò)代碼實(shí)現(xiàn)。設(shè)計(jì)過(guò)程當(dāng)中還用到分時(shí)復(fù)用和重定時(shí)技術(shù)。相比其它半帶濾波器" title="半帶濾波器">半帶濾波器的設(shè)計(jì),本設(shè)計(jì)具有耗費(fèi)的資源少,整個(gè)抽取、濾波過(guò)程包括系數(shù)產(chǎn)生始終沒有用到乘法器,而且延遲小、功耗低、面積小、單一時(shí)鐘控制有很高的穩(wěn)定性。

作為軟件無(wú)線電" title="軟件無(wú)線電">軟件無(wú)線電的核心技術(shù)———上下變頻技術(shù)可以通過(guò)專用芯片來(lái)實(shí)現(xiàn)。目前市場(chǎng)上的DDC、DUC品種很多,盡管這些專業(yè)芯片的功能強(qiáng)大但其價(jià)格昂貴,工作參數(shù)配置非常的復(fù)雜,且由于當(dāng)前的通信制式多種多樣,專用芯片無(wú)法完全滿足軟件無(wú)線電系統(tǒng)的性能指標(biāo)。而FPGA,即現(xiàn)場(chǎng)可編程門陣列,擁有豐富的邏輯資源,可編程性強(qiáng),可以用于復(fù)雜的數(shù)字信號(hào)處理比如卷積、相關(guān)和濾波等等,為此采用FPGA來(lái)實(shí)現(xiàn)數(shù)字上下變頻是目前軟件無(wú)線電通信系統(tǒng)的主要實(shí)現(xiàn)方案。

數(shù)字上下變頻由各種多采樣率數(shù)字濾波器組成,常見的濾波器有C IC濾波器、半帶濾波器、FIR整形濾波器等。半帶濾波器(Half2Band)是一種特殊的F IR濾波器,由于其系數(shù)的對(duì)稱性以及將近一半系數(shù)為零值,這使得其濾波運(yùn)算過(guò)程中乘法次數(shù)減少近3 /4,加法次數(shù)減少近一半,同時(shí)用于存儲(chǔ)系數(shù)的存儲(chǔ)器也減少了一半,因此半帶濾波器是個(gè)高效的數(shù)字濾波器,特別適合實(shí)現(xiàn)2的冪次方倍的抽取或者內(nèi)插,有計(jì)算效率高,實(shí)時(shí)性強(qiáng)等特點(diǎn)。流行的半帶濾波器系統(tǒng)級(jí)設(shè)計(jì)方法主要是在MATLAB環(huán)境下根據(jù)設(shè)計(jì)要求搭建系統(tǒng),用sySTem generator系統(tǒng)設(shè)計(jì)工具,將模型直接轉(zhuǎn)化成代碼,然后進(jìn)行調(diào)用,此方法實(shí)現(xiàn)起來(lái)比較簡(jiǎn)單,一般能夠滿足要求但其存在著功耗高、面積大、資源耗費(fèi)代價(jià)高等不足之處。為了彌補(bǔ)上述不足,本設(shè)計(jì)首先根據(jù)設(shè)計(jì)要求用MATLAB產(chǎn)生相應(yīng)的濾波器系數(shù),然后采用折疊結(jié)構(gòu),通過(guò)代碼編寫來(lái)實(shí)現(xiàn)。

1 半帶濾波器的設(shè)計(jì)原理

半帶濾波器(HB)是一種特殊的F IR濾波器,其頻率響應(yīng)滿足公式1的FIR濾波器。



F IR濾波器可以表示為:



根據(jù)公式2,通常半帶濾波器可以采用直接型或者轉(zhuǎn)置型結(jié)構(gòu)來(lái)實(shí)現(xiàn)。由于h ( k ) = h (N - 1 - k) ,采用轉(zhuǎn)置型結(jié)構(gòu)可以減少乘法器以及加法器的使用,其結(jié)構(gòu)圖如圖1所示。

轉(zhuǎn)置型FIR濾波器的結(jié)構(gòu)圖

圖1 轉(zhuǎn)置型FIR濾波器的結(jié)構(gòu)圖

2 基于折疊結(jié)構(gòu)的半帶濾波器的設(shè)計(jì)

2. 1 折疊技術(shù)的原理

半帶濾波器用作抽取器使用時(shí),其輸出速率為輸入速率的一半,即輸出速率與系統(tǒng)時(shí)鐘頻率是1∶2的關(guān)系,因此可以把轉(zhuǎn)置型的半帶濾波器進(jìn)行折疊,折疊因子為2。為了使得折疊后時(shí)序不會(huì)出錯(cuò),我們首先得算出折疊后各結(jié)點(diǎn)之間的延遲值, 延遲可按照公式3進(jìn)行計(jì)算。

其中DF ( u→v)指折疊后功能單元u的輸出到功能單元v的輸入所經(jīng)過(guò)的延時(shí)數(shù), N 為折疊因子即折疊后功能單元迭代的次數(shù), w ( e)是折疊前功能單元u和功能單元v之間的延時(shí)數(shù), Pu 是功能單元u的流水級(jí)數(shù), v和u分別是功能單元v和u的編號(hào)。計(jì)算出各個(gè)結(jié)點(diǎn)延遲值后我們就可以得到相應(yīng)的結(jié)構(gòu)圖,然后根據(jù)結(jié)構(gòu)圖編寫代碼。在下采樣當(dāng)中采用折疊技術(shù),可以大大減少乘法器的使用,減少大量的乘法運(yùn)算,減少了面積和功耗。

2. 2 基于折疊結(jié)構(gòu)的半帶濾波器的設(shè)計(jì)

下面以一個(gè)基于折疊結(jié)構(gòu)的11階半帶濾波器的設(shè)計(jì)為例來(lái)說(shuō)明設(shè)計(jì)的可行性及優(yōu)越性。

2. 2. 1 設(shè)計(jì)指標(biāo)

設(shè)計(jì)指標(biāo):系統(tǒng)時(shí)鐘為61. 44MHz,半帶濾波器的階數(shù)11 階,系數(shù)為定點(diǎn)18 位,濾波器通帶要求1. 23M,阻帶位置要求為30. 72 - 1. 75 = 28. 97M。

2. 2. 2 下采樣數(shù)據(jù)率變換

半帶濾波器作為抽取器使用時(shí),其抽取因子為2,即輸出速率為輸入速率的一半,也就是說(shuō)輸出速率與系統(tǒng)時(shí)鐘頻率是1: 2的關(guān)系。為了采用折疊技術(shù),同時(shí)也方便整個(gè)濾波過(guò)程的時(shí)序控制,首先我們利用系統(tǒng)時(shí)鐘產(chǎn)生一個(gè)同步控制信號(hào)cONtr_ rw。

同步控制信號(hào)contr_ rw的初始值為1,在每個(gè)系統(tǒng)時(shí)鐘上升沿到來(lái)時(shí),其值在0與1之間進(jìn)行跳變,其它時(shí)候數(shù)值保持不變,也就是說(shuō)在第一個(gè)系統(tǒng)時(shí)鐘上升沿到來(lái)時(shí), contr_ rw的值由1跳變?yōu)?,此值一直保持著,直到第二個(gè)系統(tǒng)時(shí)鐘上升沿到來(lái)時(shí), contr_rw的值才由0跳變?yōu)?,同樣此值也一直保持到第三個(gè)系統(tǒng)時(shí)鐘上升沿到來(lái)時(shí)才發(fā)生跳變。由此可見contr_rw的值只有在系統(tǒng)時(shí)鐘上升沿到來(lái)時(shí)才發(fā)生跳變,為此我們可以用此同步控制信號(hào)作為分路器(DEMUX)的選通開關(guān)把輸入數(shù)據(jù)分成奇、偶2個(gè)通道,以此達(dá)到下采樣數(shù)據(jù)率變換。當(dāng)系統(tǒng)時(shí)鐘上升沿到來(lái)時(shí),如果同步控制信號(hào)contr_ rw的值為0,則把輸入數(shù)據(jù)送入奇通道,此時(shí)偶通道送入的是0值;如果contr_rw的值為1,則把輸入數(shù)據(jù)送入偶通道,此時(shí)奇通道送入的是0值;緊接著在經(jīng)過(guò)兩級(jí)的數(shù)據(jù)率穩(wěn)定之后,奇、偶2個(gè)通道的數(shù)據(jù)率均為系統(tǒng)時(shí)鐘頻率的一半,也就是說(shuō)此時(shí)奇、偶通道均為每?jī)蓚€(gè)時(shí)鐘變化一次數(shù)據(jù)。根據(jù)公式2,我們知道此11階半帶濾波器的輸出為:

由此表達(dá)式我們知道x ( n) h0、x ( n - 2) h2、x ( n - 4) h4、x (n - 6) h4、x (n - 8) h2、x (n - 10) h0 是根據(jù)奇通道數(shù)據(jù)產(chǎn)生的, x (n - 5) h5 是根據(jù)偶通道數(shù)據(jù)產(chǎn)生的。為了節(jié)約資源同時(shí)也為后續(xù)的折疊技術(shù)的應(yīng)用,系數(shù)h2、h4 采用分時(shí)復(fù)用技術(shù),當(dāng)同步控制信號(hào)contr_rw的值為0時(shí)產(chǎn)生系數(shù)h4、contr_rw的值為1時(shí)產(chǎn)生系數(shù)h2。

2. 2. 3 各結(jié)點(diǎn)延時(shí)單元計(jì)算

首先我們把設(shè)計(jì)當(dāng)中用到的每個(gè)乘法器和加法器都當(dāng)成一個(gè)結(jié)點(diǎn),在應(yīng)用折疊技術(shù)之前我們必須先知道各結(jié)點(diǎn)之間的延時(shí)值。如圖1所示我們標(biāo)注好每個(gè)結(jié)點(diǎn)的編號(hào),為了讓其結(jié)構(gòu)具有對(duì)稱性,我們把圖1當(dāng)中的結(jié)點(diǎn)12當(dāng)成是一個(gè)加法器,此加法器的輸入分別為: 0值和結(jié)點(diǎn)8的輸出值。由于時(shí)鐘頻率是輸出速率的2倍,因此折疊因子N = 2, 此時(shí)所有編號(hào)為奇數(shù)的結(jié)點(diǎn)其u或者v值均為0,所有編號(hào)為偶數(shù)的結(jié)點(diǎn)其u或者v值均為1,根據(jù)公式3我們可以算出各個(gè)關(guān)鍵結(jié)點(diǎn)之間的延遲值為:DF ( 5→6) = 5、DF (6→7) = 3、DF ( 7→8) = 3、DF ( 8→12) =0、DF (12→11) = 1、DF ( 11→10) = 5、DF ( 10→9) =3。根據(jù)這些延遲值,我們知道完成一次的濾波工作需要22個(gè)系統(tǒng)時(shí)鐘和20個(gè)D觸發(fā)器。為了能夠以最快的速度完成濾波功能,這時(shí)可以引入重定時(shí)技術(shù)對(duì)D觸發(fā)器進(jìn)行分配,在滿足時(shí)序的情況下減少D觸發(fā)器的使用, 從而減少延遲。重定時(shí)后各結(jié)點(diǎn)的延遲值為: DF ( 5→6) = 3、DF ( 6→7) = 1、DF ( 7→8) = 1、DF ( 8 →12) = 0、DF ( 12 →11) = 1、DF ( 11 →10) = 3、DF ( 10→9) = 1,也就是說(shuō)采用重定時(shí)以后完成一次的濾波工作只需11個(gè)系統(tǒng)時(shí)鐘和10個(gè)D觸發(fā)器。于是根據(jù)這些延遲值我們便得到了折疊結(jié)構(gòu)的結(jié)構(gòu)圖,如圖2所示。

基于折疊結(jié)構(gòu)的半帶濾波器的結(jié)構(gòu)圖

圖2 基于折疊結(jié)構(gòu)的半帶濾波器的結(jié)構(gòu)圖

2. 2. 4 時(shí)序分析

圖2當(dāng)中的0表示同步控制信號(hào)contr_rw的值為0, 1表示同步控制信號(hào)contr_rw的值為1,為了方便分析,我們把圖2當(dāng)中的加法器按照從左到右,從上到下的順序依次編號(hào)為加法器1、加法器2、加法器3、加法器4,用fm0mul_w表示通道送給加法器1的輸入, 用fm0add _ r 表示加法器1 的輸出; 用fm1mul_w表示通道送給加法器2的輸入,用fm1add_r表示加法器2的輸出,其它類推。接下來(lái)簡(jiǎn)要的分析下該設(shè)計(jì)是如何工作的。

第一個(gè)時(shí)鐘Clock1:同步控制信號(hào)contr_ rw的值為0,通道送入加法器1 的數(shù)據(jù)為x ( 0) h0 , 加法器1的另一個(gè)輸入值為0,此時(shí)加法器1的輸出值為x (0) h0 ;通道送入加法器2的數(shù)據(jù)為x ( 0) h4 ; 通道送入加法器3的數(shù)據(jù)為x ( 0) h0 ;通道送入加法器4的數(shù)據(jù)為x (0) h4。

第二個(gè)時(shí)鐘Clock2:同步控制信號(hào)contr_ rw的值為1,通道送入加法器1的數(shù)據(jù)為x (0) h2 ;通道送入加法器2的數(shù)據(jù)為x (1) h5 ;通道送入加法器3的數(shù)據(jù)為x (0) h2 ;送入加法器4的數(shù)據(jù)為0。

第三個(gè)時(shí)鐘Clock3、第四個(gè)時(shí)鐘Clock4、第五個(gè)時(shí)鐘Clock5、第六個(gè)時(shí)鐘Clock6可按照此方法依此類推,具體時(shí)序參見表1。

第七個(gè)時(shí)鐘Clock7:同步控制信號(hào)contr_ rw的值為0,通道送入加法器1的數(shù)據(jù)為x (6) h0 ,加法器1的另一個(gè)輸入值為0, 此時(shí)加法器1 的輸出值為x (6) h0 ;通道送入加法器2 的數(shù)據(jù)為x ( 6 ) h4 , 在Clock6產(chǎn)生的fm0add_ r經(jīng)過(guò)1個(gè)時(shí)鐘延時(shí)成為此時(shí)刻加法器2的另外一個(gè)輸入值,于是此時(shí)加法器2的輸出值為x (2) h0 + x (4) h2 + x (6) h4 ;通道送入加法器3的數(shù)據(jù)為x (6) h0 ;通道送入加法器4的數(shù)據(jù)為x ( 6) h4 ,在Clock6產(chǎn)生的fm3add_ r經(jīng)過(guò)1個(gè)時(shí)鐘延時(shí)成為此時(shí)刻加法器4的另外一個(gè)輸入值,于是此時(shí)加法器4的輸出值為x ( 0) h0 + x ( 2) h2 +x (4) h4 + x (5) h5 + x (6) h4。

第八個(gè)時(shí)鐘Clock8、第九個(gè)時(shí)鐘Clock9、第十個(gè)時(shí)鐘Clock10 可以按此方法類推, 具體時(shí)序參見表1。

第十一個(gè)時(shí)鐘Clock11: 同步控制信號(hào)contr_rw的值為0,通道送入加法器1 的數(shù)據(jù)為x ( 10 )h0 ,加法器1 的另一個(gè)輸入值為0, 此時(shí)加法器1的輸出值為x ( 10) h0 ;通道送入加法器2的數(shù)據(jù)為x ( 10) h4 ,在Clock10產(chǎn)生的fm0add_ r經(jīng)過(guò)1個(gè)時(shí)鐘延時(shí)成為此時(shí)刻加法器2 的另外一個(gè)輸入值,于是此時(shí)加法器2的輸出值為x ( 6) h0 + x ( 8) h2 +x (10) h4 ;通道送入加法器4的數(shù)據(jù)為x ( 10) h4 ,在Clock10產(chǎn)生的fm3add_r經(jīng)過(guò)1個(gè)時(shí)鐘延時(shí)成為此時(shí)刻加法器4的另外一個(gè)輸入值,于是此時(shí)加法器4的輸出值為x ( 4) h0 + x ( 6) h2 + x ( 8) h4 + x ( 9) h5+ x (10) h4。通道送入加法器3的數(shù)據(jù)為x ( 10) h0 ,在Clock10產(chǎn)生的fm2add_r經(jīng)過(guò)1個(gè)時(shí)鐘延時(shí)成為此時(shí)刻加法器3的另外一個(gè)輸入值,于是此時(shí)加法器3的輸出值為x ( 0 ) h0 + x ( 2 ) h2 + x ( 4 ) h4 +x (5) h5 + x (6) h4 + x (8) h2 + x (10) h0。

以上是基于折疊結(jié)構(gòu)的11階半帶濾波器一個(gè)完整的濾波過(guò)程。具體的各個(gè)結(jié)點(diǎn)的時(shí)序如表1所示。

表1 時(shí)序表

時(shí)序表
時(shí)序表
時(shí)序表

3 仿真與實(shí)現(xiàn)

本設(shè)計(jì)采用Verilog語(yǔ)言編寫,所采用的芯片是Xilinx公司的xc4vsx35 - 10ff668,用ISE10. 1和Modelsim進(jìn)行仿真驗(yàn)證。仿真結(jié)果、綜合報(bào)告圖如圖3、圖4所示。從圖3我們可以看出采用折疊技術(shù)的半帶濾波器,其系數(shù)的產(chǎn)生以及最終濾波器的輸出完全正確,完全滿足我們的設(shè)計(jì)要求。

傳統(tǒng)的直接型半帶濾波器的設(shè)計(jì)單單濾波過(guò)程,不包括系數(shù)的產(chǎn)生和抽取過(guò)程,需要10個(gè)D觸發(fā)器、7個(gè)乘法器、6個(gè)加法器,而轉(zhuǎn)置型半帶濾波器則需要10個(gè)D 觸發(fā)器、4 個(gè)乘法器、7 個(gè)加法器。

然而從圖4我們可以看到整個(gè)半帶濾波器耗費(fèi)的資源相當(dāng)?shù)纳?,總共用?3 個(gè)加法器, 16 個(gè)寄存器。而由此可見采用折疊結(jié)構(gòu)實(shí)現(xiàn)半帶濾波器的設(shè)計(jì)能夠大大減少資源的耗費(fèi),而且整個(gè)過(guò)程沒有用到乘法器只是用到少量的加法器和寄存器,減少了大量的乘法帶來(lái)的額外的面積和功耗。同時(shí)本設(shè)計(jì)還經(jīng)過(guò)硬件電路的驗(yàn)證,工作正常穩(wěn)定,符合設(shè)計(jì)要求。

基于折疊結(jié)構(gòu)的11階半帶濾波器仿真圖

圖3 基于折疊結(jié)構(gòu)的11階半帶濾波器仿真圖

基于折疊結(jié)構(gòu)的11階半帶濾波器綜合報(bào)告圖

圖4 基于折疊結(jié)構(gòu)的11階半帶濾波器綜合報(bào)告圖

4 結(jié)論

本文以11階半帶濾波器的設(shè)計(jì)為例,介紹了折疊技術(shù)在半帶濾波器上的應(yīng)用。與傳統(tǒng)的設(shè)計(jì)相比其有很大的優(yōu)越性和突破,單一時(shí)鐘控制,并且設(shè)計(jì)過(guò)程當(dāng)中沒用到乘法器,大大減少了硬件資源,同時(shí)也使設(shè)計(jì)面積和功耗大為減少,穩(wěn)定性高!

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。