李淑婧 王蕾 張東偉 張帆
關(guān)鍵詞: 修正恒模算法; QPSK信號; 高時鐘; 流水線結(jié)構(gòu); 乘法器復(fù)用; 盲均衡
中圖分類號: TN919?34 ? ? ? ? ? ? ? ? ? ? ? ? ?文獻標(biāo)識碼: A ? ? ? ? ? ? ? ? ? ? ? ? 文章編號: 1004?373X(2019)01?0009?05
Abstract: The modified constant modulus algorithm (MCMA) acts as an efficient blind equalization algorithm for QPSK signal. The blind equalization algorithm using MCMA was implemented by adopting pipeline architecture on Artix?7 series XC7A200T?2SBG484 chip, and combining the modes of high clock and multiplier reuse. The restrictive relationship between step parameter and algorithm performance is verified, and the optimized step parameter is selected. On the premise of guaranteeing the bit error rate and convergence speed of the algorithm, the implementation complexity of algorithm is reduced effectively, and the satisfied equalization effect is realized with less hardware resources. The data collected from the flight test is applied to the equalizer. The verification results show that the equalizer with less hardware resources can achieve high performance, and the demodulation signal?to?noise ratio of the receiving end is reduced by 4 dB.
Keywords: modified constant modulus algorithm; QPSK signal; high clock; pipeline architecture; multiplier reuse; blind equalization
在無線通信信號傳輸過程中,有限的傳輸帶寬,多徑效應(yīng),以及加性噪聲等因素導(dǎo)致接收端在數(shù)據(jù)抽樣時產(chǎn)生符號間干擾,從而降低了信號的傳輸效率和傳輸質(zhì)量[1]。信道均衡可以消除符號間干擾和補償信道失真,從而降低誤碼率,提高通信質(zhì)量。
早期的自適應(yīng)均衡算法需要在發(fā)送端的幀結(jié)構(gòu)中插入訓(xùn)練序列,以便實時跟蹤信道特性變化,但如此會降低信道頻譜利用率,浪費帶寬資源[2]。相比之下,盲均衡算法不需要發(fā)送訓(xùn)練序列,僅利用發(fā)送信號的特征進行均衡,此特性使其成為通信領(lǐng)域的研究熱點。幾十年以來,針對不同的應(yīng)用需求,研究者進行了大量卓有成效的研究,進而提出了多種盲均衡算法,其中最具代表性的是Godard算法[3]。當(dāng)代價函數(shù)的階數(shù)取2時,得到Godard算法的一個特例——恒模算法(Constant Modulus Algorithm,CMA)[4]。CMA算法具有結(jié)構(gòu)簡單、易于實現(xiàn)、穩(wěn)定性好等優(yōu)點,是一種較為常用的均衡算法。但CMA算法只考慮了信號的幅度信息,沒有考慮相位信息,因此該算法存在收斂速度慢、計算量大、無法克服相位失真等缺點[5]。文獻[6]提出修正恒模算法(Modelfied Constant Modulus Algorithm,MCMA),該算法將輸入信號分為I,Q兩路進行均衡,在均衡過程中能夠有效克服相位失真問題,提高了CMA算法的性能。同時,對于信道的快速變化引起載波相位不穩(wěn)的問題,MCMA也能夠?qū)ζ溥M行恢復(fù)。
隨著現(xiàn)場可編程邏輯門陣列(FPGA)技術(shù)的發(fā)展,芯片集成度越來越高,但是其功耗以及成本在不斷下降,以及FPGA開發(fā)軟件的功能不斷完善,使得其在信號處理領(lǐng)域得到越來越多的應(yīng)用,基于System Generator for DSP 開發(fā)軟件在FPGA上可以實現(xiàn)MCMA信道均衡器的設(shè)計,并利用Simulink給出對均衡器進行仿真測試驗證的結(jié)果[7]。
本文基于FPGA實現(xiàn)了MCMA均衡算法,所設(shè)計均衡器已被某實裝航空通信系統(tǒng)采用并經(jīng)實測提升了性能。首先介紹了MCMA算法的基本原理,然后將試飛時采集接收的信號作為數(shù)據(jù)源在Matlab平臺上驗證MCMA均衡器的性能并詳細分析了影響均衡性能的步長參數(shù)的選取方法;其次對MCMA算法的FPGA實現(xiàn)方案進行了詳細介紹。
MCMA算法包含大量的乘法以及平方運算,并且是I,Q兩路,因此采用FPGA內(nèi)部硬件資源實現(xiàn)此算法需要消耗大量的乘法器IP核,從而限制了該算法的應(yīng)用范圍。針對該問題,本文在實現(xiàn)MCMA算法過程中采用串行流水線結(jié)構(gòu)和乘法器復(fù)用的方式,節(jié)約了硬件資源并達到了較好的均衡效果。最后通過試飛實測結(jié)果驗證了所設(shè)計均衡器的優(yōu)良性能,接收信號經(jīng)過設(shè)計的均衡器處理后,通信解調(diào)信噪比下降了4 dB。
由式(11)可知,MCMA將均衡器輸入信號分為實部和虛部,也就是將復(fù)數(shù)運算簡化為實數(shù)運算,即轉(zhuǎn)換為信號的幅度和相位信息,有效降低了計算復(fù)雜度,便于硬件實現(xiàn)。系數(shù)更新公式中實部和虛部同時需要做乘法運算,在信道估計出均衡器系數(shù)以后真實信號通過均衡器也需要做乘法運算,這樣整個均衡器的乘法運算量過大,若采用乘法器IP核來實現(xiàn),導(dǎo)致占用硬件資源過多,故在實現(xiàn)過程中乘法器復(fù)用,并采用高時鐘流水線結(jié)構(gòu),這樣可以節(jié)省硬件資源并達到均衡效果。
為了驗證MCMA的有效性以及算法性能與關(guān)鍵參數(shù)的關(guān)系,將試飛采集到的數(shù)據(jù)作為信源數(shù)據(jù),在Matlab平臺上驗證MCMA算法的均衡效果以及分析算法收斂速度、穩(wěn)態(tài)誤差與步長[μ]的關(guān)系。
均衡器采用16階橫向抽頭結(jié)構(gòu),中心抽頭系數(shù)初始化為1,其他抽頭系數(shù)初始化為0,信道的沖擊響應(yīng)為[1,0.5,0.35,0.2],調(diào)制方式為QPSK,[EbN0]為20 dB。對于QPSK調(diào)制信號,相應(yīng)的[Rm]值為[2.097 ?2×106]。
若步長[μ]設(shè)置較小,雖然收斂效果很好但是收斂的速度卻很慢;若步長[μ]設(shè)置較大,雖然收斂速度加快但是穩(wěn)態(tài)誤差較大,會導(dǎo)致誤碼率性能下降,通過調(diào)整步長[μ]使系統(tǒng)的均衡性能達到最優(yōu)[9]。
為了驗證均衡器的性能,在相同的信道仿真環(huán)境下,采用不同步長[μ]的均衡器輸出信號星座圖,誤差信號、權(quán)值收斂也進行對比分析選出最優(yōu)的步長參數(shù)。均衡器輸入信號星座如圖1所示。
由圖1可知,接收到的信號幅度和相位均產(chǎn)生了失真,QPSK信號的相位不再集中在4個相位點上,無法辨認出原始的星座圖。
接收信號通過均衡器后的星座圖如圖2所示,均衡器輸出信號的相位大致集中在4個相位點上,可知此均衡器可以糾正信號的相位失真,圖2a)采用步長[μ]=[27],圖2b)采用步長[μ=210],顯然,采用步長[μ]=[210]輸出信號的星座點更加緊簇。
均衡誤差值波動如圖3所示,其中步長[μ]=[210]的波動范圍比[μ]=[27]小。
均衡器權(quán)值收斂如圖4所示,實線為[μ]=[27]權(quán)值系數(shù)變化曲線,虛線為[μ]=[210]權(quán)值系數(shù)變化曲線,很顯然權(quán)值系數(shù)經(jīng)過不斷更新后可以收斂,但[μ=210]的收斂速度比[μ]=[27]快。
當(dāng)步長[μ]較大超出范圍則算法不收斂,所以步長的選擇是影響算法的一個關(guān)鍵[9]。從采用不同步長后的均衡效果來看,為了降低均衡信號的相位失真,此均衡器采用步長[μ=210]。
本文均衡器采用硬件描述語言VHDL在Xilinx公司的ISE14.7環(huán)境下編程實現(xiàn),將試飛采集到的數(shù)據(jù)以.txt文件存儲,在ModelSim中讀取.txt文件作為接收信號源。均衡器采用的FPGA是Xilinx公司的Artix?7系列的XC7A200T?2SBG484,此芯片相對于Spartan?6系列而言,成本降低但是容量卻提高2倍以上,而且內(nèi)部740個DSP模塊可用于復(fù)雜計算。
本文設(shè)計的MCMA盲均衡器結(jié)構(gòu)框圖如圖5所示。均衡器主要由歸一化模塊、抽樣模塊、濾波器模塊、誤差計算模塊、權(quán)值調(diào)整模塊以及均衡數(shù)據(jù)存儲模塊組成[10]。
均衡器輸入的估計數(shù)據(jù)并行作為兩個模塊的輸入,一個作為內(nèi)部RAM存儲,另一個用于估計均衡器系數(shù),待估計出系數(shù)后再啟動RAM的讀使能,對存儲信號進行均衡。
為了保證均衡器輸入信號幅度的平穩(wěn)性,首先對信號進行歸一化處理。接收信號通過捕獲模塊得到的相關(guān)峰值作為歸一化子模塊輸入,輸入的I,Q兩路信號都是16 bit,十進制數(shù)表示最大值為32 767,本設(shè)計將信號的幅度量化為(-16 384,16 383)之間,使均衡器輸入信號的模值范圍固定,便于算法的收斂。
主時鐘設(shè)為采樣時鐘的2倍,輸入的I,Q信號每個碼元由8個采樣點組成,均衡濾波器權(quán)值更新過程中每個碼元抽取兩個采樣點,作為后續(xù)均衡器處理數(shù)據(jù)。此模塊的關(guān)鍵點就是對碼元信號進行均衡過程中由于采用高時鐘可以在碼元周期內(nèi)串行完成后續(xù)濾波器乘累加運算。
濾波器是均衡器的核心單元,采用判決反饋結(jié)構(gòu),其主要功能是將均衡器的輸入信號與均衡器的權(quán)值系數(shù)進行卷積操作。濾波器卷積運算中兩個復(fù)數(shù)矩陣的乘法運算采用IP核實現(xiàn),提高運算的速度。1個16 bit乘法器需要3個DSP block單元,1個16階的濾波器就需要使用96個DSP單元,這樣乘法器占用資源太多,因此采用復(fù)用的方式,有效地降低硬件資源消耗。本文均衡器采用的時鐘是61.44 MHz,碼元速率為3.84 MHz。將碼元抽取的采樣信號存入緩存移位數(shù)組,ES_Din([n]),[n=]0,1,2,…,15,并開始計數(shù)。每個時鐘上升沿,當(dāng)前系數(shù)與緩存中的數(shù)據(jù)作一次復(fù)數(shù)乘法得到ES_i([n]),ES_q([n]),由前一個系數(shù)減去ES_i([n]),ES_q([n]),輸出的結(jié)果即當(dāng)前權(quán)值系數(shù),再將其反饋為復(fù)數(shù)乘法器的輸入,此前向濾波器完成均衡器輸入信號[x(k)]與反饋系數(shù)[w(k)]之間的乘積,同時實現(xiàn)抽頭系數(shù)的更新:[w(k+1)=w(k)-μ?e(k)x(k)],如圖5所示,權(quán)值計算輸出反饋到復(fù)數(shù)乘法器的輸入。
后向濾波器主要實現(xiàn)均衡器輸出信號[y(k)]經(jīng)過判決后與反饋系數(shù)[w(k)]之間的乘積,同時更新反饋系數(shù)。在進行輸入信號[x(k)]與反饋系數(shù)[w(k)]的卷積運算時,由于實現(xiàn)中的乘法、加法運算存在一個時鐘的延遲,在得出誤差函數(shù)[e(k)]后,采用高時鐘流水線的方式保證反饋系數(shù)更新公式中的[μ?e(k)x(k)]能進行正確運算。
誤差計算是算法的核心,如圖5所示采用權(quán)值計算模塊的輸出求和后的[y(k)]包含I,Q兩路信號計算誤差函數(shù)[e(k)],首先經(jīng)過復(fù)數(shù)乘法模塊實現(xiàn)平方運算,再與[R2,R]做差運算,最后與[y(k)]進行乘法運算。
根據(jù)反饋誤差值[e(k)]及輸入信號[x(k)]完成濾波器權(quán)值系數(shù)的更新,為了節(jié)約硬件資源,步長因子[μ]在本文設(shè)計中取[210],因此可以采用移位操作實現(xiàn)乘法運算。此均衡過程在高時鐘下經(jīng)過一個碼元周期便可實現(xiàn)反饋系數(shù)的一次更新。
估計數(shù)據(jù)經(jīng)過濾波器的系數(shù)反饋后,就可以得出最終的權(quán)值系數(shù),此時再將存儲的信號存入緩存移位數(shù)組,再次經(jīng)過濾波器前向濾波以后的結(jié)果就是信號均衡后的輸出結(jié)果。
綜上所述,為了工程實現(xiàn)的需要,本文設(shè)計做了適應(yīng)性改進,系統(tǒng)采用高時鐘,在一個碼元周期內(nèi)采用串行流水線的方式處理,即一個碼元周期內(nèi)高時鐘進行計數(shù),按照計數(shù)器值分解濾波器的乘累加運算步驟,保證數(shù)據(jù)的正確運算;由于反饋系數(shù)調(diào)整采用流水線的方式,故乘法器可以復(fù)用,節(jié)約硬件資源。
本文設(shè)計的盲均衡器在FPGA實現(xiàn)過程中,需要注意的問題是時序、數(shù)據(jù)位寬、信號溢出、數(shù)據(jù)存儲、數(shù)據(jù)移位、均衡處理速度等問題。處理時序用一個模8計數(shù)器,在一個采樣周期內(nèi)串行完成一次數(shù)據(jù)的更新;在數(shù)據(jù)位寬方面,由于每一次乘法運算結(jié)果的數(shù)據(jù)位寬是兩個相乘數(shù)據(jù)位寬的和,直接采用乘法器輸出結(jié)果進行后續(xù)的計算會占用較多資源,所以要對乘法器的輸出結(jié)果進行適當(dāng)?shù)慕匚惶幚?針對信號溢出問題,本次均衡器的輸入采用歸一化處理后的數(shù)據(jù);運算時,為了便于實現(xiàn)數(shù)據(jù)乘法,設(shè)置步長值為[2n],這樣就不必使用乘法器,將乘法運算轉(zhuǎn)變?yōu)閿?shù)據(jù)移位操作,從而節(jié)省了資源。
均衡器的輸入和輸出信號對比如圖6所示,其中blinde_en_in,blinde_data_i,blinde_data_q分別為本均衡器的啟動使能,均衡器輸入信號的實部,均衡器輸入信號的虛部,顯然,輸入信號波形所攜帶的相位已經(jīng)嚴(yán)重失真,data_out_i,data_out_q分別為均衡器輸出信號的實部,均衡器輸出信號的虛部,經(jīng)過均衡器后糾正了信號的相位失真,信號的幅值波動不大。
算法的收斂速度驗證如圖7所示,盲均衡算法的收斂速度直接影響工程的實現(xiàn),是判斷盲均衡性能極其重要的指標(biāo),收斂速度是指從均衡器開始工作到算法收斂所需的迭代次數(shù)。
圖7中add_sq為均衡后誤差信號,開始時,誤差值比較大,隨著迭代次數(shù)的增加,誤差值的改變也較快,當(dāng)進入收斂狀態(tài)后,誤差值便在某一數(shù)值附近波動,表明該均衡器可以實現(xiàn)。這樣就不必使用乘法器,將乘法運算轉(zhuǎn)變?yōu)閿?shù)據(jù)移位操作,從而節(jié)省了資源。
在某通信系統(tǒng)試飛試驗中,加入此均衡器設(shè)計以后,彈載通信端機能與地面站進行正常的收發(fā)通信交互,分析彈道仿真機采集數(shù)據(jù)顯示,該端機在空域內(nèi)能收到其他端機數(shù)據(jù),在相同的飛行條件下,將彈載端機采集數(shù)據(jù)進行分析,結(jié)果表明相同的誤碼率條件下地面接收終端通過頻譜儀測得的信號值比沒有均衡器設(shè)計的要小4 dB。
本文基于FPGA設(shè)計實現(xiàn)了一種適用于QPSK信號的盲均衡器,通過合理選擇步長[μ]值,濾波器的權(quán)值系數(shù)更新過程采用流水線設(shè)計以及乘法器復(fù)用,將濾波器乘累加計算在高時鐘下按照計數(shù)器值分步驟進行,保證數(shù)據(jù)的正確運算。由于采用流水線的架構(gòu),誤差迭代計算中的乘法計算所調(diào)用的IP核可以復(fù)用,節(jié)約了片內(nèi)的乘法器資源,實現(xiàn)了均衡效果和占用硬件資源的平衡。通過Matlab平臺驗證表明,此次設(shè)計的均衡器可實現(xiàn)較好的均衡效果。通過某在研的通信系統(tǒng)試飛,也表明均衡器的有效性。
參考文獻
[1] SKLAR B.數(shù)字通信:基礎(chǔ)與應(yīng)用[M].2版.徐平平,譯.北京:電子工業(yè)出版社,2002:173?182.
SKLAR B. Digital communications fundamentals and applications [M]. 2nd ed. XU Pingping, Translation. Beijing: Publi?shing House of Electronics Industry, 2002: 173?182.
[2] OH K N, CHIN Y O. Modified constant modulus algorithm: blind equalization and carrier phase recovery algorithm [C]// Proceedings of 1995 IEEE International Conference on Communications. Seattle: IEEE, 1995: 498?502.
[3] GODARD N. Self?recovering equalization and carrier tracking in two?dimensional data communication systems [J]. IEEE tran?sactions on communications, 1980, 28(11): 1875?1886.
[4] LEE L. A modified blind equalization technique based on a constant modulus algorithm [C]// 1998 IEEE International Conference on Communications. Atlanta: IEEE, 1998: 344?348.
[5] 張丹丹.盲均衡算法及其FPGA實現(xiàn)的研究[D].秦皇島:燕山大學(xué),2013:20?21.
ZHANG Dandan. Research of blind equalization algorithm and its FPGA implementation [D]. Qinhuangdao: Yanshan University, 2013: 20?21.
[6] JIANG Zhixiang, ZHANG Meng, LI Zichuang, et al. A newly high?speed MCMA algorithm for QAM system [C]// The 4th International Conference on Wireless Communications, Networ?king and Mobile Computing. Dalian: IEEE, 2008: 1?4.
[7] 錢小云,白勇博,田兆平,等.基于System Generator的MCMA算法盲均衡器的FPGA實現(xiàn)[J].江蘇科技信息,2016,6(18):54?56.
QIAN Xiaoyun, BAI Yongbo, TIAN Zhaoping, et al. The FPGA implementation of MCMA blind equalizer based on system generator [J]. Jiangsu science & technology information, 2016, 6(18): 54?56.
[8] RAO Wei, ZHANG Xingwang. New concurrent blind equalization algorithm suitable for high?order QAM signals [C]// The 5th International Conference on Fuzzy System and Knowledge Discovery. Shandong: IEEE, 2008: 177?181.
[9] 郝放,閔潔,孫志遠.基于MCMA的盲均衡算法[J].無線電通信技術(shù),2014,40(1):41?43.
HAO Fang, MIN Jie, SUN Zhiyuan. Blind equalization algorithm based on MCMA [J]. Radio communication technology, 2014, 40(1): 41?43.
[10] 吳迪,霍亞娟,葛臨東,等.高階QAM信號盲均衡算法及其FPGA實現(xiàn)[J].計算機工程,2010,36(15):233?239.
WU Di, HUO Yajuan, GE Lindong, et al. Blind equalization algorithm of high?order QAM signal and its FPGA?based implementation [J]. Computer engineering, 2010, 36(15): 233?239.
[11] 朱振超,梁廣真.一種新型變步長CMA盲均衡算法[J].現(xiàn)代電子技術(shù),2014,37(18):56?58.
ZHU Zhenchao, LIANG Guangzhen. A new variable step?size CMA blind equalization algorithm [J]. Modern electronics technique, 2014, 37(18): 56?58.
[12] ASHMAWY D, BANOVIG K, RAHEEM E A, et al. Joint MCMA and DD blind equalization algorithm with variable?step size [C]// 2009 IEEE International Conference on Electro/Information Technology. Windsor: IEEE, 2009: 174?177.