在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

一種優雅高效的卷積碼譯碼方法—維特比譯碼

冬至子 ? 來源:大話信號處理 ? 作者:龍學焜(譯) ? 2023-07-07 14:56 ? 次閱讀

本文翻譯自 MIT 6.02 DRAFT Lecture Notes, 2012

CHAPTER 8:Viterbi Decoding of Convolutional Codes

面臨的問題

在接收端,我們有一組對應于發射監督比特的電壓采樣序列。為簡單并不失一般性,我們將假設接收端獲得了最佳采樣點(或者一組采樣集的均值對應一個監督位),通過與閾值比較判為“0”或“1”(解映射),并將判決結果傳遞給譯碼器。

現在我們有了一組接收比特序列,對應于卷積編碼輸出的監督比特。在沒有關于采樣點和譯碼器其它信息的情況下,譯碼過程被稱為硬判決譯碼(“硬譯碼”)。 如果提供給譯碼器以采樣點的“模擬”信息(以數字化形式,通過模數轉換量化),我們稱該過程為軟判決譯碼(“軟譯碼”)。

維特比譯碼器適用于任何一種情況。直觀講,由于硬判決譯碼會對比特是0還是1做出早期判決,因此在數字化過程中丟失了部分信息。硬判決將在接收的比特序列中引入更多的誤碼,因為它可能做出錯誤的判決,特別是對于接近閾值的電壓而言。盡管硬判決譯碼仍然可以產生最可能的發送序列,然而由于早期數字化中引入額外的錯誤,其糾錯能力將小于軟判決譯碼。但硬判決譯碼在概念上更容易理解,因此我們將從此開始,然后再介紹軟判決譯碼。

圖片

圖1

如前一章所述,網格為了解卷積碼的譯碼過程提供了一個很好的框架(如圖1)。假設我們有表述一組碼的整個網格,并且接收到一串數字比特(或電壓樣點)。如果接收沒有錯誤,那么定會有一些網格路徑與接收到的序列完全匹配,該路徑對應于發射監督比特(具體地說是在狀態轉移的過程中產生的發射監督比特)。從網格的每個節點發出,往上的路徑對應于“0”bit,往下的路徑對應于“1”bit,據此很容易譯得原始編碼信息。

當有誤碼發生時,我們可以做什么?如前所述,找到最可能發送的消息序列是有吸引力的,因為它最大限度地減少了譯碼的誤碼率。如果我們能夠想出一種方法來度量從一個狀態到下一個狀態所引入的錯誤量,那么我們可以沿著一條路徑累積這些錯誤量,并得出沿著該路徑的總錯誤量。然后,以此得到的總錯誤量最小的路徑就是我們想要的路徑,并且發送的消息序列可以通過上面解釋的狀態轉移關系方便地確定。

我們需要一種方法來收集通過網格狀態時發生的任何錯誤,以及無需遍歷整個網格的路徑導航方式(即無需窮舉所有可能路徑也能找到累積錯誤最小的那條路徑),維特比譯碼器解決了這些問題。動態規劃是一個解決優化問題的普遍方法,維特比譯碼就是其中一例。在本課程的后面,我們將在網絡路由中應用相似的概念,可以在多跳網絡中找到好的路徑。

維特比譯碼器

譯碼算法使用兩個度量:分支度量(branch metric,BM)和路徑度量(path metric,PM)。分支度量計算的是發射和接收內容之間的“距離”,它是為網格中的每條分支路徑定義的。在硬判決譯碼中,給出一組已經數字化的接收監督比特,分支度量就是監督比特預測值和接收監督比特之間的漢明距離。圖2展示了一個示例,其中接收的位為00,對于每個狀態轉移,分支路徑上的數字顯示該轉移的分支度量。其中有兩條路徑的分支量度為0,對應于漢明距離為0的唯一狀態和轉移關系,其他非0分支量度對應于存在位錯誤的情況。

圖片

圖 2

路徑度量值與網格中的狀態相關聯(即與整個路徑的每個節點有關)。對于硬判決解碼,它對應于網格中從初始狀態到當前狀態的最可能路徑與接收監督比特序列間的漢明距離?!白钣锌赡堋笔侵冈谟嬎銖某跏紶顟B到當前狀態之間的所有可能路徑度量后,取漢明距離最小的那條。具有最小漢明距離的路徑使誤碼最小化,并且當誤碼率較低時具有最大似然度。

維特比算法的關鍵點在于,接收機可以使用分支度量和先前計算的狀態路徑度量遞推地計算當前狀態的路徑度量。

計算路徑度量

假設接收機已經在時刻i計算好每個狀態s的路徑量度PM[s,i](設卷積碼的編碼約束度為K,則狀態數為2^(K-1))。在硬判決譯碼中,PM[s,i]的值是在接收監督比特與最可能發送的消息進行比較時得到的差錯比特總數(通常我們將狀態“00”作為起始狀態)。

在時刻i的所有可能狀態中,最可能的狀態是具有最小路徑度量的狀態。如果具備最小路徑度量的狀態不止一個,那它們擁有相等的可能性。

現在,我們如何確定時刻i+1下每個狀態s的路徑度量PM[s,i+1]呢?要回答這個問題,首先要注意的是,對于i+1時刻的狀態s,它必須由i時刻的兩種可能狀態中的一個中轉移而來。這兩個之前狀態記為α和β,并且對于給定的狀態s,它們是固定的。實際上α和β僅由卷積碼的編碼約束度決定,與生成多項式無關。圖2顯示了每個狀態的之前狀態(箭頭的另一端),該例中,對于狀態00,α= 00 ,β= 01;對于狀態01,α= 10 ,β= 11。

任何使得發射機在i+1時刻處于狀態s的信息序列必定使得發射機在i時刻位于狀態α或β。例如,在圖2中,在時刻i+1時到達狀態01,必定符合以下兩點之一:

  1. 發射機在時刻i位于狀態10,且第i個信息比特為0。在這種情況下,發射機輸出監督位11。由于接收比特為00,因此將產生2位誤碼,新的狀態路徑度量PM[01,i+1] = PM[10,i] + 2。
  2. 發射機在時刻i位于狀態11,且第i個信息比特為0。在這種情況下,發射機輸出監督位01。由于接收比特為00,因此將產生1位誤碼,新的狀態路徑度量PM[01,i+1] = PM[11,i] + 1。

通過上面直觀的分析,我們看到:

圖片 (式1)

其中α和β為上一時刻的可能狀態。

在譯碼算法中,重要的是記錄最小漢明距離對應的那條路徑,因為我們需要通過跟蹤所記錄的路徑,遍歷從最終狀態到最初狀態的整條路徑,然后將估計比特倒序,最終得到最可能的消息。

尋找最大似然路徑

現在我們可以來描述譯碼器是如何找到最大似然路徑了。初始時,狀態00代價為0,其它2^(k-1)-1個狀態代價為正無窮(∞)。

算法的主循環由兩個主要步驟組成:首先計算下一時刻監督比特序列的分支度量,然后計算該時刻各狀態的路徑度量。路徑度量的計算可以被認為是一個“加比選”過程:

1.將分支度量與上一時刻狀態的路徑度量相加。

2.每一狀態比較達到該狀態的所有路徑(每時刻每個狀態只有兩條這樣的路徑進行比較,因為只有兩條來自前一時刻狀態的分支)。

3.每一狀態刪除其余到達路徑,保留最小度量的路徑(稱為幸存路徑),該路徑對應于錯誤最少的路徑。

圖3顯示了維特比譯碼器從一個時刻到下一個時刻的譯碼過程。這個例子顯示接收到的位序列為11 10 11 00 01 10,以及接收器如何處理它。第四部分顯示了具有相同路徑度量四個不同狀態,在這個階段,通向這四個狀態的任一路徑都是最可能發送的比特序列(它們都具有度量為2的漢明距離)。最下面的部分只顯示幸存路徑的情況,幸存路徑是有可能成為最大似然路徑的路徑。還有很多其他路徑可以被刪除,因為它們不可能有狀態回溯回來。維特比譯碼器之所以能被實際應用,是因為幸存路徑的數量遠遠小于網格中所有可能路徑的總數。

圖片

圖片

圖片

圖 3

關于維特比譯碼器的另一個重點是,未來的知識將幫助它打破任何關系,甚至可能導致在特定時刻步驟被認為“最可能”的路徑發生改變。圖4繼續圖3中的例子,直到所有接收到監督比特序列都被譯碼,得到最有可能的發送消息路徑,其具有兩位錯誤。

圖片

圖片

圖 4

軟判決譯碼

硬判決譯碼通過將接收到的電壓信號與閾值進行比較,數字化后將其傳遞給譯碼器進行譯碼。結果,我們失去了部分信息:電壓為0.500001時數字化結果的可信度肯定比電壓為0.999999時低得多,但兩者都被視為“1”,且譯碼器現在以相同的方式對待它們,盡管0.999999比其他值更可能是“1”。

軟判決譯碼(有時也稱為“軟輸入維特比譯碼”)建立在這一觀察上,它在譯碼之前不會數字化輸入樣本。相反,它使用具備連續性的模擬樣本(經采樣量化)作為譯碼器的輸入。例如,如果期望的發射監督位為0并且接收到的電壓為0.3V,那么我們可以使用0.3(或0.32或某些此類函數)作為該位的值,而不是數字化它。

一個恰當的度量計算方式是求接收電壓和預期電壓之差的平方,其中的技術原理將在后面講到。如果卷積碼產生p個監督比特,它們對應的模擬樣本是v = v1,v2,...,vp,可以按如下方式構建軟判決分支度量:

圖片 (式2)

u = u1,u2,...,up是預期的p個監督位(為0或1)。圖5顯示了p=2時,當u為00時的軟判決分支度量。

圖片

圖5

軟判決譯碼算法與前述硬判決譯碼的譯碼過程相同,除了分支度量不再是整數漢明距離而是一個正實數。

事實證明,當信道經受加性高斯噪聲時,該軟判決度量與正確譯碼的概率密切相關。首先,我們來看1個監督比特位時的簡單情況(可直接擴展為其它一般情況),假設接收機獲得的第i個監督位對應的數據為電壓vi(在硬判決譯碼中,根據vi是小于還是大于0.5,它將判為為0或1),當發送信息位為ui時(0或1),vi將被接收的概率是多少?當信道噪聲為零均值加性高斯噪聲時,此事件的PDF由下式給出:

圖片 (式3)

其中,ui=0時,di=vi^2;ui=1時,di=(vi-1)^2。

該PDF的對數似然函數與-di^2成比例。一組發送碼序列U = ui,u2,...,up得到接收序列V = v1,v2,...,vp,其聯合概率密度函數為各獨立樣點PDF的乘積。該路徑的對數PDF為各獨立樣點對數似然函數的和,且與-∑i(di^2)成比例。

但這恰恰是我們在公式2中定義的分支度量的負值,維特比譯碼器最小化不同的可能路徑度量,而最小化路徑度量等同于最大化對數似然度!

這意味著軟判決譯碼器產生與接收的電壓序列相對應的最大似然路徑。

我們之所以選擇平方和作為公式2的分支度量,是由于其與對數PDF的直接關系。不同的噪聲分布(除了高斯)可能需要不同的軟解碼分支度量,以獲得與正確譯碼PDF類似的聯系。

實現更高和更精細的匹配速率:打孔

按目前為止所描述的,卷積碼的最大碼率為1/r,其中r是由卷積碼1比特輸入生成的監督比特數。但是如果我們想要一個大于1/2的碼率,或者一些在1/r和1/(r+1)之間的碼率呢?

一種叫做打孔的通用技術給我們提供了一種方法。其思想很簡單:編碼器不發送每一個監督位,而是在輸出流上進行打孔,僅發射由收發雙方約定好的部分碼流。例如,對于1/2卷積編碼,一個人通過在編碼輸出上每3bit刪除一個特定位,原本每3bit需要發送6bit監督數據,而現在只需要發送4bit,由此得到3/4碼率的編碼輸出。

在這個例子中,設卷積編碼器為1/2編碼,在打孔前,需要發送p0[0]p1[0]p0[1]p1[1]p0[2]p1[2],在打孔之后則只發送p0[0]p1[0]-p1[1]p0[2]-,其中-表示被刪除的比特。

在譯碼器中,當使用打孔編碼時,被刪除的監督位不參與分支度量的計算,除此之外的譯碼過程與以前相同。我們可以把每一個缺失的監督位看作一個空白(“-”),運行譯碼器時只需跳過空白。

編碼和譯碼的實現復雜度

關于卷積編碼器和維特比譯碼器的時間和空間復雜度,我們必須回答兩個重要的問題:

  1. 編碼器需要多少狀態和存儲空間?
  2. 譯碼器需要多少時間完成譯碼?

第一個問題容易回答:在編碼器端,需要的存儲空間與編碼約束度K成線性關系;需要的時間與消息長度n成線性關系。編碼器比維特比譯碼器的實現要容易的多。譯碼器需要的時間取決于編碼約束度K和接收序列長度(與n成線性關系)。在每個時刻,譯碼器需要計算轉移至每一狀態的兩條分支路徑,共2^(K-1)個狀態,需要進行2^K次比較,因此譯碼n比特信息的時間復雜度為O(n*2^K)。

此外,按目前所描述的來看,我們只能在最末端解碼消息的第一位。有一點需要表明,雖然未來的知識是有用的,但假設編碼約束度為6,第1000時刻的比特不太可能會改變我們對第1時刻比特的譯碼結果。事實上,在實踐中,譯碼器計算長度一旦滿足編碼約束度的幾倍就可以開始譯碼。實驗數據表明,無論監督比特流對應于消息比特有多長,5·K的消息比特時間(左右)是一個合理的譯碼窗口。

設計優秀的卷積碼

到此,人們可能自然地會想到一個問題,“什么樣的生成多項式能促成一個優秀的卷積碼?換句話說,是否有系統的方法來產生優秀的卷積碼?或者,給定兩個卷積碼,是否有一種方法來分析它們的生成矩陣,并確定它們在接下來的過程中如何相互關聯并執行?了解了這些,使得我們能在一個有噪聲的信道上以盡可能高的速率進行通信。

原則上,許多因素決定了卷積碼的有效性。人們期望卷積碼糾正錯誤的能力取決于編碼約束度K,因為編碼約束度越大,任何給定的消息比特對監督位的貢獻程度越大,對比特錯誤的復原能力也就越大。人們也希望隨著監督比特數量的增加,錯誤的恢復能力會更高,因為這對應于一個較低的碼率(更多的冗余)。最后同樣重要的一點是,生成多項式的系數在決定卷積碼的性能方面確實有一定的作用。

幸運的是,有一個度量,稱為卷積碼的自由距離,它囊括了這些衡量維度,并對卷積碼的糾錯能力起主要決定作用。

自由距離

由于卷積碼是線性的,因此所有我們所學的線性碼都適用于這里。特別是,任何線性碼的漢明距離,即任意兩個有效碼字之間的最小漢明距離,等于具有最小碼重的非零碼字中1的個數。一個碼字的碼重為其所含1的個數。

對卷積碼而言,任意兩個有效碼字之間的最小漢明距離稱為自由距離。具體而言,一個卷積碼的自由距離等于全零路徑與從狀態00重新回到狀態00的最小非零路徑之間的路徑度量之差。圖6舉例說明這一概念。

圖片

圖 6

在這個例子中,自由距離是4,它需要8個輸出位才能回到正確的狀態,所以如果數據塊從第一個監督位開始,人們期望這個卷積碼每8bit數據塊能夠糾正(4-1)/2 = 1位錯誤。事實上,這種糾錯能力基本上與(8,4,3)二維奇偶監督碼相同。

注意,這個例子中的自由距離是4,而不是5:從初始00狀態回到狀00態之間最小的非零路徑如下:00→10→11→01→00,相應的路徑度量值變化如下:0→2→2→3→4。在下一節中,我們將發現生成器的一個小的改變(如以101替換110),也將大大影響卷積碼的性能。

如果是以相同方式定義的,為什么我們要重新定義一個“自由距離”,而不是也把它叫做漢明距離?原因是,漢明距離為D的任何編碼(無論是否為線性碼),都可以糾正任何(D-1)/2位形式的錯誤。如果我們把同樣的概念應用于卷積碼,我們將會以為我們可以糾正固定位數的錯誤,如在上例中我們可以糾正任何單比特錯誤。

現在,卷積碼產生無邊界的比特流,這明顯不同于分組碼。(D-1)/2不太適合于描述卷積碼真正的糾錯性能。當這些錯誤離得足夠遠時,卷積碼(使用Viterbi譯碼)可以糾正t = (D-1)/2位形式的錯誤,所以我們使用的是自由距離。從某種意義上說,在一個間隔很近的突發塊中,錯誤可以連續發生,只要沒有超過t個錯誤出現,譯碼器就可以糾正它們。

選擇好的卷積碼

自由距離概念還提供了一種構造良好卷積碼的方法。給定譯碼資源預算(如硬件資源),首先為編碼約束度K確定一個邊界,然后,根據最大速率選擇r的上限。給定一個具體的K和r,就已經把生成多項式的選取方案限定在一定范圍內了。人們可以編寫一個程序,遍歷所有可能的生成多項式組合,計算自由距離,并選擇最大自由距離的卷積碼。卷積碼完全通過指定生成多項式來產生(如果列出生成多項式,則K和r都是隱含在其中的了)。

比較編碼的糾錯性能

這一部分討論如何比較不同編碼的糾錯性能,并評估在不同控制條件下實現不同編碼的仿真結果。本節有兩個目標:第一,從“最佳實踐意義”角度比較不同編碼器,并討論常見的陷阱;第二,比較某些特定的卷積碼和二維奇偶監督碼,并討論某些編碼器比其它編碼器執行得更好的原因。

有兩個衡量標準:第一是譯碼后的誤碼率(BER),有時也稱為譯碼錯誤概率;第二個是碼率。對于這兩種度量,我們關心它們如何隨信道參數的變化而變化,例如BSC中的ε值(即信道的底層比特差錯概率)或信道上的噪聲程度(對于加性高斯噪聲信道,我們將在下一章中詳細描述)。

這里,我們只關注編碼的譯碼后誤碼率。

基于BSC的譯碼誤碼率

對于BSC,變量是ε(譯者注:BSC全稱為二元對稱信道,這里BSC的ε表示譯碼前的錯誤比特率),當ε變化時,我們關心不同的編碼器將會如何表現(以BER衡量)。圖7顯示了幾個不同的線性二維奇偶監督碼和卷積碼的譯碼誤碼率隨BSC錯誤率ε變化的情況。

圖片

圖 7

圖中顯示,碼率為1/3的二維奇偶監督碼在高ε時表現得最為穩健,而兩個1/2碼率的卷積碼在其它誤碼率下表現很好。圖中同樣可以看出,(7,4)和(15,11)漢明碼要劣于其它編碼。

這些結論的問題是,他們沒有考慮到編碼的編碼效率,其中一些編碼的開銷要比其他編碼高很多。這樣,如圖7曲線所示譯碼誤碼率隨ε的變化,將具有相同碼率的編碼在一起比較才有意義。因此,可以將(8,4)二維奇偶監督碼與其他三個卷積碼進行比較,并得出以下結論:

  1. 兩個卷積碼(3,(7,5))(生成多項式為(111, 101))和(4,(14,13))(生成多項式為(1110, 1101))表現最好,它們明顯優于(3,(7,6))卷積碼(我們從Bussgang關于如何選取好的卷積碼的文章獲得這些碼)。(3,(7,5))和(4,(14,13))這兩個碼(自由距離分別為5和6)表現優異的原因是它們具有比(3,(7,6))(自由距離為4)更大的自由距離。
  2. 有趣的是,結果顯示自由距離為5的(3,(7,5))表現要強于自由距離為6的(4,(14,13))。其原因是,在(3,(7,5))下,從狀態00返回到狀態00的網格邊數僅為3,對應于一組6個連續編碼比特。相關的狀態轉換是00→10→01→00,相應的路徑度量為0→2→3→5。相比之下(4,(14,13))雖然擁有大小為6的自由距離,但它需要經過4條網格邊來實現000→100→010→001→000的狀態轉移,意味著在長度為8的滑動窗內它能糾正2bit內的錯誤。

此外,從5到6(偶數)的自由距離的增加并不能提高編碼的糾錯能力。

  1. 對于(8,4)二維奇偶監督碼和(3,(7,6))卷積碼,譯碼后的BER大致相同。其原因是該K=3的卷積碼的自由距離為4,這意味著它可以在與(8,4)二維奇偶監督碼長度相似的塊上糾正1個比特錯誤。直觀地說,這兩個方案的監督位利用了相同長度的歷史信息。在二維奇偶監督碼情況下,行監督位來自兩個連續的消息位,而列監督位則來自間隔一位的兩個消息位,同時我們也發送消息位。所以我們用編碼約束度K=3的卷積碼來與之比較,證明(3,(111,110))不是一個好的卷積碼。
  2. (7,4)漢明碼類似于(8,4)二維奇偶監督碼,但它具有更高的碼率(4/7對1/2),這意味著它用更低的開銷實現了相同的糾錯功能。因此,可以得出結論,它是比(8,4)二維奇偶監督碼更好的編碼。

但是,如何比較不同碼率下的譯碼誤碼率呢?我們需要一種方法來衡量不同碼率編碼的冗余量。要做到這一點,我們需要改變模型來解釋物理(模擬)層上發生的情況。處理這個問題的一般方法是使用信噪比(SNR)作為控制變量(X軸),發送信號通過高斯噪聲干擾的信道。下一章詳細地研究了這個噪聲模型,這里我們只描述在這個模型下比較編碼性能時所獲得的基本直覺和結果。該模型對于理解軟判決譯碼的好處也是必不可少的,因為軟譯碼直接使用接收的電壓樣本作為譯碼器的輸入,而無需先對每個樣本進行數字化。通過比較軟判決譯碼和硬判決譯碼,能觀察到增加了多少的增益。

高斯噪聲模型和Eb/N0的概念

考慮一組n bit長的信息。我們有兩個編碼:C1碼率為k/n1,C2碼率為k/n2,設n2>n1。因此,對于k bit信息,當使用C1編碼時,我們發射n1位,當使用C2編碼時,發射n2位。顯然,使用C2消耗更多的資源,因為它需要在信道上發送更長的時間。

衡量C1資源消耗的一個簡單方式是運行一個實驗,將位1映射為特定電壓V1,將位0映射為特定電壓V0。由于在下章中將會講到的一個原因,與譯碼有關的是V1和V0之間的電壓差,因此我們假設這兩個電壓中值為0。為方便起見,設V1=sqrt(Es),V0=-sqrt(Es),Es為每個樣點的能量。該能量(或者說功率)與所使用的電壓的平方成比例。

現在我們使用C1編碼,k bit消息被編碼成n1 bit。先假定每一編碼比特以一個電壓樣點發送(為簡化描述),則每一位的能量Eb=(n1/k)*Es。同樣對于C2編碼,每一位的能量Eb=(n2/k)*Es。在高斯噪聲信道中,每一個電壓樣點被干擾成具備一定方差的高斯分布,該方差即代表噪聲的大?。ǚ讲钤酱?,噪聲越大,BSC的誤碼率ε也就會越大)。因此,適合用于比較不同編碼碼率下的譯碼誤碼率的x軸變量應為Eb/N0,它表示每個信息比特的能量與信道高斯噪聲能量之比。

圖片

圖 8

圖8展示了模擬不同具有代表性的Eb/N0值的高斯信道的性能實驗結果,實驗中的每一個數據點都是統計200萬個信息比特在一個噪聲信道上編碼和傳輸的結果。最上面的曲線顯示未編碼時的誤碼率。X軸為Eb/N0,以dB為單位。y軸顯示對數刻度上的誤碼率。從結果看,這些點值得注意:

  1. 好的卷積碼明顯優于漢明碼和二維奇偶監督碼。
  2. 軟判決譯碼明顯優于硬判決譯碼。對于相同的譯碼誤碼率,軟解碼相對于硬譯碼有2至2.3 dB的增益,即硬譯碼將不得不通過增加信噪比(1.6倍左右)來實現與軟譯碼相同的譯碼誤碼率。

總結

從一開始作為影響力巨大的卷積碼的譯碼方法,到現在維特比譯碼器已經成為工程系統和各領域中應用最廣泛的算法之一?,F代磁盤驅動器通過PRML技術來加速訪問;語音識別系統,自然語言系統,以及各種通信網絡使用此方法或其變種。

事實上,用更現代的觀點描述,可將本課中描述的軟判決譯碼技術看作在隱馬爾科夫模型(HMM)中尋找最大似然的狀態集路徑。一些基本現象被建模為一個馬爾可夫狀態機,它的狀態之間有一定概率的轉換。我們觀測到被噪聲污染的各狀態,并將觀測結果拼接起來,以確定最可能的狀態轉移序列。事實證明,維特比解碼器是解決這類問題的極好起點(有時也是完備解)。

另一方面,盡管有著不可否認的成功,維特比譯碼并不是解卷積碼的唯一方法。一方面,它確實需要窮舉每個狀態,因此它的計算復雜度與編碼約束度K呈指數關系。當K很大時,可以使用其他解碼方法,例如BCJR或Fano的序貫譯碼方案。

卷積碼本身在有線和無線鏈路上非常流行。它有時被用作外部塊糾錯碼的“內部碼”,但也可自己作為外部糾錯碼使用。Turbo碼是目前實踐中使用性能最高的譯碼器之一,卷積碼即可作為其內部組件。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 接收機
    +關注

    關注

    8

    文章

    1182

    瀏覽量

    53509
  • 譯碼器
    +關注

    關注

    4

    文章

    311

    瀏覽量

    50362
  • 生成器
    +關注

    關注

    7

    文章

    316

    瀏覽量

    21042
  • BSC
    BSC
    +關注

    關注

    0

    文章

    10

    瀏覽量

    6995
  • 卷積編碼器
    +關注

    關注

    0

    文章

    6

    瀏覽量

    2447
收藏 人收藏

    評論

    相關推薦

    什么是卷積碼? 什么是卷積碼的約束長度?

    什么是卷積碼分組是把k 個信息元編成n 個碼元的碼字,每個碼字的n ? k 個校驗位僅與本碼字的k 個信息元有關,而與其他碼字無關。為了達到定的糾錯能力和編碼效率,分組的碼長
    發表于 05-30 16:06

    什么是Turbo 的迭代譯碼算法?當前Turbo譯碼算法有哪些?有哪些形式的Turbo ?

    BCJR 算法做了定修正,對 α 和β 作歸化。對約束長度為N 的卷積碼,每分量,使似然加法完全變成求最大值運算,則得到MAX-LOG-MAP 算法。它大大降低了存儲量和計算復雜
    發表于 05-30 16:24

    基于FPGA的Viterbi譯碼器算法該怎么優化?

    由于卷積碼優良的性能,被廣泛應用于深空通信、衛星通信和2G、3G移動通信中。卷積碼有三譯碼方法:門限
    發表于 11-01 08:05

    一種基于序列譯碼的快速相關攻擊算法

    快速相關攻擊是一種重要的序列密碼分析方法。該文提出一種基于卷積碼的序列譯碼的快速相關攻擊算法,首先利用特殊的校驗方程將線性分組
    發表于 06-17 07:47 ?15次下載

    卷積碼的Viterbi高速譯碼方案

    本文探討了無線通信中廣泛涉及的差錯控制問題,介紹了卷積碼的編譯碼原理。提出了一種卷積碼編碼,及其高速Viterbi 譯碼的實現方案,對
    發表于 01-06 15:06 ?13次下載

    卷積碼的Viterbi高速譯碼方案

    本文探討了無線通信中廣泛涉及的差錯控制問題,介紹了卷積碼的編譯碼原理。提出了一種卷積碼編碼,及其高速Viterbi譯碼的實現方案,對
    發表于 07-21 17:20 ?22次下載

    基于OCDMA的新型卷積碼譯碼方案

    對光碼分多址(OCDMA)的誤碼特性和卷積碼進行研究,根據兩者的特點提出了一種新的基于OCDMA多址干擾信道模型的卷積碼譯碼方法。針對這種新
    發表于 08-26 16:40 ?17次下載

    卷積碼/Viterbi譯碼,卷積碼/Viterbi譯碼是什么

    卷積碼/Viterbi譯碼,卷積碼/Viterbi譯碼是什么意思 卷積碼個二進制分組
    發表于 03-18 14:09 ?2289次閱讀

    LTE中Tail-biting卷積碼譯碼器設計

    本文設計的譯碼器,利用Tail-biting卷積碼的循環特性,采用固定延遲的算法與維特算法結合,在FPGA上實現和驗證,能達到135.78 MHz時鐘
    發表于 08-05 11:57 ?4734次閱讀
    LTE中Tail-biting<b class='flag-5'>卷積碼</b>的<b class='flag-5'>譯碼</b>器設計

    基于FPGA的卷積碼譯碼器的方案

    卷積碼是深度空間通信系統和無線通信系統中常用的一種差錯控制編碼。它克服了分組由于以塊為單位編譯碼而使分組間的相關信息丟失的缺點。(2,1
    發表于 10-12 15:05 ?1679次閱讀
    基于FPGA的<b class='flag-5'>卷積碼</b><b class='flag-5'>譯碼</b>器的方案

    通信系統中Viterbi譯碼的Matlab仿真與實現

    文中提出的卷積碼譯碼Matlab仿真方案,旨在用Viterbi譯碼實現對卷積碼譯碼的功能。仿真結果表明,
    發表于 03-22 17:21 ?58次下載
    通信系統中Viterbi<b class='flag-5'>譯碼</b>的Matlab仿真與實現

    關于基于FPGA的卷積譯碼器的設計與實現分析

    卷積碼是Elias在1955年最早提出的,稍后,Wozencraft在1957年提出了一種有效譯碼方法,即序列譯碼。Massey在1963年
    發表于 10-06 09:59 ?1275次閱讀
    關于基于FPGA的<b class='flag-5'>卷積</b>編<b class='flag-5'>譯碼</b>器的設計與實現分析

    卷積編碼之維特譯碼介紹 淺析卷積碼之應用

    以(n,k,m)來描述卷積碼,其中k為每次輸入到卷積編碼器的bit數,n為每個k元組碼字對應的卷積碼輸出n元組碼字,m為編碼存儲度,也就是卷積編碼器的k元組的級數,稱m+1= K為編碼
    發表于 08-21 09:56 ?3492次閱讀

    深度解讀VHDL語言的卷積碼和Viterbi譯碼的實現

    介紹并用VHDL語言實現了卷積編碼和維特譯碼。根據編碼器特征設計了一種具有針對性的簡潔的維特
    的頭像 發表于 05-12 15:22 ?2519次閱讀
    深度解讀VHDL語言的<b class='flag-5'>卷積碼</b>和Viterbi<b class='flag-5'>譯碼</b>的實現

    卷積碼編碼及譯碼算法的基本原理

    卷積碼一種信道糾錯編碼,在通信中具有廣泛的應用。在發送端根據生成多項式進行卷積碼編碼,在接收端根據維特(Viterbi)
    的頭像 發表于 04-28 15:02 ?1.2w次閱讀
    主站蜘蛛池模板: 操插干| 国产亚洲视频在线| 成人一级毛片| 69re在线观看| 亚洲综合啪啪| 中文字幕成人乱码在线电影| 色天天综合色天天看| 五月停停| 大色视频| 久久9精品| 国产三级在线看| www.亚洲成在线| 天天做日日爱| 米奇777四色精品人人爽| 成人福利在线视频| 我被黑人巨大开嫩苞在线观看| 高清性欧美xxx| 久久国产精品免费专区| 亚洲色啦啦狠狠网站| 日韩欧美色| 好男人社区www在线观看| 9966国产精品视频| 欧美视频图片| 西西午夜影院| 免费视频性| 速度与激情一| 久久青草18免费观看网站| 97黄网| 激情综合五月天丁香婷婷| 一区二区在线看| 性中国videosex国产孕妇| 欧美视频综合| 爱爱动态视频免费视频| 久久天天综合| 中文字字幕码一二区| 亚洲天堂电影在线观看| 欧美日韩一区二区三区视视频| 高清国产一区二区三区| 理论片午午伦夜理片影院99| 一区二区三区网站| 午色|