最大似然解碼

2023-01-31 02:27:05 字數 3107 閱讀 3024

分組碼定義:將信源的資訊序列按照獨立的分組進行處理和編碼,稱為分組碼。編碼時將每k個資訊位分為一組進行獨立處理,變換成長度為n(n>k)的二進位製碼組。

簡單實用編碼包括奇偶監督碼、二維奇偶監督碼、恆比碼、正反碼,其中奇偶監督碼和分組碼又同屬於代數碼。分組碼一般用符號(n,k)表示,其中n是碼組的總位數,又成為碼組的長度(碼長),k是碼組中資訊碼元的數目,n–k= r 為碼組中的監督碼元數目。在分組碼中,把碼組中「1」的個數目稱為碼組的重量,簡稱碼重。

把兩個碼組中對應位上數字不同的位數稱為碼組的距離,簡稱碼距。碼距又稱漢明距離。

前面我們介紹了通道編碼的基本概念,下面將詳細分析有關解碼的一些理論依據。

圖5-6 通道編碼器結構框圖

已知通道編碼器的框圖如圖5-6所示,設任乙個資訊序列m是乙個k位碼元的序列,通過編碼器按一定的規律(編碼規則)產生若干監督元,形成乙個長度為n的序列(n重陣列)即碼字(一種按特定規則排列並具有唯一含義的碼序列),每乙個資訊序列將形成不同的碼字與之對應,在二進位制下,k長序列共有2k種組合,因此編碼輸出的碼字集合共有2k個碼字,而二進位制下的n重共有2n種,顯然編碼輸出的碼字僅是所有二進位制n重中的一部分,編碼實際上就是從這2n種不同的n重陣列中按一定規律(編碼規則)選出2k個n重代表2k個不同的信源原始資訊。

經編碼後產生的(n,k)碼送信道傳輸,由於通道干擾的影響將不可避免地發生錯誤,這種錯誤有兩種趨勢:

①許用碼字變成禁用碼組,這種錯誤一旦出現,由於接收到的碼組不在編碼器輸出的碼字集合中,解碼時可以發現,所以這種錯誤模型是可檢出的。

②許用碼字變成許用碼字,即發端發生某一碼字ci經傳輸後錯成碼集中的另一碼字cj,這時收端無法確認是否出錯,因此這是一種不可檢出的錯誤模型。

可見,乙個n重二進位制碼字c在傳輸中由於通道干擾的影響,到接收端可能變成2n種n重中的任乙個,為了能在接收端確認傳送的是何訊息,就需要建立一定的判決規則以獲得最佳解碼。一般來說,解碼器要完成比編碼器更為複雜的運算,解碼器效能的好壞、速度的快慢往往決定了整個差錯控制系統的效能和成本。解碼正確與否的概率主要取決於所使用的碼、通道特徵及解碼演算法。

對特定碼類如何尋找解碼錯誤概率小、解碼速度快、裝置簡單的解碼演算法,是糾錯編碼理論中乙個重要而實際的課題。下面我們討論當碼類和通道給定時,應採用什麼樣的演算法使解碼錯誤概率最小。

由圖5-2可知,通道輸出的r是乙個二(或q)進製序列,而解碼器的輸出是乙個資訊序列m的估值序列。

解碼器的基本任務就是根據接收序列r和通道特徵,按照一套解碼規則,由接收序列r給出與傳送的資訊序列m最接近的估值序列。由於m與碼字c之間存在一一對應關係,所以這等價於解碼器根據r產生乙個c的估值序列。顯然,當且僅當= c時, = m,這時解碼器正確解碼。

如果解碼器輸出的≠c,則解碼器產生了錯誤解碼。之所以產生錯誤解碼是由於:首先,通道干擾很嚴重,超過了碼本身的糾錯能力;其次,由於解碼裝置的故障(這點本書不予討論)。

當給定接收序列r時,解碼器的條件解碼錯誤概率定義為

p(e | r)= p(≠ c | r)

所以解碼器的錯誤解碼概率

pe =

p(r)是接收序列r的概率,與解碼方法無關,所以解碼錯誤概率最小的最佳解碼規則是使

5-1)

因此,如果解碼器對輸入的r,能在2k個碼字中選擇乙個使p(i = c | r)(i = 1,2,…,2k)最大的碼字ci作為c的估值序列,則這種解碼規則一定使解碼器輸出錯誤概率最小,稱這種解碼規則為最大後驗概率解碼。

由貝葉斯公式

可知,若發端傳送每個碼字的概率p(ci)均相同,且由於p(r)與解碼方法無關,所以

(5-2)

對dmc而言

p(r|ci)= (5-3)

這裡碼字 ci =(ci1,ci2,…,cin) i=1,2,…,2 k

乙個解碼器的解碼規則若能在2k個碼字c中選擇某乙個c i並使式(5-2)成為最大,則這種解碼規則稱為最大似然解碼(mld),p(r|c)稱為似然函式,相應的解碼器稱為最大似然解碼器。由於與x是單調關係,因此式(5-2)與式(5-3)可寫成

= (5-4)

稱為對數似然函式或似然函式。對於dmc通道,mld是使解碼錯誤概率最小的一種最佳解碼方法,但此時要求發端傳送每一碼字的概率p(ci)(i = 1,2,…,2k)均相等,否則mld不是最佳的。在以後的討論中,都認為p(ci)均近似相等,因而mld演算法是一種最佳的解碼演算法。

例5.1 乙個碼由00000,00111,11100與11011四個碼字組成。每個碼字可用來表示四種可能的資訊之一。

可以算出該碼的最小距離d 0 = 3,由定理5.3可知,它可糾正在任何位上出現的單個誤碼。同時我們注意到,碼長為5的二進位製碼組共有2 5=32種可能的序列,除了上述4個許用碼組外,其餘28個為禁用碼組。

為了對該碼進行糾錯處理,需將28種禁用碼組的每乙個與4種許用碼字作「最鄰近性」的比較。這種處理意味著要建立乙個「解碼表」,所以解碼的本質就是對碼組進行分類,即先將所有與每個許用碼字有一位差錯的各個可能接收串行列在該碼字的下面,這樣,就得到表5-1中以虛線圍起的部分。除了這一部分之外,我們應注意到尚有8個序列未被列入。

這8個序列與每個碼字至少差二位。但是,它們與上述序列不同,沒有惟一的方法可把它們安排到表內。例如,既可將序列10001放在第4列,也可將它放在第l列。

在解碼過程中使用此表時,可將所接收序列與表內各列對照,當查到該序列時,將該列第一行的碼字作為解碼器的輸出。

表5-1 四個碼字的解碼表

用這種方式建立的表具有很大的優點。設通道誤位元率為pe,出現任何一種具有i個差錯特定模式的概率是(1pe)5-i。當pe < ,即通道的訊雜比足夠大時,可以看到:

(1pe)5 > pe(1pe)4 > (1pe)3 > …

即不出錯概率大於出錯概率;乙個特定的單個差錯模式要比乙個特定的兩個(或多個)差錯模式更容易出現。因此,解碼器將所收到的乙個特定碼彙編為在漢明距離上最鄰近的乙個碼字時,實際上是選擇了最可能傳送的那個碼字(設各個碼字的傳送機會相同)。這就是mld的具體應用,它實際上就是根據接收序列r,在2k個碼字集中,尋找與r的漢明距離最小的碼字ci,作為解碼輸出,因為它最可能是傳送的碼字。

這種解碼方法又稱為最小漢明距離解碼,執行這種解碼規則的解碼器就叫做最大似然解碼器。在上述條件下,其序列差錯概率最小。當用解碼表進行解碼時,為了實現最大似然解碼,可用上述方法列表對碼字進行分類。

但遺憾的是,表的大小隨碼組長度按指數關係增加,故對長碼來說,直接使用解碼表是不切合實際的。但對說明分組碼的某些重要性質而言,解碼表仍是一種很有用的概念***。