寬帶數(shù)字接收機(jī)的信道化設(shè)計(jì)
a=firpmord([4 8],[1 0],[0.001 0.001],64);(3)
h=firpm(a,[0 4/32 8/32 1],[1 1 0 0]); (4)
(3)式中, [4 8]表示通帶截止頻率為4MHz,阻帶截止頻率為8 MHz; [1 0]表示通帶幅度為1,阻帶幅度為0; [0.001 0.001]表示通帶、阻帶波動(dòng)均為0.001;64表示采樣頻率為64MHz。
而在(4)式中,[04/32 8/32 1]分別為對(duì)應(yīng)于實(shí)際頻率0、4、8、32(MH)的歸一化頻率;[1 1 0 0]為上述頻率點(diǎn)上的幅度值。
求出原低通濾波器h(n)后,就可以求出多相濾波器的多相分量。圖2中的多相分量是對(duì)h(n)進(jìn)行8倍抽取,再做兩倍內(nèi)插得到的。用MATLAB語句可方便地得到各多相分量的系數(shù),每個(gè)多相分量有6個(gè)非零系數(shù),兩倍內(nèi)插后為12個(gè)系數(shù)。其MATLAB語句如下:
hp=zeros(8,2*fix(length(h)/8));
for i=1:8
hp (i,1:2:end)=h(i:8:(fix(lengh (h)/8)-1)*8+i);
end
一個(gè)多相分量的濾波運(yùn)算可用三個(gè)乘加單元完成,每個(gè)乘加單元有四個(gè)乘法器,這樣就可以完成12個(gè)系數(shù)的乘加。多相分量的濾波系數(shù)一般事先都將其轉(zhuǎn)換為二進(jìn)制補(bǔ)碼存放在ROM中。
由上述分析可知,每個(gè)時(shí)鐘節(jié)拍可完成兩個(gè)信道的延遲和抽取(采用流水線操作),每個(gè)時(shí)鐘節(jié)拍需要進(jìn)行兩個(gè)多相分量的乘加運(yùn)算,即需要同時(shí)得到12個(gè)非零系數(shù),這可用12個(gè)單口ROM實(shí)現(xiàn)。其中6個(gè)ROM存放1~4信道的系數(shù)。另6個(gè)ROM存放5~8通道的系數(shù)。其存儲(chǔ)格式如表2和表3所列。
這樣,每當(dāng)時(shí)鐘上升沿到來時(shí),就可以同時(shí)輸出兩個(gè)子信道的12個(gè)非零系數(shù)。通常可以設(shè)計(jì)一個(gè)模4減法計(jì)數(shù)器來實(shí)現(xiàn)ROM地址的產(chǎn)生。當(dāng)數(shù)據(jù)準(zhǔn)備好后,發(fā)出一個(gè)計(jì)數(shù)器的使能信號(hào),計(jì)數(shù)器開始計(jì)數(shù)。因?yàn)槭紫扔?jì)算的是4信道和8信道,所以,計(jì)數(shù)器的初始值為3,采用減一計(jì)數(shù),計(jì)數(shù)到0后再進(jìn)行循環(huán)。
2.3 時(shí)序的設(shè)計(jì)
由于信號(hào)s(n)的輸入速率為64 MHz。故在64 MHz時(shí)鐘驅(qū)動(dòng)下,每一個(gè)節(jié)拍計(jì)算兩個(gè)子信道,8個(gè)信道的計(jì)算需要用4個(gè)節(jié)拍來完成,并得到8個(gè)復(fù)數(shù)。這8個(gè)復(fù)數(shù)必須同時(shí)進(jìn)入FFT模塊,所以,可在FFT之前設(shè)計(jì)一組乒乓RAM來接收這8個(gè)復(fù)數(shù)。其中一個(gè)RAM以64 MHz的速率存放前面的計(jì)算結(jié)果,每個(gè)節(jié)拍接收兩個(gè)復(fù)數(shù),4個(gè)節(jié)拍接收完8個(gè)復(fù)數(shù)后開始FFT運(yùn)算,同時(shí)換成另一個(gè)RAM接收前面的計(jì)算結(jié)果。等到8個(gè)復(fù)數(shù)都存放好之后,再開始FFT運(yùn)算,此時(shí)又再次換成第一個(gè)RAM接收前面的計(jì)算結(jié)果,并依次循環(huán)。根據(jù)這樣的時(shí)序設(shè)計(jì),F(xiàn)FT模塊的時(shí)鐘應(yīng)為16 MHz。FFT運(yùn)算由IP核完成。經(jīng)FFT運(yùn)算后同時(shí)可得到8個(gè)復(fù)數(shù)形式的結(jié)果,由于復(fù)數(shù)分成實(shí)虛部的表示形式,且實(shí)虛部都用32位二進(jìn)制數(shù)表示,因此,8個(gè)復(fù)數(shù)需要16個(gè)32位的二進(jìn)制數(shù)表示,也就是芯片上需要16×32=512個(gè)引腳,這對(duì)于任何芯片都是不可能辦到的。為此,應(yīng)在FFT模塊的輸出端也設(shè)計(jì)一個(gè)乒乓RAM。其中一個(gè)RAM先將8個(gè)FFT運(yùn)算結(jié)果存儲(chǔ)起來,然后以64 MHz的時(shí)鐘頻率每個(gè)節(jié)拍向外輸出兩個(gè)復(fù)數(shù)(即4個(gè)32為二進(jìn)制數(shù)),直到4個(gè)節(jié)拍全部輸出完畢(即8個(gè)復(fù)數(shù)全部輸出的頻率為16 MHz),同時(shí)另一個(gè)RAM以16MHz的時(shí)鐘頻率接收FFT的運(yùn)算結(jié)果。然后將兩個(gè)RAM的作用交換,再以此循環(huán)。
3 結(jié)束語
本文詳細(xì)分析了復(fù)信號(hào)多相濾波器的無盲區(qū)改進(jìn)算法,并根據(jù)推導(dǎo)出的數(shù)學(xué)模型完成了其FPGA的設(shè)計(jì)。該設(shè)計(jì)根據(jù)信道數(shù)和抽取因子之間的倍數(shù)關(guān)系,解決了延遲和抽取功能的實(shí)現(xiàn)問題,并使用乒乓RAM實(shí)現(xiàn)了復(fù)信號(hào)多相濾波器的多通道流水線輸出。
評(píng)論