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