李淑婧 王蕾 張東偉 張帆
關(guān)鍵詞: 修正恒模算法; QPSK信號; 高時(shí)鐘; 流水線結(jié)構(gòu); 乘法器復(fù)用; 盲均衡
中圖分類號: TN919?34 ? ? ? ? ? ? ? ? ? ? ? ? ?文獻(xiàn)標(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ù)抽樣時(shí)產(chǎn)生符號間干擾,從而降低了信號的傳輸效率和傳輸質(zhì)量[1]。信道均衡可以消除符號間干擾和補(bǔ)償信道失真,從而降低誤碼率,提高通信質(zhì)量。
早期的自適應(yīng)均衡算法需要在發(fā)送端的幀結(jié)構(gòu)中插入訓(xùn)練序列,以便實(shí)時(shí)跟蹤信道特性變化,但如此會(huì)降低信道頻譜利用率,浪費(fèi)帶寬資源[2]。相比之下,盲均衡算法不需要發(fā)送訓(xùn)練序列,僅利用發(fā)送信號的特征進(jìn)行均衡,此特性使其成為通信領(lǐng)域的研究熱點(diǎn)。幾十年以來,針對不同的應(yīng)用需求,研究者進(jìn)行了大量卓有成效的研究,進(jìn)而提出了多種盲均衡算法,其中最具代表性的是Godard算法[3]。當(dāng)代價(jià)函數(shù)的階數(shù)取2時(shí),得到Godard算法的一個(gè)特例——恒模算法(Constant Modulus Algorithm,CMA)[4]。CMA算法具有結(jié)構(gòu)簡單、易于實(shí)現(xiàn)、穩(wěn)定性好等優(yōu)點(diǎn),是一種較為常用的均衡算法。但CMA算法只考慮了信號的幅度信息,沒有考慮相位信息,因此該算法存在收斂速度慢、計(jì)算量大、無法克服相位失真等缺點(diǎn)[5]。文獻(xiàn)[6]提出修正恒模算法(Modelfied Constant Modulus Algorithm,MCMA),該算法將輸入信號分為I,Q兩路進(jìn)行均衡,在均衡過程中能夠有效克服相位失真問題,提高了CMA算法的性能。同時(shí),對于信道的快速變化引起載波相位不穩(wěn)的問題,MCMA也能夠?qū)ζ溥M(jìn)行恢復(fù)。
隨著現(xiàn)場可編程邏輯門陣列(FPGA)技術(shù)的發(fā)展,芯片集成度越來越高,但是其功耗以及成本在不斷下降,以及FPGA開發(fā)軟件的功能不斷完善,使得其在信號處理領(lǐng)域得到越來越多的應(yīng)用,基于System Generator for DSP 開發(fā)軟件在FPGA上可以實(shí)現(xiàn)MCMA信道均衡器的設(shè)計(jì),并利用Simulink給出對均衡器進(jìn)行仿真測試驗(yàn)證的結(jié)果[7]。
本文基于FPGA實(shí)現(xiàn)了MCMA均衡算法,所設(shè)計(jì)均衡器已被某實(shí)裝航空通信系統(tǒng)采用并經(jīng)實(shí)測提升了性能。首先介紹了MCMA算法的基本原理,然后將試飛時(shí)采集接收的信號作為數(shù)據(jù)源在Matlab平臺上驗(yàn)證MCMA均衡器的性能并詳細(xì)分析了影響均衡性能的步長參數(shù)的選取方法;其次對MCMA算法的FPGA實(shí)現(xiàn)方案進(jìn)行了詳細(xì)介紹。
MCMA算法包含大量的乘法以及平方運(yùn)算,并且是I,Q兩路,因此采用FPGA內(nèi)部硬件資源實(shí)現(xiàn)此算法需要消耗大量的乘法器IP核,從而限制了該算法的應(yīng)用范圍。針對該問題,本文在實(shí)現(xiàn)MCMA算法過程中采用串行流水線結(jié)構(gòu)和乘法器復(fù)用的方式,節(jié)約了硬件資源并達(dá)到了較好的均衡效果。最后通過試飛實(shí)測結(jié)果驗(yàn)證了所設(shè)計(jì)均衡器的優(yōu)良性能,接收信號經(jīng)過設(shè)計(jì)的均衡器處理后,通信解調(diào)信噪比下降了4 dB。
由式(11)可知,MCMA將均衡器輸入信號分為實(shí)部和虛部,也就是將復(fù)數(shù)運(yùn)算簡化為實(shí)數(shù)運(yùn)算,即轉(zhuǎn)換為信號的幅度和相位信息,有效降低了計(jì)算復(fù)雜度,便于硬件實(shí)現(xiàn)。系數(shù)更新公式中實(shí)部和虛部同時(shí)需要做乘法運(yùn)算,在信道估計(jì)出均衡器系數(shù)以后真實(shí)信號通過均衡器也需要做乘法運(yùn)算,這樣整個(gè)均衡器的乘法運(yùn)算量過大,若采用乘法器IP核來實(shí)現(xiàn),導(dǎo)致占用硬件資源過多,故在實(shí)現(xiàn)過程中乘法器復(fù)用,并采用高時(shí)鐘流水線結(jié)構(gòu),這樣可以節(jié)省硬件資源并達(dá)到均衡效果。
為了驗(yàn)證MCMA的有效性以及算法性能與關(guān)鍵參數(shù)的關(guān)系,將試飛采集到的數(shù)據(jù)作為信源數(shù)據(jù),在Matlab平臺上驗(yàn)證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)誤差較大,會(huì)導(dǎo)致誤碼率性能下降,通過調(diào)整步長[μ]使系統(tǒng)的均衡性能達(dá)到最優(yōu)[9]。
為了驗(yàn)證均衡器的性能,在相同的信道仿真環(huán)境下,采用不同步長[μ]的均衡器輸出信號星座圖,誤差信號、權(quán)值收斂也進(jìn)行對比分析選出最優(yōu)的步長參數(shù)。均衡器輸入信號星座如圖1所示。
由圖1可知,接收到的信號幅度和相位均產(chǎn)生了失真,QPSK信號的相位不再集中在4個(gè)相位點(diǎn)上,無法辨認(rèn)出原始的星座圖。
接收信號通過均衡器后的星座圖如圖2所示,均衡器輸出信號的相位大致集中在4個(gè)相位點(diǎn)上,可知此均衡器可以糾正信號的相位失真,圖2a)采用步長[μ]=[27],圖2b)采用步長[μ=210],顯然,采用步長[μ]=[210]輸出信號的星座點(diǎn)更加緊簇。
均衡誤差值波動(dòng)如圖3所示,其中步長[μ]=[210]的波動(dòng)范圍比[μ]=[27]小。
均衡器權(quán)值收斂如圖4所示,實(shí)線為[μ]=[27]權(quán)值系數(shù)變化曲線,虛線為[μ]=[210]權(quán)值系數(shù)變化曲線,很顯然權(quán)值系數(shù)經(jīng)過不斷更新后可以收斂,但[μ=210]的收斂速度比[μ]=[27]快。
當(dāng)步長[μ]較大超出范圍則算法不收斂,所以步長的選擇是影響算法的一個(gè)關(guān)鍵[9]。從采用不同步長后的均衡效果來看,為了降低均衡信號的相位失真,此均衡器采用步長[μ=210]。
本文均衡器采用硬件描述語言VHDL在Xilinx公司的ISE14.7環(huán)境下編程實(shí)現(xiàn),將試飛采集到的數(shù)據(jù)以.txt文件存儲(chǔ),在ModelSim中讀取.txt文件作為接收信號源。均衡器采用的FPGA是Xilinx公司的Artix?7系列的XC7A200T?2SBG484,此芯片相對于Spartan?6系列而言,成本降低但是容量卻提高2倍以上,而且內(nèi)部740個(gè)DSP模塊可用于復(fù)雜計(jì)算。
本文設(shè)計(jì)的MCMA盲均衡器結(jié)構(gòu)框圖如圖5所示。均衡器主要由歸一化模塊、抽樣模塊、濾波器模塊、誤差計(jì)算模塊、權(quán)值調(diào)整模塊以及均衡數(shù)據(jù)存儲(chǔ)模塊組成[10]。
均衡器輸入的估計(jì)數(shù)據(jù)并行作為兩個(gè)模塊的輸入,一個(gè)作為內(nèi)部RAM存儲(chǔ),另一個(gè)用于估計(jì)均衡器系數(shù),待估計(jì)出系數(shù)后再啟動(dòng)RAM的讀使能,對存儲(chǔ)信號進(jìn)行均衡。
為了保證均衡器輸入信號幅度的平穩(wěn)性,首先對信號進(jìn)行歸一化處理。接收信號通過捕獲模塊得到的相關(guān)峰值作為歸一化子模塊輸入,輸入的I,Q兩路信號都是16 bit,十進(jìn)制數(shù)表示最大值為32 767,本設(shè)計(jì)將信號的幅度量化為(-16 384,16 383)之間,使均衡器輸入信號的模值范圍固定,便于算法的收斂。
主時(shí)鐘設(shè)為采樣時(shí)鐘的2倍,輸入的I,Q信號每個(gè)碼元由8個(gè)采樣點(diǎn)組成,均衡濾波器權(quán)值更新過程中每個(gè)碼元抽取兩個(gè)采樣點(diǎn),作為后續(xù)均衡器處理數(shù)據(jù)。此模塊的關(guān)鍵點(diǎn)就是對碼元信號進(jìn)行均衡過程中由于采用高時(shí)鐘可以在碼元周期內(nèi)串行完成后續(xù)濾波器乘累加運(yùn)算。
濾波器是均衡器的核心單元,采用判決反饋結(jié)構(gòu),其主要功能是將均衡器的輸入信號與均衡器的權(quán)值系數(shù)進(jìn)行卷積操作。濾波器卷積運(yùn)算中兩個(gè)復(fù)數(shù)矩陣的乘法運(yùn)算采用IP核實(shí)現(xiàn),提高運(yùn)算的速度。1個(gè)16 bit乘法器需要3個(gè)DSP block單元,1個(gè)16階的濾波器就需要使用96個(gè)DSP單元,這樣乘法器占用資源太多,因此采用復(fù)用的方式,有效地降低硬件資源消耗。本文均衡器采用的時(shí)鐘是61.44 MHz,碼元速率為3.84 MHz。將碼元抽取的采樣信號存入緩存移位數(shù)組,ES_Din([n]),[n=]0,1,2,…,15,并開始計(jì)數(shù)。每個(gè)時(shí)鐘上升沿,當(dāng)前系數(shù)與緩存中的數(shù)據(jù)作一次復(fù)數(shù)乘法得到ES_i([n]),ES_q([n]),由前一個(gè)系數(shù)減去ES_i([n]),ES_q([n]),輸出的結(jié)果即當(dāng)前權(quán)值系數(shù),再將其反饋為復(fù)數(shù)乘法器的輸入,此前向?yàn)V波器完成均衡器輸入信號[x(k)]與反饋系數(shù)[w(k)]之間的乘積,同時(shí)實(shí)現(xiàn)抽頭系數(shù)的更新:[w(k+1)=w(k)-μ?e(k)x(k)],如圖5所示,權(quán)值計(jì)算輸出反饋到復(fù)數(shù)乘法器的輸入。
后向?yàn)V波器主要實(shí)現(xiàn)均衡器輸出信號[y(k)]經(jīng)過判決后與反饋系數(shù)[w(k)]之間的乘積,同時(shí)更新反饋系數(shù)。在進(jìn)行輸入信號[x(k)]與反饋系數(shù)[w(k)]的卷積運(yùn)算時(shí),由于實(shí)現(xiàn)中的乘法、加法運(yùn)算存在一個(gè)時(shí)鐘的延遲,在得出誤差函數(shù)[e(k)]后,采用高時(shí)鐘流水線的方式保證反饋系數(shù)更新公式中的[μ?e(k)x(k)]能進(jìn)行正確運(yùn)算。
誤差計(jì)算是算法的核心,如圖5所示采用權(quán)值計(jì)算模塊的輸出求和后的[y(k)]包含I,Q兩路信號計(jì)算誤差函數(shù)[e(k)],首先經(jīng)過復(fù)數(shù)乘法模塊實(shí)現(xiàn)平方運(yùn)算,再與[R2,R]做差運(yùn)算,最后與[y(k)]進(jìn)行乘法運(yùn)算。
根據(jù)反饋誤差值[e(k)]及輸入信號[x(k)]完成濾波器權(quán)值系數(shù)的更新,為了節(jié)約硬件資源,步長因子[μ]在本文設(shè)計(jì)中取[210],因此可以采用移位操作實(shí)現(xiàn)乘法運(yùn)算。此均衡過程在高時(shí)鐘下經(jīng)過一個(gè)碼元周期便可實(shí)現(xiàn)反饋系數(shù)的一次更新。
估計(jì)數(shù)據(jù)經(jīng)過濾波器的系數(shù)反饋后,就可以得出最終的權(quán)值系數(shù),此時(shí)再將存儲(chǔ)的信號存入緩存移位數(shù)組,再次經(jīng)過濾波器前向?yàn)V波以后的結(jié)果就是信號均衡后的輸出結(jié)果。
綜上所述,為了工程實(shí)現(xiàn)的需要,本文設(shè)計(jì)做了適應(yīng)性改進(jìn),系統(tǒng)采用高時(shí)鐘,在一個(gè)碼元周期內(nèi)采用串行流水線的方式處理,即一個(gè)碼元周期內(nèi)高時(shí)鐘進(jìn)行計(jì)數(shù),按照計(jì)數(shù)器值分解濾波器的乘累加運(yùn)算步驟,保證數(shù)據(jù)的正確運(yùn)算;由于反饋系數(shù)調(diào)整采用流水線的方式,故乘法器可以復(fù)用,節(jié)約硬件資源。
本文設(shè)計(jì)的盲均衡器在FPGA實(shí)現(xiàn)過程中,需要注意的問題是時(shí)序、數(shù)據(jù)位寬、信號溢出、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)移位、均衡處理速度等問題。處理時(shí)序用一個(gè)模8計(jì)數(shù)器,在一個(gè)采樣周期內(nèi)串行完成一次數(shù)據(jù)的更新;在數(shù)據(jù)位寬方面,由于每一次乘法運(yùn)算結(jié)果的數(shù)據(jù)位寬是兩個(gè)相乘數(shù)據(jù)位寬的和,直接采用乘法器輸出結(jié)果進(jìn)行后續(xù)的計(jì)算會(huì)占用較多資源,所以要對乘法器的輸出結(jié)果進(jìn)行適當(dāng)?shù)慕匚惶幚?針對信號溢出問題,本次均衡器的輸入采用歸一化處理后的數(shù)據(jù);運(yùn)算時(shí),為了便于實(shí)現(xiàn)數(shù)據(jù)乘法,設(shè)置步長值為[2n],這樣就不必使用乘法器,將乘法運(yùn)算轉(zhuǎn)變?yōu)閿?shù)據(jù)移位操作,從而節(jié)省了資源。
均衡器的輸入和輸出信號對比如圖6所示,其中blinde_en_in,blinde_data_i,blinde_data_q分別為本均衡器的啟動(dòng)使能,均衡器輸入信號的實(shí)部,均衡器輸入信號的虛部,顯然,輸入信號波形所攜帶的相位已經(jīng)嚴(yán)重失真,data_out_i,data_out_q分別為均衡器輸出信號的實(shí)部,均衡器輸出信號的虛部,經(jīng)過均衡器后糾正了信號的相位失真,信號的幅值波動(dòng)不大。
算法的收斂速度驗(yàn)證如圖7所示,盲均衡算法的收斂速度直接影響工程的實(shí)現(xiàn),是判斷盲均衡性能極其重要的指標(biāo),收斂速度是指從均衡器開始工作到算法收斂所需的迭代次數(shù)。
圖7中add_sq為均衡后誤差信號,開始時(shí),誤差值比較大,隨著迭代次數(shù)的增加,誤差值的改變也較快,當(dāng)進(jìn)入收斂狀態(tài)后,誤差值便在某一數(shù)值附近波動(dòng),表明該均衡器可以實(shí)現(xiàn)。這樣就不必使用乘法器,將乘法運(yùn)算轉(zhuǎn)變?yōu)閿?shù)據(jù)移位操作,從而節(jié)省了資源。
在某通信系統(tǒng)試飛試驗(yàn)中,加入此均衡器設(shè)計(jì)以后,彈載通信端機(jī)能與地面站進(jìn)行正常的收發(fā)通信交互,分析彈道仿真機(jī)采集數(shù)據(jù)顯示,該端機(jī)在空域內(nèi)能收到其他端機(jī)數(shù)據(jù),在相同的飛行條件下,將彈載端機(jī)采集數(shù)據(jù)進(jìn)行分析,結(jié)果表明相同的誤碼率條件下地面接收終端通過頻譜儀測得的信號值比沒有均衡器設(shè)計(jì)的要小4 dB。
本文基于FPGA設(shè)計(jì)實(shí)現(xiàn)了一種適用于QPSK信號的盲均衡器,通過合理選擇步長[μ]值,濾波器的權(quán)值系數(shù)更新過程采用流水線設(shè)計(jì)以及乘法器復(fù)用,將濾波器乘累加計(jì)算在高時(shí)鐘下按照計(jì)數(shù)器值分步驟進(jìn)行,保證數(shù)據(jù)的正確運(yùn)算。由于采用流水線的架構(gòu),誤差迭代計(jì)算中的乘法計(jì)算所調(diào)用的IP核可以復(fù)用,節(jié)約了片內(nèi)的乘法器資源,實(shí)現(xiàn)了均衡效果和占用硬件資源的平衡。通過Matlab平臺驗(yàn)證表明,此次設(shè)計(jì)的均衡器可實(shí)現(xiàn)較好的均衡效果。通過某在研的通信系統(tǒng)試飛,也表明均衡器的有效性。
參考文獻(xiàn)
[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實(shí)現(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實(shí)現(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] 郝放,閔潔,孫志遠(yuǎn).基于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實(shí)現(xiàn)[J].計(jì)算機(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.