徐 波
(中國西南電子技術(shù)研究所,四川 成都 610036)
Joe Mitola 博士在1992 年美國通信系統(tǒng)會議上首次明確提出了可編程或可重構(gòu)無線電系統(tǒng)的概念。理想的軟件無線電架構(gòu)如圖1 所示,在信號接收側(cè):由天線接收的無線電信號經(jīng)過低噪聲放大后,利用數(shù)模轉(zhuǎn)換器(ADC)對信號進(jìn)行數(shù)字化處理,數(shù)字化處理的信號經(jīng)過FPGA/DSP 等完成數(shù)字下變頻、數(shù)字濾波、數(shù)字解調(diào)等信 號處理任務(wù)后送給控制與接口模塊;在信號發(fā)射側(cè):從接口過來的基帶信號會通過FPGA/DSP 完成數(shù)字調(diào)制、數(shù)字上變頻和數(shù)字濾波等信號處理任務(wù),再經(jīng)模數(shù)轉(zhuǎn)換器(DAC)變換為模擬信號,最后經(jīng)功率放大器放大到足夠功率,再由天線發(fā)射出去[1]。
圖1 理想的軟件無線電架構(gòu)
在某型信號處理系統(tǒng)中,包含信號接收ADC 以及FPGA 處理等部分,數(shù)據(jù)采樣相關(guān)的電路如圖2 所示。該信號處理模塊中共有三個模數(shù)轉(zhuǎn)換模塊ADC,一個時鐘產(chǎn)生模塊,一個主FPGA(FPGA1),一個控制FPGA(FPGA2)。其中模數(shù)轉(zhuǎn)換模塊ADC 的最高采樣率為1 GS/s,采樣位數(shù)14 bit,經(jīng)過JESD204B 接口得到采樣數(shù)據(jù)。時鐘生成模塊共有14 路輸出時鐘,分別給ADC 和主FPGA(FPGA1)輸出采樣時鐘、JESD204B 參考時鐘和工作時鐘??刂艶PGA(FPGA2)通過SPI 接口實(shí)現(xiàn)對ADC 和時鐘產(chǎn)生模塊的工作模式控制,以及通過兩塊FPGA 間的互連來實(shí)現(xiàn)對主FPGA 工作模式控制。主FPGA (FPGA1) 通過JESD204B IP 核接收ADC 的采樣數(shù)據(jù),并進(jìn)行數(shù)據(jù)組合和簡單處理,然后送至后續(xù)信號處理單元使用。
圖2 信號處理模塊模數(shù)轉(zhuǎn)換相關(guān)電路
系統(tǒng)中的三個相同的ADC 模塊,每個ADC 的采樣率必須在320 MS/s、360 MS/s、575 MS/s 三個特殊頻點(diǎn)下工作,且支持在線更新。要求在對任意一個ADC 的采樣率更新時,不能影響其他ADC 的正常工作。但是時鐘生成模塊無法輸出320 MHz 時鐘,這就使得ADC 無法在320 MS/s 采樣頻點(diǎn)下進(jìn)行工作。
為了滿足系統(tǒng)對320 MS/s 采樣率的需求,同時為了獲取更加穩(wěn)定的、抖動小的時鐘輸出,設(shè)計(jì)采用時鐘模塊生成了穩(wěn)定可靠的960 MHz 時鐘輸出,并將該時鐘信號與ADC 連接,然后在主FPGA 內(nèi)做3 倍抽樣,將采樣率降到320 MS/s,最終輸出320 MS/s 的采樣數(shù)據(jù)。
假設(shè)輸入信號為x[n],濾波器的單位沖擊響應(yīng)為h[n],由卷積定理可得到濾波器輸出y[n]:
式(1)單位沖擊響應(yīng)h[n]中n 的取值范圍為0,1,2,…,N-1,對h[n]做4 倍多相分解,則有h[n]、h[n+1]、h[n+2]、h[n+3],n 的取值范圍為0,1,2,…,N/4-1,那么式(1)變?yōu)椋?/p>
JESD204B 將輸入信號做了1:4 的串并轉(zhuǎn)換,即一個時鐘周期輸入四個數(shù)據(jù)x[4n]、x[4n-1]、x[4n-2]、x[4n-3],數(shù)據(jù)流如圖3 所示。
圖3 四路并行數(shù)據(jù)流
因此在做濾波處理時應(yīng)該采用并行算法,濾波器每個周期輸入四個數(shù)據(jù),同時每個周期輸出四個濾波后的數(shù)據(jù)。那么變?yōu)椋?/p>
變換成卷積表示方式,則式(3)變?yōu)椋?/p>
那么y[4n]的實(shí)現(xiàn)方式如圖4 所示。
圖4 四路并行濾波結(jié)構(gòu)
同理可得到y(tǒng)[4n-1]、y[4n-2]、y[4n-3]的表達(dá)式為:
最終,四路并行濾波算法實(shí)現(xiàn)框圖如圖5 所示。
圖5 四路并行濾波算法實(shí)現(xiàn)框圖
濾波結(jié)束對輸出信號進(jìn)行抽樣,即對數(shù)據(jù)y[4n]、y[4n-1]、y[4n-2]、y[4n-3]并行輸出信號進(jìn)行抽取處理。
根據(jù)第一節(jié)對四路并行濾波算法的設(shè)計(jì),對該算法進(jìn)行仿真,驗(yàn)證算法能否按照系統(tǒng)要求正確濾波輸出。設(shè)置采樣頻率fs=960 MHz,輸入10 MHz、380 MHz 疊加的正弦波信號,對該信號添加SNR=5 dB 的噪聲干擾,輸入信號的幅頻響應(yīng)如圖6 所示。
圖6 輸入信號幅頻響應(yīng)
對輸入信號進(jìn)行1:4 的串并轉(zhuǎn)換,將信號分解成四路信號并行輸出。該四路信號經(jīng)由各自的FIR 低通濾波器進(jìn)行濾波,濾波器階數(shù)取32,F(xiàn)IR 低通濾波器的系數(shù)設(shè)置為1/3。最后對四路并行信號進(jìn)行并串轉(zhuǎn)換,對轉(zhuǎn)換后的信號進(jìn)行分析,結(jié)果如圖7 所示,證明經(jīng)過四路并行濾波算法后能夠正確得到10 MHz、380 MHz 兩個頻點(diǎn)。仿真完成后,在MATLAB 中提取四路低通濾波器的參數(shù)并對其進(jìn)行量化,該參數(shù)值主要輔助后續(xù)的FPGA 實(shí)現(xiàn)。
圖7 四路并行濾波輸出幅頻響應(yīng)
信號處理模塊主要選取Xilinx 公司FPGA,四路并行濾波模塊的實(shí)現(xiàn)如圖8 所示,該模塊主要用來實(shí)現(xiàn)圖3中的四路并行濾波結(jié)構(gòu),是四路并行抽樣算法的基本處理單元。該模塊主要功能是輸入的四路數(shù)據(jù)送入FIR低通濾波器進(jìn)行濾波,并將濾波后的數(shù)據(jù)累加后輸出,data0_i~data3_i 表示JESD204B 輸出數(shù)據(jù),data_o 表示濾波、累加后的輸出信號,該信號會送給降樣模塊進(jìn)行抽樣。FIR低通濾波器采用Xilinx 公司的IP core,濾波器的參數(shù)在算法驗(yàn)證階段產(chǎn)生,該參數(shù)值直接與IP core 結(jié)合使用。
圖8 四路并行濾波通道模塊框圖
利用MATLAB 對算法仿真中產(chǎn)生輸入信號進(jìn)行1:4的串并轉(zhuǎn)換,并將轉(zhuǎn)換完的數(shù)據(jù)作為激勵分別送給data0_i~data3_i,輸入時鐘clk 為240 MHz,data_o 表示輸出,四路并行濾波通道的仿真結(jié)果如圖9 所示,表明通過濾波后,信號正常輸出。
圖9 四路并行濾波通道模塊的仿真結(jié)果
以四路并行濾波模塊為基礎(chǔ),對四路并行抽樣算法進(jìn)行了FPGA 實(shí)現(xiàn),如圖10 所示,sample_clk 表示抽樣時鐘240 MHz;down_sample_clk 表示抽樣時鐘80 MHz;down_sample_data0~down_sample_data3 表示抽樣數(shù)據(jù);para_fir_channel0~para_fir_channel3 為四個并行濾波模塊,四個模塊分別用來對JESD204B 輸出的四路信號進(jìn)行濾波等處理;deci_filter 為降樣模塊,該模塊主要用于在并行濾波模塊分別對四路信號處理完成后,將輸出信號送給降樣模塊進(jìn)行抽取處理,抽取后的信號再送至后續(xù)信號處理單元使用。
圖10 四路并行抽樣算法實(shí)現(xiàn)框圖
四路并行抽樣算法的仿真結(jié)果如圖11 所示,與上一節(jié)四路并行濾波的仿真方法類似,仍然利用MATLAB 對算法仿真中產(chǎn)生輸入信號進(jìn)行1:4 的串并轉(zhuǎn)換,并將該四路信號作為激勵分別送給data0_i~data3_i,圖11 中選取了第1 路數(shù)據(jù)作展開,其中data_o_deci 表示para_fir_channel 模塊送給deci_filter 的數(shù)據(jù)信號,data0_o 表示抽樣信號。由data_o_deci 的信號波形分析四路信號在通過四路并行濾波模塊后,信號被正確濾波輸出;同時濾波信號經(jīng)過降樣模塊,信號正確抽取。
圖11 四路并行抽樣算法的仿真結(jié)果
在完成四路并行抽樣算法的FPGA 實(shí)現(xiàn)和仿真驗(yàn)證后,將代碼綜合后下載到信號處理模塊進(jìn)行測試。測試框圖如圖12 所示,時鐘源向信號處理模塊提供工作時鐘,同時信號發(fā)生器向信號處理模塊發(fā)送測試信號,信號處理模塊將對測試信號先進(jìn)行濾波,然后抽樣輸出,Vivado 對輸出信號進(jìn)行采集,MATLAB 對采集的輸出信號進(jìn)行分組分析,判斷結(jié)果是否正確。
圖12 信號處理模塊測試框圖
如果要查看更多的信號,圖12 的測試系統(tǒng)的局限性就比較大,因?yàn)椴榭吹男盘栐蕉啵琕ivado 中需要插入的探針(probe)就越多,這樣導(dǎo)致的結(jié)果就是面積的增加和時序的劣化,而且可能會多次迭代綜合,耗費(fèi)的時間長,從而大大降低了工作效率。因而,搭建一個信號處理模塊、MATLAB、Questasim 和Vivado 的軟硬件聯(lián)合調(diào)試環(huán)境就顯得尤其必要。在該調(diào)試環(huán)境中,只需要Vivado 采集模塊的接口和一些關(guān)鍵信號以外,利用Questasim 仿真工具查看模塊內(nèi)部的信號,這樣除了減少了面積,對時序影響也比較小,同時還提高了調(diào)試效率。該軟件硬件聯(lián)合調(diào)試環(huán)境如圖13 所示,信號發(fā)生器向信號處理模塊送入信號后,Vivado 可以對模塊接口和一些關(guān)鍵信號的信號進(jìn)行采集,此時Questasim 利用這些采集的信號作為輸入激勵進(jìn)行仿真,MATLAB 收集仿真結(jié)果并進(jìn)行分組、串并轉(zhuǎn)換等處理,或者將Questasim 輸出的仿真結(jié)果與Vivado 采集的輸出結(jié)果進(jìn)行對比,用來判斷結(jié)果是否正確。
圖13 軟硬件協(xié)同聯(lián)合調(diào)試系統(tǒng)框圖
軟硬件聯(lián)合調(diào)試環(huán)境搭建完成后,信號處理模塊選擇多個頻率進(jìn)行測試,實(shí)驗(yàn)結(jié)果證明均能輸出正確的采樣信號。以66 MHz 和74 MHz 為例,其中圖14 是66 MHz的幅頻響應(yīng),圖15 是74 MHz 的幅頻響應(yīng)。
圖14 66 MHz 幅頻響應(yīng)
圖15 74 MHz 幅頻響應(yīng)
四路并行抽樣算法的設(shè)計(jì)主要為了解決ADC 在320 MS/s 采樣率下,經(jīng)由JESD204B 接收的信號在FPGA中無法處理的問題。在實(shí)際測試中將ADC 設(shè)置在960 MS/s的采樣頻點(diǎn),信號經(jīng)過JESD204B 轉(zhuǎn)換為4 路并行信號,分別對該四路信號進(jìn)行濾波、抽樣,將采樣率降樣到320 MS/s,最終輸出正確的抽樣數(shù)據(jù),經(jīng)過試驗(yàn)證明該四路并行抽樣算法模塊能滿足系統(tǒng)對320 MS/s 采樣率的要求。