基于DSP平臺的多音平行體制調(diào)制端的實現(xiàn)[圖]
摘要:以32音并行體制為例,利用DSP平臺實現(xiàn)了多音并行體制的調(diào)制端,給出了其主要模塊的具體實現(xiàn)方法。由于并行體制技術(shù)成熟、成本低、高性價比對提高數(shù)據(jù)傳輸速率、消除多徑衰落有益。
短波通信中常采用多音并行和單音串行兩種體制來進(jìn)行高速數(shù)據(jù)的傳輸。單音串行體制僅采用一個載波,串行發(fā)送數(shù)據(jù)信號。由于每個碼元占據(jù)了整個頻譜,碼元寬度窄,當(dāng)傳輸高速數(shù)據(jù)時,實現(xiàn)復(fù)雜,且碼間串?dāng)_嚴(yán)重。而多音并行體制的主要思想就是把高速串行信道分裂成許多低速的并行信道,以適應(yīng)短波信道低速傳輸?shù)奶匦?,在每個子信道上傳送一個副載波,采用頻分正交調(diào)制,用多個副載波并行傳輸?shù)姆椒ㄌ岣咚俾省2⑿畜w制的傳輸,是采用加寬碼元寬度,使其遠(yuǎn)大于多徑時延,消除多徑衰落的影響。并行體制技術(shù)成熟、成本低,具有較高的性價比。本文以32音體制為例說明短波并行體制調(diào)制端的DSP具體實現(xiàn)方法。
1 32音并行體制調(diào)制端的設(shè)計
本并行體制在音頻頻帶內(nèi)采用32個正交副載波音,對比特同步數(shù)據(jù)傳送采用正交差分相移鍵控(QDPSK)調(diào)制。
具體設(shè)計要求:
(1)在數(shù)據(jù)輸入端口接收不同速率的串行二進(jìn)制數(shù)據(jù):300 b·s-1,600 b·s-1,1 200 b·s-1;
(2)對接收到的二進(jìn)制數(shù)據(jù)完成前向糾錯(FEC)編碼和交織;
(3)每個單音上采用QDPSK調(diào)制;
(4)采用32個正交載波音,每個音相隔56.25Hz;
(5)采用某種分集方式。
圖1為多音并行體制下發(fā)射端功能框圖。
2 軟硬件平臺介紹
本文實現(xiàn)多音并行調(diào)制端的硬件平臺如圖2所示,主要由計算機PC、DSP-TMS320C6416、A/D芯片TLV320AIC20組成。DSP通過多通道緩沖串口1(McBSP1)與計算機相互通信,同時通過多通道緩沖串口0(McBSPO)與TLV320AIC20相互通信。
本平臺采用的TMS320C64xx系列是2000年3月TI正式發(fā)布的定點系列,主頻1.1GHz,處理速度接近9 000 MI·s-1總體性能比C62xx提高了10~15倍。
TLV320AIC20是TI公司生產(chǎn)的一款低功耗高性能的雙通道A/D芯片,可含有兩個16位A/D通道和兩個16位D/A通道,完成模擬與數(shù)字話音的轉(zhuǎn)換工作,軟件可編程寄存器內(nèi)含有6種可編程的控制寄存器,配置方便。
軟件平臺采用CCS(Code Composer Studio)系統(tǒng),其包含一整套用于開發(fā)和調(diào)試嵌入式應(yīng)用的工具。它包含適用于每個TI器件系列的編譯器、源碼編輯器、項目構(gòu)建環(huán)境、調(diào)試器、描述器、仿真器以及多種其它功能。
3 并行體制關(guān)鍵模塊的具體實現(xiàn)
3.1 核心模塊-FFT
由于發(fā)送信號是一組余弦函數(shù)的疊加。假設(shè)信號是由一組N個頻率為f1,f2,f3,…,fN,初始相位為θ1,θ2,θ3,…,θN,幅度為A的余弦信號,故其疊加后的信號為
其中,RES[]是取函數(shù)的實部。
從式(1)中可以看出,利用反傅里葉變換(IFFFT)可以方便地產(chǎn)生前導(dǎo)序列和生成調(diào)制信號方便。同時反傅里葉變換在DSP中運算量不大,并可以直接調(diào)用傅里葉變換,將輸入信號的格式稍加處理即可得到反傅里葉變換的結(jié)果。
本文設(shè)計的并行體制要求32個數(shù)據(jù)音中,相鄰兩個音之間相隔56.25 Hz并且正交,這32個數(shù)據(jù)音分別為450Hz,506.25Hz,…,2193.75Hz。同時采用128點的快速傅里葉變換實現(xiàn)前導(dǎo)序列和數(shù)據(jù)信息的調(diào)制。由于32個數(shù)據(jù)音中最大頻率是2193.75Hz,根據(jù)Nyquist采樣定理,采樣速率fs應(yīng)大于信號最大頻率的2倍,本文使用fs=7200Hz的采樣速率。
由于設(shè)計的調(diào)制后碼元周期是22.5ms,在7200Hz采樣率的條件下,需要162個樣點構(gòu)成一個碼元,而IFFT的點數(shù)是128<162,所以對于IFFT的輸出需要補充34點才能構(gòu)成162點滿足一個碼元要求。補充樣點的方法是:直接從IFFT輸出數(shù)據(jù)的最前面截取34點補充到128點以后,這樣做的同時也能保證一個碼元內(nèi)信號相位的連續(xù)性。
由于采用128點的IFFT和7200的采樣率,故IFFT中每個頻點之間的頻率間隔為
可以看出56.25Hz的頻率分辨度正好是32個數(shù)據(jù)音之間的頻率間隔,且32個數(shù)據(jù)音都是56.25Hz的整數(shù)倍,這樣便于實現(xiàn)數(shù)據(jù)音的調(diào)制。
在DSP中利用FFT模塊,將輸入的復(fù)信息實部虛部的順序改為先虛部再實部。根據(jù)32個音的頻率f與頻率分辨度△f的比值得到頻點位置n= fi/△f,然后在對應(yīng)的頻點處填寫復(fù)信息。這樣就能通過IFFT得到需要的調(diào)制信息。各數(shù)據(jù)音對應(yīng)的頻點位置和編號,如圖3所示。
3.2 前導(dǎo)同步數(shù)據(jù)構(gòu)成
在數(shù)據(jù)傳送之前應(yīng)發(fā)送同步先導(dǎo)信號,同步先導(dǎo)信號包含兩段。第一段持續(xù)10個碼元(碼元寬度225ms),并包括675Hz、900Hz、1125Hz、1518.75Hz、1743.75Hz和1968.75Hz共6個等幅未經(jīng)調(diào)制的數(shù)據(jù)音,幅度為3。第二段應(yīng)持續(xù)一個信號碼元,包括32個數(shù)據(jù)音且幅度為1。最后一段前導(dǎo)序列產(chǎn)生了后續(xù)信號需用的啟動相位基準(zhǔn)。
發(fā)送端一次發(fā)送的數(shù)據(jù)構(gòu)成,如圖4所示。前導(dǎo)序列的發(fā)送包含了11個碼元,在進(jìn)行前導(dǎo)序列的發(fā)送時,要保證每一部分都滿足規(guī)定的碼元持續(xù)時間。如果前導(dǎo)序列的構(gòu)成不準(zhǔn)確或持續(xù)碼元不足,都直接影響到接收端對信號的捕獲。
圖5所示為兩段前導(dǎo)同步信號在DSP中的生成圖。在每段前導(dǎo)序列生成圖中前兩個是IFFT時在各個頻點填充的復(fù)數(shù)值,第3個是經(jīng)過IFFT后前導(dǎo)序列波形圖。
3.3 數(shù)據(jù)調(diào)制信號的實現(xiàn)
數(shù)據(jù)段發(fā)送32個已調(diào)制的數(shù)據(jù)音信號。各信號音的初始碼元相位已經(jīng)確定,而后用數(shù)據(jù)比特流對32個數(shù)據(jù)音進(jìn)行調(diào)制。各數(shù)據(jù)音采用的調(diào)制方式是QDPSK調(diào)制。QDPSK是正交差分相移鍵控調(diào)制,是一種相對移相的調(diào)制方式,它利用前一個碼元相位為參考,根據(jù)已知序列比特流進(jìn)行調(diào)相,如表1所示。
假設(shè)某個數(shù)據(jù)音調(diào)制的初始相位為θ0,理論上,首先根據(jù)第一個碼字查表1得到其△01,計算IFFT要填充的復(fù)數(shù)為,而后進(jìn)行第一個碼元的IFFT。再根據(jù)第2個碼字查表得△θ2,計算IFFT要填充的復(fù)數(shù)為,而后進(jìn)行第2個碼元的IFFT。以此類推,完成所有碼元的調(diào)制。在實際實現(xiàn)時,在DSP計算時,會出現(xiàn)隨著碼元數(shù)的增加,cos()*cos()的值越來越小,最后計算出的誤差較大。為避免這種情況,應(yīng)減少復(fù)數(shù)相乘的次數(shù)。
具體的做法是:
(1)根據(jù)QDPSK的星座圖對待調(diào)制的碼字進(jìn)行編碼:00→3,01→1,10→5,11→7。
(2)將前后碼字所對應(yīng)編碼后的碼進(jìn)行模8加,即得到當(dāng)前碼字所對應(yīng)的相位信息碼。相位信息碼只有8種可能{0,1,2,…,7},對應(yīng)的△θ分別是{0,π/4,π/2,…,7π/4},這樣查表即可得到△θ。
(3)計算,這樣只需計算一次復(fù)數(shù)乘就可以得到做IFFT所需的信息。
(4)記錄本碼字所對應(yīng)的相位信息碼,以用于下一個碼字的相位信息碼的計算。
3.4 前向糾錯(FEC)編碼
所有未知輸入數(shù)據(jù)應(yīng)具有附加的冗余位,用以糾正由傳輸媒介引起的錯誤。校驗位由一個縮短的Reed—Solmon碼(15,11)來計算,其生成多項式為
其中,a是伽羅瓦域的一個非零元素,GF(24)為GF(2)模形成的多項式域。所采用的是縮短為(7,3)的RS編碼。
RS(7,3)編碼采用3位16進(jìn)制碼生成4位16進(jìn)制的校驗監(jiān)督位,即12bit信息編碼生成16bit校驗監(jiān)督位,也就是RS(28,12,16)編碼。為了減小DSP的開銷,采用的編碼思想是預(yù)先建立校驗表而后逐位判決逐位編碼的方式。具體步驟如下:
(1)建立校驗表。編寫信息位是0800H,0400H,0200H,…,0008H,0004H,0002H,0001H所對應(yīng)的校驗位分別是:03959H,08DBDH,04FCFH,02E6EH,…,0156FH,0983EH,0DC87H。這樣可以建立校驗表:
.int 03959H,08DBDH,04FCFH,02E6EH
.int 037EEH,08A77H,045AAH,02855H
.int 02ACDH,0156FH,0983EH,0DC87H
(2)根據(jù)校驗表逐位編碼。假設(shè)需要編碼的信息是A81H共3位16進(jìn)制信息,將其轉(zhuǎn)換二進(jìn)制數(shù)為101010000001B。第1位是1,則取A1=02C7AH,第2位是0,則取A2=0,第3位是1,則取A3=0935BH,第4位是0,則取A4=0,…以此類推得到A1,A2,…,A12,將這12個校驗碼進(jìn)行異或得到這3位信息的4位校驗碼。
3.5 交織
交織是一種差錯控制技術(shù)。它的目的是使誤碼離散化,將突發(fā)差錯信道變?yōu)殡x散差錯信道,再通過糾正隨機差錯來改善數(shù)據(jù)傳輸質(zhì)量。原理把信息碼流在時間順序上按一定規(guī)則打亂,即相互穿插交織后再發(fā)送到信道中去。若交織后的碼流出現(xiàn)突發(fā)差錯,再經(jīng)過解交織還原成原來的碼流順序,則將突發(fā)連片差錯分散成隨機差錯,更加容易進(jìn)行糾錯。由于接收機在收到了整個交織塊并進(jìn)行解交織后才能解碼,所以交織帶來一個固有延時。
選取每種速率3種交織度來實現(xiàn)。分別是無交織(交織度為1)、短交織(交織度為4)、長交織(交織度為36)。
這里所說的交織度(1、4、36)指的是交織塊中一行所包含的4 bit碼字?jǐn)?shù)。以短交織為例,說明一個交織塊的構(gòu)成。
源數(shù)據(jù)以8bit作為1個單元,按列向交織區(qū)填充,如圖6所示。RS編碼時取4bit×3行數(shù)據(jù)作為1個碼字進(jìn)行編碼,形成4 bit×4行的校驗位。圖6中對信息位(D0,D1,D2,D3,D8,D9,D10,D11,D16,D17,D18,D19)進(jìn)行RS(7,3)編碼后生成校驗位為(P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15),并且依照圖中的格式存放在交織塊的對應(yīng)位置。當(dāng)一個交織塊填充滿后,就可以按行進(jìn)行一個交織塊數(shù)據(jù)bit的輸出,(D0,D1,D2,D3,D4,D5,…,P47,P60,P61,P62,P63)。
3.6 分集方式
分集技術(shù)是通過多個信道接收到承載相同信息的多個副本,由于多個信道的傳輸特性不同,信號多個副本的衰落就不會相同。接收機使用多個副本包含的信息能比較正確的恢復(fù)出原發(fā)送信號。本系統(tǒng)采用的是包含時間和頻率分集的方法。
在不同的數(shù)據(jù)速率下,1個碼元所用到的數(shù)據(jù)字大小不同,可以將300~1200 bit·s-1各種速率情況總結(jié)如下:1200bit·s-1速率時不做分集,一個數(shù)據(jù)字需要64bit信息;600bit·s-1速率時,一個數(shù)據(jù)字需要32bit信息;300bit·s-1對應(yīng)的是16bit的數(shù)據(jù)字。換句話說,就是在300bit·s-1數(shù)據(jù)速率下,只要有16bit新信息,就可以進(jìn)行一個碼元的調(diào)制。數(shù)據(jù)速率為600bit·s-1的情況,如表2所示。
在600bit·s-1數(shù)據(jù)速率情況下,要求在1~8及17~24號數(shù)據(jù)音傳送當(dāng)前數(shù)據(jù)字,9~16及25~32號數(shù)據(jù)音傳送的是之前第8個碼元傳送的數(shù)據(jù)字。在DSP內(nèi)存中開辟一個空間存儲過去8個碼元用到的數(shù)據(jù)字。
每次只要從i-8時刻提取數(shù)據(jù)字填充到9~16及25~32號數(shù)據(jù)音,而后進(jìn)行32音調(diào)制即可實現(xiàn)帶內(nèi)時間頻率分集。
4 結(jié)束語
發(fā)送端在DSP中實現(xiàn)的具體流程,如圖7所示。
具體實現(xiàn)時遇到的問題和難點:
(1)交織度、RS編碼方式、帶內(nèi)時間/頻率分集方式都隨數(shù)據(jù)的不同而不同,所以要考慮到相對應(yīng)程序的通用性,設(shè)定入口參數(shù)和參數(shù)下載的過程,這樣減小程序代碼段的開銷,但是增加了編程的復(fù)雜度。
(2)從源數(shù)據(jù)區(qū)向交織區(qū)填充數(shù)據(jù)時,要注意剩余bit的保存。從交織區(qū)向待調(diào)制區(qū)填數(shù)據(jù)時,要注意剩余bit的保存。
(3)在超級塊和超級塊的銜接處,存在剩余bit調(diào)制發(fā)送的問題。要把當(dāng)前超級塊所剩下的bit全部調(diào)制發(fā)送完,才能進(jìn)行下一個超級塊的構(gòu)成和發(fā)送。
作者:何緯 中國電子科技集團(tuán) 來源:電子科技