基于DSP的OQPSK調(diào)制器設計與實現(xiàn)
O 引言
OQPSK調(diào)制技術是繼OPSK之后發(fā)展起來的一種恒包絡數(shù)字調(diào)制技術,由于具有較高的頻帶利用率和在頻帶受限的系統(tǒng)中抗干擾性能強,被廣泛地應用于移動通信和衛(wèi)星通信領域。傳統(tǒng)的OQPSK調(diào)制器都是由硬件電路來完成,存在電路復雜、體積大和功耗高等缺點。隨著高速DSP處理器的應用,本文提出了一種基于DSP處理器的數(shù)字OQPSK調(diào)制器實現(xiàn)方案,讓OQPSK調(diào)制器的大部分功能由DSP處理器執(zhí)行相應的算法實現(xiàn),此方案省去了大量的硬件電路,具有體積小、功耗低、穩(wěn)定可靠等優(yōu)點。
1 OQPSK調(diào)制原理簡介
QPSK調(diào)制由于同相支路I和正交支路Q的兩個比特ab可能同時發(fā)生變化,因而存在180°的相位突變,這在頻帶受限的系統(tǒng)中會引起信號包絡的很大起伏,造成鄰道干擾。OQPSK調(diào)制對此作了改進,它將Q支路的符號在時間上錯開Tb,這樣上下兩個支路的相鄰碼元不可能同時變化,使得相鄰碼元相位差最大縮小至90°,從而減小了信號包絡的起伏。OQPSK調(diào)制的原理如圖1所示。
設輸入的數(shù)據(jù)為{Uk},則OQPSK已調(diào)波可以表示成:
式中g(t)為基帶脈沖波形,為消除碼間串擾且誤碼率最小,g(t)的波形應要求是平方根升余弦函數(shù)。為了簡單起見,本文中設g(t)為矩形脈沖波形。
2 OQPSK調(diào)制器的硬件選擇
OQPSK調(diào)制器的硬件開發(fā)平臺采用的是合眾達的SEED-DEC5416嵌入式DSP開發(fā)板,其系統(tǒng)結構原理如圖2所示。處理器是16bit定點DSP芯片TMS320VC5416,OQPSK信號的16位各樣點數(shù)據(jù)送往轉換精度只有14位的D/A轉換控制器TLC32044,該控制器只對16位中的高14位數(shù)據(jù)進行D/A轉換,轉換后的波形送示波器顯示。
3 OQPSK調(diào)制的軟件設計
主程序中首先對TLC32044芯片初始化(過程請查閱相應的PDF資料),然后調(diào)用執(zhí)行OQPSK調(diào)制子程序。下面介紹本文設計的在DSP處理器上實現(xiàn)OQPSK調(diào)制的方法。
3.1 基于DSP的OQPSK調(diào)制算法
設信息流為…bkakbk-1ak-1,并假定已經(jīng)保存在DSP的數(shù)據(jù)存儲空間中(實際應用中可以使用單片機通過HPI接口向DSP寫入要發(fā)送的信息流),其中bkakbk-1ak-1可以看成是一個字(16位)的最低4位。將輸入的信息流串并轉換成雙比特碼元,可以對信息碼字每次右移動2位實現(xiàn)。Q支路延遲和I支路的對應關系可以采用測試ak、bk-1和bk這三位碼元來完成,若測試位為O,則對正弦或余弦值取負以完成單/雙極性變換的功能。因此,可以畫出基于DSP的OQPSK調(diào)制算法流程,如圖3所示。圖3中已經(jīng)假設I支路一個碼元包含2個周期的余弦波,一個周期的余弦波采樣32個點,變量Count用于控制信息流的長度,OQPSK_Buf緩沖區(qū)用于保存調(diào)制完成的采樣點數(shù)據(jù)。
3.2 正弦和余弦數(shù)據(jù)的獲取
上述算法中需要正弦或余弦各點的采樣值,幅度為1的正弦各點采樣值大多都是小數(shù),而16位定點DSP芯片的操作數(shù)是整數(shù),為此要設定小數(shù)點在16位二進制數(shù)中的位置,考慮到調(diào)制后波形的最大值是,因此對正弦或余弦的數(shù)值采用Q14表示法才能滿足調(diào)制后數(shù)據(jù)的范圍。顯然,在匯編程序中按“.word x”形式直接輸入正弦和余弦的各點采樣值(Q14)比較繁瑣,可以用下面的一段C語言程序生成正弦采樣點數(shù)據(jù)文件(程序中已將正弦載波的頻率歸一化),然后在TC2.0軟件的當前路徑下將生成的包含文件sindata.inc移動到由軟件cos2.O建立的工程文件夾內(nèi),用匯編偽指令.include將該文件包含進來即可省去繁瑣的數(shù)據(jù)輸入。用類似的程序也可生成需要的余弦數(shù)據(jù)文件。
4 實驗結果
首先,在軟件開發(fā)環(huán)境ccs2.0(c5000)下進行OQPSK調(diào)制波形的仿真驗證。將匯編語言源程序和命令連接文件一起編譯、鏈接并裝載運行,接著執(zhí)行菜單命令View|Graph|Time Frenquency,打開Graph Property Dialog對話框,在該對話框中輸入標題名“OQPSK調(diào)制信號波形”、變量0QPSK_Buf的起始地址0x0124(命令連接文件中將.bss段定位到DARAM的org=0060h上),并選擇數(shù)據(jù)的長度為512、數(shù)據(jù)類型為16-bit signed integer及Qvalue的值為14,然后點擊該ok按鈕即可將OQPSK_Buf緩沖區(qū)的已調(diào)信號的采樣值生成已調(diào)信號波形,如圖4所示。為了驗證OQPSK調(diào)制算法及產(chǎn)生的波形的正確性,圖5又給出了相同的16位的數(shù)據(jù)流,在matlab環(huán)境下仿真出的OQPSK已調(diào)信號波形。兩圖的波形完全一致,且波形的最大幅度都為。
其次,在SEED-DEC5416硬件平臺上對輸出的調(diào)制波形進行驗證。在附錄中源程序的開始部分增加對TLC32044芯片初始化代碼,然后再改用一個死循環(huán)重復將OQPSK_Buf緩沖區(qū)保存的已調(diào)信號數(shù)值依次送往該芯片,在示波器上就可觀察到與圖4近似完全相同的調(diào)制波形。另外,調(diào)制速率的大小可以通過從OQPSK_Buf緩沖區(qū)取數(shù)送D/A轉換器后執(zhí)行一段延時程序來控制。
5 結束語
本文在DSP處理器上設計實現(xiàn)的數(shù)字OQPSK調(diào)制器,省去了傳統(tǒng)調(diào)制器的大量的硬件電路,具有功耗低、抗干擾能力強和軟件可升級等優(yōu)點。