鄧國輝,李金武
(鄭州科技學院信息工程系,河南鄭州450064)
在實際的通信過程中,傳輸信息的信道的失真會引起信息比特間的干擾,如果不采取相應的措施,會產(chǎn)生較高的誤碼率,嚴重影響通信質(zhì)量,這在實際的通信過程是不能允許的。然而,在正常的通信過程中確實存在信息的傳輸信道失真問題,本文以減少由于信道失真引起的接收信號中的碼間串擾(ISI)為目的,具體分析了帶寬受到限制,存在失真且先驗未知以及具有AWGN條件下信道中的離散時間白噪聲信道中的設計問題。首先給出數(shù)學模型—等效離散時間信道模型,在將傳統(tǒng)的維特比(Viterbi)算法加載到信道上,得到上述條件下的維特比(Viterbi)算法具體表現(xiàn)形式。大大補償了存在碼間串擾(ISI)的信道的接收性能,降低了誤碼率。本篇采用離散時間白噪聲信道,即采用雙二進制信號脈沖傳輸四電平(M=4)PAM的等效離散時間信道模型,使用VC6.0對數(shù)學模型進行編程,并根據(jù)程序運行結(jié)果分析其性能。提出的帶寬受限,存在失真且先驗未知以及具有AWGN條件下信道的離散時間白噪聲信道(Viterbi)算法的實現(xiàn),所得結(jié)論可為工程應用提供相應指導。
在對于導致碼間串擾(ISI)的帶限信道的處理過程中,比較方便的做法是研究模擬(連續(xù)時間)系統(tǒng)的等效離散時間模型。信道可以建模為一個線性濾波器。即就是通過將表示為具有帶限頻率響應特性的線性濾波器,因為發(fā)送機以速度1/T符號/s發(fā)送離散時間符號,而且接受機中匹配濾波器的抽樣輸出也是離散時間信號,且具有速度為每秒1/T的樣值,因此發(fā)送機的沖擊響應為g(t)的模擬濾波器、沖擊響應為c(t)的信道、接收機的沖擊響應為h*(-t)的匹配濾波器和抽樣器的級聯(lián)結(jié)構(gòu)可以用抽頭增益系數(shù)為{xk}的等效時間離散橫向濾波器來表示。等效離散時間模型如下圖1所示。
圖1 具有碼間串擾的信道的等效離散時間模型
因此,在上圖中,序列{yn}通過數(shù)字濾波器1/F*(1/z*)導致一個輸出序列 vk為[1][2]:
試中{nk}是一個高斯白噪聲序列,{fk}是傳遞函數(shù)為F(z)的等效離散時間橫向濾波器的一組抽頭系數(shù),匹配濾波器、抽樣器和噪聲白化濾波器的級聯(lián)稱為白化匹配濾波器[6][7](WMF)
為了方便計算,將F(z)的能量歸一化為1,即:
F(z)的最小相位條件意味著,對每一個M值其沖激響應的頭M個樣值的能量最大。
信息序列{Ik}的MLSE是最容易由白化濾波器輸出端的接收序列{vk}描述的。存在碼間串擾且覆蓋L+1個符號(L個串擾分量)的情況下,MLSE準則等價為一個離散時間有限狀態(tài)機的狀態(tài)估計問題。該有限狀態(tài)機就是上面圖1的離散濾波模型,在k時刻,其狀態(tài)為:
式中k≤0時Ik=0。
既然狀態(tài)數(shù)為ML,因此可采用ML的狀態(tài)網(wǎng)格圖來表示該信道模型的狀態(tài)隨離散時間變化的狀態(tài)轉(zhuǎn)移情況,采用維特比算法可有效地計算出該網(wǎng)格的最大似然路徑,也即可得的最大似然序列的解碼。設通信開始時接收輸出樣值為:
計算ML+1個對數(shù)似然函數(shù)量度[2]:
對(5)式兩邊同時取對數(shù)得到下面的表達式為[2]:
上面之所以式計算ML+1個量度,是因為式中的條件概率的條件為 Ik,Ik-1,…Ik-L的種數(shù)為 ML+1個。
對于{ηk}為獨立高斯白噪聲的情況[4],對于(1)式[1,2]的對數(shù)似然函數(shù)可表達為大概率密度函數(shù)的指數(shù)部分[1][2],利用(1)式有下列表達式:
于是:
將IL+1,IL,…I2I1共有ML+1個可能的序列劃分為ML組。這ML個狀態(tài)為IL+1,IL,…I2I1。而每組中序列共有M種可能性,取決于I1的不同。
在ML組中每組的M種可能序列中選擇概率最大者,對應的序列稱為幸存序列的量度為[2]:
舍去每組剩余的M-1個序列,保存幸存序列以及其量度,以便保留下來的幸存序列共ML個。
當接收到下一個新的vL+2時,這ML個幸存序列向后延伸一級,又得到了ML+1種可能的序列。利用前一次的計算的幸存序列量度和由于新收到的vL+2而獲得的新的增量來計算這ML+1種可能的序列的概率。
由于收到新增vL+2而獲得的新的增量為:
將這ML+1種可能的序列按照可能的狀態(tài)劃分為 ML組,每組中 M 個序列,這些序列在I2上不同,在每組中選擇一個最可能的序列作為幸存序列,其量度為[2]:
于是又得到了新的ML個幸存數(shù)列。
在不斷接收到新信號的過程中,每收到一個新的信號值,重復上述選擇幸存序列的過程并計算幸存序列的量度。
一般地,當接收到vL+k時,將ML+1種可能序列分為ML組,在每組中選擇一個幸存序列,并計算幸存序列的量度為[1][2]:
因此,當接收到vL+k時,維特比算法需要計算下列ML+1個量度:
然后進行幸存序列的選擇。
維特比算法中,在計算第K時刻的幸存路徑(共ML條)時,我們將發(fā)現(xiàn)這些幸存路徑的K-5L以及更早時刻的位置處以概率1趨近于相同,因此,在K時刻對5L及以前的序列可以做判決。也即,維特比算法中,解碼延遲達到5L以后,這種準最佳過程所引起的性能損失可以不考慮。
為了說明本文的算法,在這里采用采用雙二進制信號脈沖傳輸四電平[5](M=4)PAM。因此,每一個符號是從集合{-3、-1、1、3}中選出的一個數(shù),在這個部分響應信號中,假設已接受v1=I1+χ1,v2=I2+I1+ χ2,且{χi}是統(tǒng)計獨立零均值高斯噪聲?,F(xiàn)在可以計算16個度量(前兩層)。PM1=-,I2,I1=1、-1、3、-3。k≤0 時,Ik=0依次類推,將輸入的100個字符,經(jīng)過解碼器后,解出最佳結(jié)果。
維特比算法基本原理:從第二層開始,當I=3的時候,由于χ服從零均值高斯分布,在matlab中[3],利用 randn(1,100),產(chǎn)生 100 個零均值方差為1的隨機數(shù),程序如下:
將其放到y(tǒng)ita的數(shù)組中,然后利用公式將產(chǎn)生的100個的隨機數(shù)分別代入,如當?shù)诙覫=3時候,將第一層中I的四個數(shù)值分別代入公式,然后PM中就會出現(xiàn)關于I1的函數(shù),這時候共有4種可能性,將隨機數(shù)分別代入后,得到的最大值,所對應的路徑,此時就可以選定了I1的數(shù)值,同理令I2分別等于1、-1、-3,按照相同的方法可以選出I1的值,這樣前兩層的共有16個分支就可以淘汰12條了。
這個時候第一二層的這四個路徑對應了四個PM值,此時選第三層的時候,由于第二層現(xiàn)在有四個分支,每個分支又都是四條路,又是16條路,當I3=3的時候,將前面剩下的四條路分別按照相同的方法在代入(將對應的一個I2的值,所對應的PM值代入,此時共有四組),選出此時的最大值,對照相應的路徑,就確定了一條路。然后I3分別等于1、-1、-3的時候,又都選定好了路,依次類推,推到第100層(本篇文章輸入的字符是100個,輸入成千上萬個字符一個道理),這樣就又確定了四條路徑每一輪都是16里面選4個,最后要得到的是一條最佳路徑(即解碼出來的結(jié)果),之所以每輪都留四條路是為了更加保險。
在VC6.0平臺下的程序運行流程圖如圖2所示。
圖2 程序流程圖
如果不加上噪聲的干擾,那么經(jīng)過解碼器后輸出來的結(jié)果肯定和原來的輸入完全一樣,否則肯定是錯的,在不加噪聲干擾的情況下,輸入字符經(jīng)過解碼器后,輸出的結(jié)果和輸入的完全一樣,見圖3。
圖3 不加噪聲干擾輸出結(jié)果圖
加上噪聲干擾之后,輸出的結(jié)果由于噪聲的存在會存在一定的誤差,這個誤差(即誤碼率)和所加的噪聲的大小有關,此時加入的是均值為0方差為1的隨機產(chǎn)生的100個字符的噪聲,輸出結(jié)果為圖4。
圖4 有噪聲下輸出結(jié)果圖
從仿真結(jié)果來看,Viterbi譯碼算法可以降低檢測器對對系統(tǒng)信道質(zhì)量的要求,而且大大補償了存在碼間串擾(ISI)的信道接收性能,Viterbi譯碼算法對于信道特性無論好壞都是普遍適用的,且從錯誤概率上來看,是一種信道存在碼間串擾(ISI)的接收性能的最佳的補償方法,但是隨著噪聲干擾的增加,系統(tǒng)的性能也開始變差,傳輸能力下降,誤碼率增加。
[1]張力軍等譯.數(shù)字通信(第四版)[M].北京:電子工業(yè)出版社,2010.
[2]邵玉斌編寫.數(shù)字通信(第四版)講義[M].云南:昆明理工大學出版社,2005.
[3]邵玉斌.通信系統(tǒng)建模與仿真實例分析[M].北京:清華大學出版社,2008.
[4]樊昌信,詹道庸,徐炳祥,等.通信原理[M].北京:國防工業(yè)出版社,2000.
[5]王新梅,肖國鎮(zhèn).糾錯碼原理與方法[M].西安:西安電子科技大學出版社,2001.
[6]張旭東,陸明泉.離散隨機信號處理[M].北京:清華大學出版社,2006.
[7]趙樹杰,趙建勛.信號檢測與估計理論[M].北京:清華大學出版社,2008.