楊德偉, 宋雪松, 王 華, 王 正
(北京理工大學 通信技術(shù)研究所,北京 100081)
在無線通信系統(tǒng)中,為得到大的信號功率,以滿足發(fā)射要求,需要通過高功率放大器對射頻信號進行放大。為提高射頻功放的效率,功放往往工作在非線性狀態(tài),會導致非線形失真。功率放大器的非線性失真嚴重影響了通信的質(zhì)量[1]。當今移動通信系統(tǒng)中,為了增加傳輸速率和信道容量,采用了復雜的具有高頻譜利用率的數(shù)字調(diào)制方式。采用這些數(shù)字調(diào)制方式,信號包絡的變化產(chǎn)生了記憶效應,這種記憶效應引入了更大的帶外擴散,增加鄰道干擾,同時也產(chǎn)生了帶內(nèi)失真,因此,誤比特率更加嚴重。在設計射頻功放時,除了滿足功放輸出功率的要求外,效率和線性度是必須考慮的兩個因素,但功放的效率和線性度是相互對立的。改善射頻功率放大器線性度的線性化技術(shù)的預失真技術(shù)具有穩(wěn)定、高效、寬帶寬與自適應等優(yōu)勢[2]。數(shù)字基帶預失真在基帶進行信號處理,自適應技術(shù)能夠容易地應用到預失真結(jié)構(gòu)中。為了實現(xiàn)數(shù)字基帶信號預失真處理,需要對預失真系統(tǒng)中相關(guān)硬件進行控制。目前,針對數(shù)字基帶預失真系統(tǒng)的控制及算法多采用單片機、FPGA、DSP[3-4]。然而基于單片機的控制系統(tǒng)由于單片機本身的局限性,運行速度低,移植性比較差,無法進行多任務操作?;贔PGA的控制系統(tǒng)可操作性差,每改變一次控制參數(shù),需要對FPGA重新寫入一遍程序,不方便控制?;贒SP的控制系統(tǒng)雖然能夠?qū)崿F(xiàn)算法,但是對預失真系統(tǒng)的控制同樣不方便。而基于嵌入式Linux[5-6]的控制不但能夠?qū)崿F(xiàn)預失真算法,而且能夠方便地對預失真系統(tǒng)進行控制,從而彌補了幾者之間的缺陷。
圖1 間接學習結(jié)構(gòu)框圖
數(shù)字基帶預失真系統(tǒng)由數(shù)字基帶處理部分和射頻處理部分組成,其硬件實現(xiàn)如圖2所示。調(diào)制信號首先映射為I/Q兩路,然后經(jīng)過根升余弦濾波器成形濾波后,進入預失真器得到預失真器輸出信號;經(jīng)過預失真器處理后的信號,通過D/A變換、低通濾波、模擬正交調(diào)制和上變頻變成射頻信號,然后進入高功率放大器,功放輸出信號中一部分信號通過天線發(fā)送,另一部分經(jīng)過定向耦合器反饋給預失真系統(tǒng),反饋信號經(jīng)過下變頻和正交解調(diào)得到基帶模擬信號,利用高速A/D變換器變成數(shù)字基帶信號,通過定時同步算法對齊反饋數(shù)據(jù)與發(fā)送數(shù)據(jù),再利用自適應算法調(diào)整預失真器系數(shù),從而實現(xiàn)預失真的目的。數(shù)字基帶預失真控制系統(tǒng)通過同步算法和自適應算法完成對預失真器系數(shù)的調(diào)整,通過對DA/AD、調(diào)制模塊參數(shù)的調(diào)整,來實現(xiàn)對傳輸信號的控制。
圖2 系統(tǒng)結(jié)構(gòu)原理圖
數(shù)字基帶預失真控制系統(tǒng)硬件由ARM[8]、鍵盤模塊和顯示模塊共同組成,如圖3所示。
圖3 系統(tǒng)框架圖
鍵盤模塊由HD7279A控制芯片和4*4矩陣鍵盤組成[9]。HD7279A是一種專門管理鍵盤和LED顯示器的專用智能控制芯片,它具有自動消除按鍵抖動并識別按鍵代碼的功能,從而可以提高CPU工作的效率,同時具有較高的可靠性。HD7279A和ARM之間采用串行接口,當HD7279A檢測到有效按鍵時,其KEY腳產(chǎn)生一個中斷發(fā)送到ARM,當HD7279A接收到讀取鍵值指令時,輸出當前按鍵的鍵值代碼到ARM。
采用LCM12832ZK作為顯示模塊,LCM12832ZK是一種具有8位/4位并行、2線/3線串行多種接口方式,內(nèi)帶簡體中文字庫的圖形點陣液晶顯示模塊[10]。它具有顯示信息豐富,體積小、功耗低、使用方便等特點,該模塊在系統(tǒng)中的功能主要是根據(jù)具體的按鍵顯示相關(guān)的操作指令。
ARM作為整個控制系統(tǒng)的核心,必須能夠具有較強的運算能力和豐富的接口便于對外設的控制,基于以上考慮,系統(tǒng)設計選用S3C6410。S3C6410不僅能滿足任務需求,而且成本低、功耗低,其操作系統(tǒng)的開源代碼,便于軟件實現(xiàn)。ARM在本文中主要有兩個功能,一方面負責讀取鍵值代碼,并將相應的操作指令傳輸?shù)筋A失真系統(tǒng)和顯示模塊上,另一方面負責與FPGA通信,完成數(shù)據(jù)的讀取、處理和發(fā)送工作。
程序開發(fā)編譯環(huán)境包括Fedora9.0,交叉編譯工具采用的是arm-linux-gcc-4.5.1。嵌入式Linux采用的是Linux2.6.38。
在數(shù)字基帶預失真系統(tǒng)中,其算法包括同步算法和自適應算法。由于放大器環(huán)路反饋信號存在著延時,因此必須對采集的數(shù)據(jù)進行數(shù)據(jù)對齊,即進行同步算法。對采集的數(shù)據(jù)完成同步算法處理之后,再進行自適應算法,之后將得到的系數(shù)復制到預失真模塊,即完成了整個預失真的過程。
通常,數(shù)據(jù)對齊的步驟分為兩步[11],即整數(shù)部分延時的數(shù)據(jù)對齊及小數(shù)部分延時的數(shù)據(jù)對齊,采用兩步處理的目的是為了提高估計的準確度和最大限度地減少資源占用。本文整數(shù)部分的數(shù)據(jù)對齊采用基于協(xié)方差法的算法,小數(shù)部分的數(shù)據(jù)對齊采用基于Lagrange內(nèi)插的協(xié)方差法的算法[12]。
自適應算法中多采用最小均方誤差(Least Mean Square,LMS)算法[13]、最小二乘(Least Square,LS)算法[14]、遞歸最小二乘(Recursive Least Square,RLS)算法[14]三種經(jīng)典自適應算法。本文采用RLS算法,它的更新目的是使輸出信號與期望信號在最小二乘意義上最匹配,具有快速收斂的特點,因而被廣泛應用于實時系統(tǒng)辨識和快速的信道均衡等領(lǐng)域。
3.1.1基于協(xié)方差法的算法
協(xié)方差法公式如下所示:
Rxz(m)=
-L+1≤m≤L-1
(1)
圖4 協(xié)方差法求整數(shù)倍延時的曲線
3.1.2基于Lagrange內(nèi)插的協(xié)方差法的算法
Lagrange內(nèi)插實際上是使用了內(nèi)插濾波器,這種插值濾波器使用了拉格朗日(Lagrange)多項式內(nèi)插。由于這種插值濾波器使用了Farrow結(jié)構(gòu),是一種高效的結(jié)構(gòu),非常適合高速實現(xiàn)。對于已知的I個采樣點,Lagrange內(nèi)插公式[15]可以表示為:
(2)
其中,Ci為每個采樣值的權(quán)重,由不同的采樣時刻決定,且滿足:
(3)
(4)
對插值后的輸入和輸出數(shù)據(jù)按照整數(shù)倍延時估計的方法,求得協(xié)方差曲線,在得到最大值所在的位置以后,除以內(nèi)插倍數(shù)P后得到的值即為小數(shù)部分延時。需要說明的是,該算法的適應性比較強,對放大器環(huán)路中固定相偏和頻偏抖動均不敏感,因此即使放大器非線性特性及記憶性很明顯,估計的結(jié)果依然穩(wěn)定而且準確。
3.1.3遞歸最小二乘算法
把待最小化的代價函數(shù)表示為J(n),其中n是可測數(shù)據(jù)的可變長度。另外,習慣上還在J(n)的定義中引入遺忘因子0<λ<1,其使用是為了保證“遺忘”掉久遠的過去數(shù)據(jù),以便當濾波器工作在非平穩(wěn)環(huán)境中時,能跟蹤觀測數(shù)據(jù)的統(tǒng)計變化:
(5)
其中:e(n)是圖1間接學習結(jié)構(gòu)中所表示的誤差;a是由akq組成的K(Q+1)行1列的列向量;u是由y對應a構(gòu)造多項式組成的列向量:
(6)
為了后續(xù)的計算,給出輸入向量的自相關(guān)矩陣:
(7)
并設其逆矩陣R-1(n)為P(n),RLS算法的主要步驟如下:
(1) 初始化:a(0)=0,P(0)=δ-1I,其中δ是一個很小的值;
(2) 更新增益向量k(n):
(8)
(3) 更新預失真器系數(shù):
(9)
(4) 更新逆矩陣:
(10)
(5)n=n+1,轉(zhuǎn)到步驟(2)。
本文將ARM應用于數(shù)字基帶預失真系統(tǒng),利用ARM實現(xiàn)了預失真算法[16]。其工作流程如圖5所示。系統(tǒng)上電后,預失真算法軟件經(jīng)過初始化后,從FPGA的RAM中讀取數(shù)據(jù),經(jīng)過預失真算法程序,進行同步算法和自適應算法,得到一組參數(shù),然后將這組參數(shù)發(fā)送到預失真器,之后再次讀取數(shù)據(jù),判斷是否需要更新預失真器中的系數(shù),如果需要更新,就進行預失真算法處理;如果不需要更新,就繼續(xù)讀取數(shù)據(jù)進行判斷。
為了使系統(tǒng)能夠?qū)崿F(xiàn)人機交互及控制界面,設計了AD控制模塊、DA控制模塊、上變頻控制模塊以及下變頻控制模塊。當系統(tǒng)上電后,S3C6410通過GPIO端口對各個模塊進行初始化設置,等所有初始化工作都完成以后S3C6410進入中斷等待狀態(tài),等待按鍵中斷的到來。當S3C6410檢測到按鍵中斷時,向HD7279A發(fā)送讀取鍵值指令讀取鍵值,根據(jù)不同的鍵值,將對應操作顯示到液晶上,并發(fā)送相應的控制指令到AD/DA模塊或者上下變頻模塊,完成操作后回到中斷等待狀態(tài),等待中斷發(fā)生。其工作流程如圖6所示。
圖5 預失真算法程序流程圖圖6 鍵盤顯示控制程序流程圖
經(jīng)過測試,本設計能夠?qū)崿F(xiàn)數(shù)字基帶預失真系統(tǒng)的算法以及對該系統(tǒng)的控制。通過鍵盤顯示控制程序,實現(xiàn)了對AD/DA模塊、上下變頻模塊的控制;通過預失真算法程序,實現(xiàn)了預失真同步算法和自適應算法。在圖7中顯示了有無預失真算法時,信號的AM/AM對比圖。從圖中可以看出預失真效果明顯,功放輸出信號為線性信號。
圖7 數(shù)字基帶預失真AM/AM特性圖
Linux是當前最受歡迎的操作系統(tǒng)之一,它具有內(nèi)核小、效率高、源碼開放的優(yōu)點,所以也被廣泛應用于嵌入式系統(tǒng)中。本文將嵌入式Linux引入預失真系統(tǒng)中,實現(xiàn)了對傳輸信號的控制,為用戶提供了簡潔的可操作平臺,嵌入式Linux具有良好的移植性、可重用性和擴展性,便于預失真控制系統(tǒng)的優(yōu)化和調(diào)整,同時也減少了后續(xù)開發(fā)工作,對于其它設備驅(qū)動的開發(fā)具有一定的參考價值。
[1] Kenington P. High-Linearity RF Amplifier Design[M]. Norwood,MA: Artech House,2000.
[2] 王佳濤,郭裕順.功放的數(shù)字基帶預失真技術(shù)研究[J].電子器件,2009,32(6):1074-1076.
WANG Jia-tao, GUO Yu-shun. Research of Amplifier’s Digital Baseband Predistortion[J]. Electron Devices(Chinese), 2009,32(6):1074-1076.
[3] Saleh A, Salz J. Adaptive linearization of power amplification in digital radio systems[J]. Bell System Technical Journal, 1983,62(4):1019-1033.
[4] Nagata Y. Linear amplification technique for digital mobile communications[C]//IEEE 39th Vehicular Technology Conference,1989(1):159-164.
[5] 宋寶華.Linux設備驅(qū)動開發(fā)詳解[M].2版.北京:人民郵電出版社,2010.
[6] 李 俊.嵌入式Linux設備驅(qū)動開發(fā)詳解[M].北京:人民郵電出版社,2008.
[7] C Eun, E J Powers. A new Volterra predistorter based on the indirect learning architecture[J]. IEEE Transactions on Signal Processing,1997,45(1):223-227.
[8] 鄧華文. ARM嵌入式Linux系統(tǒng)研究與開發(fā)[D].成都:電子科技大學,2011.
[9] 姜 楠,宋文龍,郭曉剛. 基于HD7279A的單片機顯示及鍵盤系統(tǒng)設計[J]. 自動化儀表,2007(11):22-24.
JIANG Nan, SONG Wenlong, GUO Xiaogang. Design of HD7279A-based Display and Keyboard System for Single Chip Computer[J]. Process Automation Instrumentation, 2007(11):22-24.
[10] 張文廣,周紹磊,史賢俊,等. LCM12832ZK型串/并行圖形點陣液晶顯示模塊及其應用[J]. 國外電子元器件,2005(12):59-63.
ZHANG Wen-guang, ZHOU Shao-lei, SHI Xian-jun,etc. Parallel/Serial graphics dot-matrix LCD modular LCM12832ZK and its application[J]. International Electronic Elements,2005(12):59-63.
[11] LI Hao, K. Dae Hyun, CHEN Deming. A Fast Digital Predistortion Algorithm for Radio-Frequency Power Amplifier Linearization With Loop Delay Compensation[J]. IEEE Journal of Selected Topics in Signal Processing, 2009,3(3):374-383.
[12] LIU Taijun, S. Boumaiza, F. M. Ghannouchi. Deembedding static nonlinearities and accurately identifying and modeling memory effects in wide-band RF transmitters[J]. IEEE Trans Microw Theory Tech., 2005,53(11):3578-3587.
[13] H Besbes, T Le-Ngoc. A fast adaptive predistorter for nonlinearly amplified M-QAM signals[C]. IEEE Global Telecommunications Conference, 2000,11(1): 108-112.
[14] S Haykin. Adaptive Filter Theory (Fourth Edition)[M]. 北京:電子工業(yè)出版社,2006.
[15] R Seroul. Programming for Mathematicians, Berlin[M]. Springer-Verlag,2000.
[16] 錢 晨,徐榮華,王欽若.基于Linux操作系統(tǒng)的設備驅(qū)動程序開發(fā)[J].微計算機信息,2004,20(9):132-135.
QIAN Chen, XU Rong-hua, WANG Qin-ruo. The Development of Device Driver on Linux[J]. Microcomputer Information, 2004,20(9):132-135.