一、引言
當(dāng)今許多電信公司正密切關(guān)注著他們所致力的3G產(chǎn)品的研制和開發(fā),例如移動終端、基站以及其它大量的網(wǎng)絡(luò)設(shè)備。無可置疑地,3G產(chǎn)品和業(yè)務(wù)已經(jīng)成為無線通信市場的主流,而其中CDMA,尤其是寬帶CDMA(W-CDMA)憑借著其高性能、在系統(tǒng)容量運用中的高效性以及物理資源使用中的便捷性,日益成為3G技術(shù)中的主導(dǎo)。
為了滿足3G的高技術(shù)復(fù)雜度以及高信號處理要求,基于FPGA/ASIC的專用硬件必須要符合不同用戶產(chǎn)品的規(guī)格。也就是說,在3G無線終端發(fā)展中,產(chǎn)品的尺寸、重量以及功率消耗這些參數(shù)將是十分關(guān)鍵和重要的決定因素。由此,系統(tǒng)芯片(SoC)作為一門新的設(shè)計方略被引入了3G的發(fā)展。SoC要求能夠?qū)^(qū)域有效信號處理算法與結(jié)構(gòu)的設(shè)計、發(fā)展都集成在一塊小的芯片上。
數(shù)字濾波器作為信號處理中最為常見的元件,被廣泛地應(yīng)用于無線通信的各個部分中。本文針對3G標(biāo)準(zhǔn)CDMA 2000中的脈沖成形FIR濾波器的ASIC實現(xiàn)進行討論,并在此提出一種實效的實現(xiàn)結(jié)構(gòu):基于分布式運算(DA)結(jié)構(gòu)的查表法。
二、脈沖成形濾波器
脈沖成形濾波器常用于旨在提高信號頻譜傳輸效率的基帶通信傳輸中。經(jīng)過D/A轉(zhuǎn)換后的成形濾波器通常是被設(shè)計為FIR濾波器,其作用是[1]:將信號的同相(I)和正交(Q)符號轉(zhuǎn)換為模擬的I、Q信號。
一般來說,F(xiàn)IR濾波器是需要有一個升余弦或者是平方根升余弦成形脈沖響應(yīng)的。這里需要注意的是,成形濾波器的采樣速率一般要求比輸入的I、Q符號速率要高(通常是其4~8倍)。因此,在此要有一個先于脈沖成形的過采樣。圖1描述了典型的成形過程,其中過采樣通過在連續(xù)的輸入采樣值中插入M-1個零值來實現(xiàn)的。CDMA2000標(biāo)準(zhǔn)中,對1個擴頻速率的系統(tǒng)(碼片速率=1.2288 MCPS),用48階對稱系數(shù)FIR濾波器;對3個擴頻速率的系統(tǒng)(碼片速率=3×1.2288 MCPS),用108階的濾波器。由于濾波器運行在4倍碼片速率下,因此輸入的I、Q符號應(yīng)該是過采樣的4倍,即圖1中M=4。
假設(shè)FIR濾波器傳遞函數(shù)為H(z),根據(jù)十進制/插補理論[2],通過如圖2所示對H(z)的多相分解(在圖中設(shè)M=4),能更有效地完成過采樣及濾波器功能。在圖2中,Hk(z)表示子濾波器的傳遞函數(shù),其脈沖響應(yīng)hk(n)=h(4n+k), n=0,1,…11是由對h(n)抽值得出的。多相結(jié)構(gòu)的優(yōu)點在于:單個子濾波器是工作在較低的抽樣速率上的,而將4個子濾波器相結(jié)合后,其系數(shù)總值與原來濾波器的H(z)系數(shù)相當(dāng)。也就是說,采用這個方法,整體的計算總量能減少3/4。同時從圖2可以看出,這種方法需要用到4個濾波器,因此就硬件的有效性來說,這并不是最理想的。
下面將介紹一種結(jié)構(gòu),對于ASIC來說它更加得實際、實效,同時也保留了多相分解的優(yōu)點。
三、分布式運算體系
在分布式運算(DA)運算法則中,濾波器的輸出可以表示為
其中ak是固定的濾波器系數(shù);
xk是輸入數(shù)據(jù)字。
如果將xk表示成B比特的二進制補碼,|xk|<1,則有
其中bki取值為0或是1,bk0是符號位,bk0為1表示數(shù)據(jù)為負,bk0為0表示數(shù)據(jù)為正;bk,B-1是最低有效位(LSB)。將(2)式和(1)式合并后,我們可以得到y(tǒng)具體的比特位表達式[3]:
由于bki取值只有0或1, 則(4)式的值有2N種可能性。因此,可以預(yù)先算出這2N個局部結(jié)果并存放在一個固定的表中(表的寬度為對系數(shù)ak定義的寬度,深度為2N),N是能夠?qū)?shù)據(jù)源抽樣數(shù)據(jù)進行處理的數(shù)據(jù)長度[3]。然后按照輸入的數(shù)據(jù),直接對該表尋址并將結(jié)果導(dǎo)入累加器中。在B-1次查表之后,累加器的寄存器存儲有(3)式第一項所示的結(jié)果。最后一個查表給出局部結(jié)果,也就是(3)式中的第二項,用于表示符號位,并且在寄存器的右移位操作中不包括該項,即將它從寄存器的右移過程中減去。因此,在整個程序中只有在符號位時鐘上會使用減法控制。