高階QAM定時同步的FPGA設(shè)計實現(xiàn)
摘 要: 在基于軟件無線電數(shù)字接收機(jī)技術(shù)的研究中,定時同步是一項關(guān)鍵技術(shù)。文中設(shè)計的定時同步結(jié)構(gòu)采用了基于Farrow結(jié)構(gòu)的內(nèi)插濾波器,同時以改進(jìn)的Gardner定時誤差計算方法提取采樣相位誤差,該方法對載波相位不敏感,可先獨立于載波同步單獨使用,適用于高階QAM信號的定時同步。以128 QAM為例,對整個系統(tǒng)進(jìn)行了仿真驗證,并且在FPGA平臺上實現(xiàn)了該算法,收到良好的效果,具有很好的通用性和可移植性。
關(guān)鍵詞:定時同步;Gardner算法;高階QAM;FPGA
目前,基于軟件無線電的數(shù)字接收機(jī),其定時同步主要采用異步采樣恢復(fù),即采樣時鐘獨立工作,通過估算定時誤差,控制內(nèi)插濾波器內(nèi)插出最佳采樣時刻的值。常用的定時誤差估計算法主要有:遲早門算法、米勒-穆雷算法、Gardner算法。其中遲早門算法和米勒-穆雷算法都對載波相位敏感。Gardner算法[1]每個符號需要兩個采樣點,雖然計算量比米勒-穆雷算法稍大,但對載波頻偏和相位不敏感,可提前獨立于載波同步完成,降低了系統(tǒng)復(fù)雜度。
QAM調(diào)制方式特別是高階QAM調(diào)制因其較高的頻譜利用率得到了廣泛應(yīng)用,但是高階QAM數(shù)字接收機(jī)算法的運算量也相對較大。隨著FPGA芯片集成度的提高,現(xiàn)在可以在像Altera Cyclone3 這種低成本FPGA上實現(xiàn)較復(fù)雜的算法。本文針對128 QAM調(diào)制信號,設(shè)計了定時同步算法結(jié)構(gòu),并且用MATLAB做了仿真驗證,最后在FPGA平臺上實現(xiàn)了該算法。
1 定時同步結(jié)構(gòu)設(shè)計
1.1 算法結(jié)構(gòu)
定時同步結(jié)構(gòu)如圖1所示。該結(jié)構(gòu)是基于Gardner算法[2]而設(shè)計的,包括用來進(jìn)行符號采樣的內(nèi)插濾波器、定時誤差檢測器、環(huán)路濾波器、插值控制器。其中,內(nèi)插濾波器從輸入的非同步被測基帶I/Q采樣信號中恢復(fù)出發(fā)送的符號,而定時恢復(fù)環(huán)路用來控制內(nèi)插濾波器的插值相位。定時誤差檢測器提取出當(dāng)前采樣相位誤差,將其送入環(huán)路濾波器濾波后控制NCO的振蕩頻率。當(dāng)被測信號等效采樣無相偏時,環(huán)路進(jìn)入穩(wěn)定狀態(tài),此時NCO的振蕩頻率就等于實際被測信號的碼率或碼率的整數(shù)倍[3]。下面只對定時同步的關(guān)鍵結(jié)構(gòu)進(jìn)行闡述。
1.2 插值濾波器
插值濾波器是符號定時同步的核心部分。高階QAM對插值精度的要求非常高,傳統(tǒng)的內(nèi)插濾波器如線性內(nèi)插、3次立方內(nèi)插、帶參數(shù)的4點分段擬合內(nèi)插等已不能滿足要求。插值濾波器的設(shè)計關(guān)鍵是插值函數(shù)的設(shè)計,由于多項式內(nèi)插函數(shù)能夠用Farrow結(jié)構(gòu)實現(xiàn),運算量較低,所以插值函數(shù)最好能夠用多項式擬合實現(xiàn)。參考文獻(xiàn)[4]給出了一種基于多項式插值濾波器的設(shè)計方法。這種多項式內(nèi)插濾波器通過在通帶和阻帶上設(shè)置需要的幅度和加權(quán)系數(shù),結(jié)合最優(yōu)化算法和具體要求的頻帶特性,可以實現(xiàn)頻域上的任意頻響。
1.3 定時誤差提取
傳統(tǒng)Gardner算法是針對BPSK/QPSK調(diào)制信號提出的,不適用于高階QAM這種多電平信號,必須對傳統(tǒng)Gardner算法進(jìn)行改進(jìn)。改進(jìn)Gardner算法的思路是改變其只對零點檢測有效性的缺點,將中間值y((n-1/2)T+t)歸零化即可[5]。改進(jìn)的定時誤差提取公式為:
2 MATLAB仿真分析
仿真參數(shù)設(shè)置:128 QAM調(diào)制、升余弦滾降系數(shù)0.1、信噪比23 dB、定時延遲0.6個碼元時間、載頻124 MHz、采樣率102.4 MHz,匹配濾波器為100階。
從圖2中可以看出,分?jǐn)?shù)延遲收斂于0.6處,波動小于0.01,表明定時同步環(huán)路完全收斂。圖3是定時同步收斂后的輸出信號星座圖,可以看出星座點非常集中,星座間隔清晰,信噪比由于匹配濾波器作用有了大幅度提高,能夠很好地實現(xiàn)符號判決。
3 定點仿真到FPGA設(shè)計實現(xiàn)
定點仿真是在浮點仿真的基礎(chǔ)上,通過限定各個變量的精度,分析有限字長對系統(tǒng)性能的影響,權(quán)衡資源消耗和系統(tǒng)性能,從而得出各個信號合適的位寬,為FPGA實現(xiàn)做好準(zhǔn)備。
圖4是定時同步硬件實現(xiàn)的系統(tǒng)框圖。clk是I、Q兩路輸入信號的同步時鐘,也是主系統(tǒng)時鐘,此處為102.4 MHz(系統(tǒng)采樣率)。reset是全局同步復(fù)位信號,當(dāng)其為有效電平時,步長w初始化為Ts/Ti,這里為0.5;分?jǐn)?shù)間隔u可以初始化為任何值,這里取0;其余寄存器都初始化為0。I_in和Q_in是定時同步的兩路輸入信號,從整個接收機(jī)的角度來看是DDC模塊的輸出。I_out和Q_out是定時同步的輸出數(shù)據(jù),送給接收機(jī)的均衡模塊。clkout是輸出數(shù)據(jù)的同步時鐘。control模塊就是1.4節(jié)中的插值控制器,當(dāng)數(shù)控振蕩器溢出,插值控制信號nco為1,同時按式(3)更新分?jǐn)?shù)間隔u;當(dāng)數(shù)控振蕩器不溢出,則信號nco為0,分?jǐn)?shù)間隔u保持原值。這兩個信號(nco和u)與I、Q兩路輸入信號一起送給interpolator模塊(插值濾波器),需要強(qiáng)調(diào)的是,nco信號也作為后面兩個模塊的控制信號,用以控制數(shù)據(jù)流動的節(jié)拍。兩路數(shù)據(jù)經(jīng)過match_filter模塊(匹配濾波器)后進(jìn)入err_step模塊,該模塊包括定時誤差提取和環(huán)路濾波器兩個部分,用以得到步長w的更新值然后反饋給control模塊進(jìn)行下一輪的計算,并且對其輸入數(shù)據(jù)進(jìn)行兩倍抽取得到定時同步的輸出信號。
圖5是Quartus功能仿真波形圖,可以看出環(huán)路收斂前nco信號存在一定的抖動,導(dǎo)致輸出時鐘clkout并不是規(guī)則的時鐘信號,同樣存在抖動。環(huán)路內(nèi)部的數(shù)據(jù)流動都是在nco信號的控制節(jié)拍下進(jìn)行的。