陳 巍,盧忠仁,陳曉翔,林嘉宇
(1.國(guó)防科技大學(xué)電子科學(xué)與工程學(xué)院,長(zhǎng)沙410073;2.武警沈陽(yáng)指揮學(xué)院,沈陽(yáng)110113)
傳輸領(lǐng)域正在經(jīng)歷急速發(fā)展階段,新的需求層出不窮,促使新的業(yè)務(wù)不斷產(chǎn)生,導(dǎo)致信道頻帶越來(lái)越寶貴。QAM調(diào)制方式有效緩解了通信傳輸中的帶寬壓力。QAM調(diào)制信號(hào)的幅度和相位都攜帶有信息。以32QAM為例,一個(gè)碼元可以攜帶5bit的信息,這大大提高了信道利用率。所以QAM調(diào)制方式被廣泛應(yīng)用于傳輸領(lǐng)域。
V.32協(xié)議ITU-T制定的9600bps高速modem的標(biāo)準(zhǔn)調(diào)制協(xié)議,它定義了8狀態(tài)32QAM網(wǎng)格編碼調(diào)制的編譯碼方式。在這個(gè)協(xié)議中,運(yùn)用了以“集合劃分映射”思想為基礎(chǔ)的格狀編碼調(diào)制技術(shù),簡(jiǎn)稱TCM。TCM克服了傳統(tǒng)信道編碼的缺點(diǎn),把調(diào)制與編碼結(jié)合起來(lái),在保持頻帶利用率基本不變的條件下,增加信道中傳輸信號(hào)集中的信號(hào)狀態(tài)數(shù)目,利用其冗余度進(jìn)行抗干擾編碼,從而提高能量利用率,可獲得3~6dB的功率增益,是一種高效調(diào)制方法。但是V.32協(xié)議有一個(gè)缺點(diǎn)就是在解調(diào)過(guò)程中用到了維特比譯碼,而高速Viterbi譯碼器的實(shí)現(xiàn)難度很大,所以該標(biāo)準(zhǔn)常用于低速數(shù)據(jù)傳輸系統(tǒng)的設(shè)計(jì)。該方案設(shè)計(jì)針對(duì)的不是高速數(shù)據(jù)傳輸系統(tǒng),而是語(yǔ)音通信系統(tǒng),語(yǔ)音的傳送速率不會(huì)超過(guò)9.6k,因此可以使用V.32協(xié)議進(jìn)行調(diào)制[1]。
網(wǎng)格編碼調(diào)制[2](Trellis Coded Modulation)技術(shù)將糾錯(cuò)編碼和調(diào)制技術(shù)有機(jī)結(jié)合,將編碼的冗余度用于調(diào)制信號(hào)集中的那些最易出錯(cuò),即距離最近的符號(hào)代碼,其基本原理如圖1所示。TCM利用碼率為k/(K+1)的格狀碼(卷積碼),將每一碼段映射為具有2(k+1)個(gè)調(diào)制信號(hào)集中的一個(gè)信號(hào)。在接收端,信號(hào)經(jīng)反映射后變換為卷積碼的碼序列,再送入Viterbi譯碼器譯碼以得到原始信號(hào)。
圖1 TCM編碼器一般方框圖
該部分實(shí)現(xiàn)分為調(diào)制模塊和解調(diào)模塊兩個(gè)部分。
調(diào)制模塊包括差分編碼、卷積編碼以及32QAM調(diào)制三個(gè)部分(如圖 2)[3]。
將待發(fā)送的數(shù)據(jù)分成連續(xù)的4位一組的數(shù)據(jù)組,每個(gè)數(shù)據(jù)組的Q3Q4比特具有90度旋轉(zhuǎn)不變性,不需要進(jìn)行差分編碼。Q1Q2比特?zé)o上述特性,它們?cè)?60度的旋轉(zhuǎn)周期上按00 01 10 11的四進(jìn)制碼配置,應(yīng)進(jìn)行模四的自然碼差分編碼。差分編碼后的Y1和Y2兩位用作隱藏式卷積碼編碼器的輸入,生成冗余位Y0。Y0的值可以根據(jù)P、Q分量的幅度及前四位比特的值確定。5位編碼比特Y0nY1nY2nY3nY4n共同確定了信號(hào)映射的星座點(diǎn)。因?yàn)椴罘志幋a的位置在卷積編碼之前,所以這種TCM編碼器對(duì)QAM的4重相位模糊透明。根據(jù)星座圖,碼變換將代碼Y0Y1Y2Y3Y4變換為適合D/A變換器使用的電平碼。
圖2 32QAM-TCM編碼器硬件結(jié)構(gòu)圖
2.1.1 差分編碼模塊的實(shí)現(xiàn)
從調(diào)制緩存區(qū)按字節(jié)讀出數(shù)據(jù)后,首先將一個(gè)字節(jié)分成低四位和高四位,按照由低到高的順序每四位一組進(jìn)行處理。方法是低四位時(shí)與0x0f按位與,取高四位時(shí)右移四位即可。在進(jìn)行差分編碼之前,把每組四位中的低兩位(即協(xié)議中的Q1Q2)取出提供給差分編碼函數(shù)調(diào)用。差分編碼使用查表方式進(jìn)行,Q2Q1被差分函數(shù)調(diào)用后,左移兩位與前一輸出Y2n-1,Y1n-1組成四位二進(jìn)制數(shù)Q2Q1Y2n-1Y1n-1,然后調(diào)用差分編碼查表函數(shù),Q2Q1Y2(n-1)Y1(n-1)的十進(jìn)制數(shù)值就是表中對(duì)應(yīng)的位置,表中對(duì)應(yīng)的十進(jìn)制數(shù)值,轉(zhuǎn)換為二進(jìn)制后輸出Y2:bit1 Y1:bit0即為譯碼結(jié)果,差分編碼表根據(jù)表一制作而成[3]。
2.1.2 卷積編碼的實(shí)現(xiàn)
卷積編碼(3,2,3)使用邏輯關(guān)系式運(yùn)算實(shí)現(xiàn)。差分編碼完成輸出以后是一個(gè)2bit的編碼輸出,Y2:bit1,Y1:bit0,通過(guò)和0x02按位與后右移一位分離出Y2,和0x01按位與分離出Y1。三個(gè)T寄存器(見(jiàn)V.32協(xié)議標(biāo)準(zhǔn)圖2),從左到右分別命名為T(mén)2T1T0。寄存器的輸出為當(dāng)前的狀態(tài)輸出,程序中分別記為t2、t1、t0,寄存器的輸入(即為下一時(shí)刻)分別記為 t2_left、t1_left、t0_left。三個(gè)延時(shí)寄存器的初始輸出狀態(tài)均設(shè)為零。根據(jù)邏輯關(guān)系式y(tǒng)0=t0,t2_left=t0,t1_left=t28y28y1((t18y2)&t0),t0_left=t18y28(t0&y1),8表示為異或,即可求出y0。然后將輸入的數(shù)值左移一位與y0相或,即得到卷積編碼的3bit輸出。
表1 差分編碼表
2.1.3 32QAM調(diào)制的實(shí)現(xiàn)
正交幅度調(diào)制是由兩路正交的抑制載頻的雙邊帶調(diào)幅所組成。兩路調(diào)制載波相差90度,所以稱為正交調(diào)幅。當(dāng)輸入的基帶信號(hào)為多電平時(shí),就構(gòu)成了多電平正交幅度調(diào)制(MQAM)。
經(jīng)過(guò)差分編碼和卷積編碼后,得到Y(jié)0Y1Y2Y3Y4五個(gè)比特的結(jié)果,然后進(jìn)行星座表查表,得到各個(gè)對(duì)應(yīng)星座點(diǎn)的橫坐標(biāo)與縱坐標(biāo)的值,這兩個(gè)值就是控制正交幅度調(diào)制信號(hào)的值。在此,將橫坐標(biāo)和縱坐標(biāo)分別分為正負(fù)4個(gè)電平等級(jí)(共8個(gè)),即 ±1、±2、±3、±4。星座表的制作根據(jù)圖 3而定[4]。
調(diào)制模塊包括32QAM解調(diào)、維特比譯碼以及差分譯碼三個(gè)部分。
2.2.1 32QAM解調(diào)的實(shí)現(xiàn)
解調(diào)是調(diào)制的逆過(guò)程,模擬信號(hào)經(jīng)相干解調(diào)后得到兩個(gè)幅度值Q、P,根據(jù)這兩個(gè)幅度值可以進(jìn)行查星座圖譯碼表得到Y(jié)0Y1Y2Y3Y4五個(gè)比特的結(jié)果。譯碼表也是根據(jù)圖3進(jìn)行星座圖編碼表的反查表獲得。
圖3 適合于V.32 TCM協(xié)議的信號(hào)星座圖
2.2.2 維特比譯碼的實(shí)現(xiàn)
卷積編碼使用維特比算法進(jìn)行譯碼。由于(3,2,3)卷積碼的約束長(zhǎng)度是9,即譯碼輸入序列的碼長(zhǎng)不能少于27個(gè)比特位,至少要計(jì)算到網(wǎng)格圖的第10級(jí)分支時(shí)才開(kāi)始輸出。所以在計(jì)算第10級(jí)分支時(shí)輸出此時(shí)最小漢明距離對(duì)應(yīng)的第0級(jí)子組的譯碼,并且從第10級(jí)開(kāi)始,每輸入一個(gè)接收子組,就輸出一個(gè)譯碼子組,直到接收序列輸入結(jié)束。從輸入緩沖區(qū)中每次輸入3bit的數(shù)據(jù),共輸入八拍24bit,每拍時(shí)鐘均計(jì)算每條支路與輸入數(shù)據(jù)的漢明距離,然后以時(shí)刻左側(cè)狀態(tài)為準(zhǔn),每一個(gè)左側(cè)狀態(tài)只保留一條支路漢明距離最小的支路,將支路號(hào)、漢明距離、支路左側(cè)狀態(tài)分別對(duì)應(yīng)存入數(shù)組transfer_way_num[t][]、transfer_HM[t][]、survive_left_state[t][]。將到每個(gè)右側(cè)狀態(tài)左邊連接的支路號(hào)存入state_from_transferway[t][]。依次類推,一直到達(dá)第九個(gè)時(shí)鐘,然后進(jìn)行回溯,算出總漢明距離最小的路徑,輸出2bit的結(jié)果,將t0-t1之間支路的右側(cè)狀態(tài)更新為初始狀態(tài),同時(shí),將能到達(dá)t1時(shí)刻初始狀態(tài)的所有路徑保存。以后,每個(gè)時(shí)鐘周期輸出3bit的數(shù)據(jù),進(jìn)行一次回溯選擇最優(yōu)幸存路徑,然后將2bit譯碼輸出,直至譯碼完成[5]。
2.2.3 差分譯碼過(guò)程的實(shí)現(xiàn)
經(jīng)過(guò)維特比譯碼后,差分譯碼輸入數(shù)值為V32協(xié)議中的 Y2Y1,然后與前一次輸入 Y2(n-1)Y1(n-1)組成四位二進(jìn)制數(shù)Y2(n-1)Y1(n-1)Y2Y1,再通過(guò)差分譯碼查表函數(shù)求出Q2Q1。差分解碼后得到Q2Q1,將星座中的Q4Q3左移兩位后再與Q2Q1相或,就可以得到一個(gè)碼組。由于調(diào)制的時(shí)候是按照一個(gè)字節(jié)的高低四位兩個(gè)碼組進(jìn)行拆分調(diào)制的,所以兩個(gè)碼組以后就可以進(jìn)行字節(jié)恢復(fù),將高四位字節(jié)左移4位,與低四位相或得到一個(gè)字節(jié)。至此,解調(diào)過(guò)程全部完成。
以上給出了32QAM調(diào)制下高效利用頻帶的多進(jìn)制TCM編碼方案,用該方案在獲得寬頻帶利用率的同時(shí)可取得更加優(yōu)異的編碼性能。實(shí)際證明,采用此種方法能使誤碼率達(dá)到10-7,基本上能滿足低速數(shù)據(jù)傳輸系統(tǒng)的性能要求,有著極其廣闊的應(yīng)用前景。
[1] UNGERBOECK G.Channel coding with multileve/phase[J].IEEE Trans Information Theory.1982,28(1):55-67.
[2] 樊昌信,曹麗娜.通信原理[M].北京.國(guó)防工業(yè)出版社,2006.
[3] ITU-T Recommendation V.32.A Family Of 2-Wire,Duplex Modems Operating At Data Signalling Rates Of Up To 9600 bitls For Use On The General Switched Telephone Network And On Leased Telephone-Type Circuits[S].ITU-T.03/93.1993.
[4] 于康友,封化民,李楊,方勇.調(diào)制解調(diào)器原理、選用與測(cè)試[M].北京:電子工業(yè)出版社,1994.
[5] 鄭輝.卷積碼的簡(jiǎn)化Viterbi譯碼算法[J].電信技術(shù)研究,1986(11):24-30.