新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 寬帶數字接收機的信道化設計

        寬帶數字接收機的信道化設計

        作者: 時間:2010-03-09 來源:網絡 收藏
        MATLAB中的firpmord函數,一般采用的是最佳逼近最大最小準則算法,該算法可以求出原型低通濾波器的階數,而firpm函數可以求出原型低通濾波器的系數。即:

        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]表示通帶、阻帶波動均為0.001;64表示采樣頻率為64MHz。

        而在(4)式中,[04/32 8/32 1]分別為對應于實際頻率0、4、8、32(MH)的歸一化頻率;[1 1 0 0]為上述頻率點上的幅度值。

        求出原低通濾波器h(n)后,就可以求出多相濾波器的多相分量。圖2中的多相分量是對h(n)進行8倍抽取,再做兩倍內插得到的。用MATLAB語句可方便地得到各多相分量的系數,每個多相分量有6個非零系數,兩倍內插后為12個系數。其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

        一個多相分量的濾波運算可用三個乘加單元完成,每個乘加單元有四個乘法器,這樣就可以完成12個系數的乘加。多相分量的濾波系數一般事先都將其轉換為二進制補碼存放在ROM中。

        由上述分析可知,每個時鐘節拍可完成兩個的延遲和抽取(采用流水線操作),每個時鐘節拍需要進行兩個多相分量的乘加運算,即需要同時得到12個非零系數,這可用12個單口ROM實現。其中6個ROM存放1~4的系數。另6個ROM存放5~8通道的系數。其存儲格式如表2和表3所列。



        這樣,每當時鐘上升沿到來時,就可以同時輸出兩個子的12個非零系數。通常可以設計一個模4減法計數器來實現ROM地址的產生。當數據準備好后,發出一個計數器的使能信號,計數器開始計數。因為首先計算的是4信道和8信道,所以,計數器的初始值為3,采用減一計數,計數到0后再進行循環。

        2.3 時序的設計

        由于信號s(n)的輸入速率為64 MHz。故在64 MHz時鐘驅動下,每一個節拍計算兩個子信道,8個信道的計算需要用4個節拍來完成,并得到8個復數。這8個復數必須同時進入FFT模塊,所以,可在FFT之前設計一組乒乓RAM來接收這8個復數。其中一個RAM以64 MHz的速率存放前面的計算結果,每個節拍接收兩個復數,4個節拍接收完8個復數后開始FFT運算,同時換成另一個RAM接收前面的計算結果。等到8個復數都存放好之后,再開始FFT運算,此時又再次換成第一個RAM接收前面的計算結果,并依次循環。根據這樣的時序設計,FFT模塊的時鐘應為16 MHz。FFT運算由IP核完成。經FFT運算后同時可得到8個復數形式的結果,由于復數分成實虛部的表示形式,且實虛部都用32位二進制數表示,因此,8個復數需要16個32位的二進制數表示,也就是芯片上需要16×32=512個引腳,這對于任何芯片都是不可能辦到的。為此,應在FFT模塊的輸出端也設計一個乒乓RAM。其中一個RAM先將8個FFT運算結果存儲起來,然后以64 MHz的時鐘頻率每個節拍向外輸出兩個復數(即4個32為二進制數),直到4個節拍全部輸出完畢(即8個復數全部輸出的頻率為16 MHz),同時另一個RAM以16MHz的時鐘頻率接收FFT的運算結果。然后將兩個RAM的作用交換,再以此循環。

        3 結束語

        本文詳細分析了復信號多相濾波器的無盲區改進算法,并根據推導出的數學模型完成了其FPGA的設計。該設計根據信道數和抽取因子之間的倍數關系,解決了延遲和抽取功能的實現問題,并使用乒乓RAM實現了復信號多相濾波器的多通道流水線輸出。

        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 太谷县| 德庆县| 城步| 文登市| 普兰县| 浮梁县| 涞水县| 新宾| 德昌县| 饶阳县| 兴仁县| 阿合奇县| 竹溪县| 余庆县| 兴海县| 怀柔区| 罗源县| 遵化市| 本溪市| 界首市| 济南市| 巩义市| 得荣县| 镇雄县| 新泰市| 额尔古纳市| 安国市| 湟源县| 思南县| 安福县| 朝阳市| 凤山县| 吉林市| 申扎县| 信宜市| 明星| 确山县| 都兰县| 大港区| 双城市| 乐安县|