TWI760772B - 基於維特比演算法之解碼電路及解碼方法 - Google Patents

基於維特比演算法之解碼電路及解碼方法 Download PDF

Info

Publication number
TWI760772B
TWI760772B TW109120275A TW109120275A TWI760772B TW I760772 B TWI760772 B TW I760772B TW 109120275 A TW109120275 A TW 109120275A TW 109120275 A TW109120275 A TW 109120275A TW I760772 B TWI760772 B TW I760772B
Authority
TW
Taiwan
Prior art keywords
bit
branch metrics
data
circuit
group
Prior art date
Application number
TW109120275A
Other languages
English (en)
Other versions
TW202201911A (zh
Inventor
謝志農
Original Assignee
瑞昱半導體股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 瑞昱半導體股份有限公司 filed Critical 瑞昱半導體股份有限公司
Priority to TW109120275A priority Critical patent/TWI760772B/zh
Priority to US17/239,734 priority patent/US11251815B2/en
Publication of TW202201911A publication Critical patent/TW202201911A/zh
Application granted granted Critical
Publication of TWI760772B publication Critical patent/TWI760772B/zh

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3961Arrangements of methods for branch or transition metric calculation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3738Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with judging correct decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • H03M13/2792Interleaver wherein interleaving is performed jointly with another technique such as puncturing, multiplexing or routing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3746Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4107Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing add, compare, select [ACS] operations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4161Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2933Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using a block and a convolutional code

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Error Detection And Correction (AREA)

Abstract

本案提供基於維特比演算法之解碼電路及解碼方法。解碼方法包含以下步驟:根據維特比演算法解碼一編碼資料以產生一解碼資料;對該解碼資料進行錯誤更正,以得到該編碼資料之一資料內容;比對該解碼資料及該資料內容,以產生位元更正資訊;根據維特比演算法使用該編碼資料計算複數個第一分支度量,該些第一分支度量對應於該資料內容的一目標位元;根據該資料內容及該位元更正資訊調整該些第一分支度量的至少一部分,以產生複數個第二分支度量;以及根據該位元更正資訊選擇該些第一分支度量或該些第二分支度量。

Description

基於維特比演算法之解碼電路及解碼方法
本案是關於解碼電路及解碼方法,尤其是關於基於維特比演算法之解碼電路及解碼方法。
一個通訊系統通常採用多種編碼技術來對欲傳輸的資料內容進行編碼,以降低傳輸通道對資料內容的負面影響。通訊系統的接收端必須對收到的資料進行解碼,以還原該資料內容。維特比解碼器(Viterbi decoder)是一種常見的錯誤更正解碼器,可以搭配硬決策演算法(hard-decision algorithm)或軟決策演算法(soft-decision algorithm)來進行解碼運算。雖然軟決策演算法可以提高維特比解碼器的解碼能力,但代價是維特比解碼器的電路複雜度及運算複雜度隨之大幅增加,導致接收端的電子裝置的效能降低、不易設計,以及成本提高。
鑑於先前技術之不足,本案之一目的在於提供一種解碼電路及解碼方法,以降低接收端的電子裝置的電路複雜度及運算複雜度。
本案揭露一種基於維特比演算法之解碼電路,包含一維特比解碼器、一錯誤更正解碼器、一位元檢查電路、一分支度量計算電路、一分支度量調整電路,以及一多工器。維特比解碼器接收一編碼資料,並且根據維特比演算法解碼該編碼資料以產生一解碼資料。錯誤更正解碼器耦接該維特比解碼器,用來對該解碼資料進行錯誤更正,以得到該編碼資料之一資料內容。位元檢查電路耦接該維特比解碼器及該錯誤更正解碼器,用來比對該解碼資料及該資料內容,以產生位元更正資訊。分支度量計算電路用來根據維特比演算法使用該編碼資料計算複數個第一分支度量,該些第一分支度量對應於該資料內容的一目標位元。分支度量調整電路耦接該分支度量計算電路,用來根據該資料內容及該位元更正資訊調整該些第一分支度量的至少一部分,以產生複數個第二分支度量。多工器耦接該分支度量計算電路及該分支度量調整電路,用來根據該位元更正資訊選擇該些第一分支度量或該些第二分支度量。
本案另揭露一種基於維特比演算法之解碼方法,包含:根據維特比演算法解碼一編碼資料以產生一解碼資料;對該解碼資料進行錯誤更正,以得到該編碼資料之一資料內容;比對該解碼資料及該資料內容,以產生位元更正資訊;根據維特比演算法使用該編碼資料計算複數個第一分支度量,該些第一分支度量對應於該資料內容的一目標位元;根據該資料內容及該位元更正資訊調整該些第一分支度量的至少一部分,以產生複數個第二分支度量;以及根據該位元更正資訊選擇該些第一分支度量或該些第二分支度量。
本案之解碼電路及解碼方法根據錯誤更正解碼器的輸出來調整維特比演算法中的分支度量,以提高解碼性能(例如解碼正確率)。相較於傳統技術,本案之錯誤更正解碼器可以採用硬決策演算法來降低運算複雜度,而解碼電路及解碼方法可同時維持高的解碼性能。
有關本案的特徵、實作與功效,茲配合圖式作實施例詳細說明如下。
以下說明內容之技術用語係參照本技術領域之習慣用語,如本說明書對部分用語有加以說明或定義,該部分用語之解釋係以本說明書之說明或定義為準。
本案之揭露內容包含基於維特比演算法之解碼電路及解碼方法。由於本案之解碼電路所包含之部分元件單獨而言可能為已知元件,因此在不影響該裝置案之充分揭露及可實施性的前提下,以下說明對於已知元件的細節將予以節略。此外,本案之解碼方法的部分或全部流程可以是軟體及/或韌體之形式,並且可藉由本案之解碼電路或其等效裝置來執行,在不影響該方法實施例之充分揭露及可實施性的前提下,以下方法實施例之說明將著重於步驟內容而非硬體。
圖1為本案一實施例之基於維特比演算法(Viterbi algorithm)之解碼電路的功能方塊圖,圖2顯示相對應之解碼方法的流程圖。解碼電路100實作於通訊系統的接收端,包含維特比解碼器110、錯誤更正解碼器130、位元檢查電路140、緩衝電路150、維特比解碼器170以及錯誤更正解碼器190。編碼資料CD是由通訊系統的傳送端將一個資料內容(例如視訊資料、音訊資料、文字資料等)編碼後所產生。
於收到編碼資料CD後,解碼電路100一方面將編碼資料CD輸入至維特比解碼器110,一方面將編碼資料CD儲存至緩衝電路150。維特比解碼器110根據維特比演算法對編碼資料CD進行解碼,並且產生第一解碼資料DD1(步驟S210)。維特比解碼器110為習知的電路,其動作原理為本技術領域具有通常知識者所熟知,故不再贅述。第一解碼資料DD1包含資料區塊及更正區塊。
錯誤更正解碼器130耦接於維特比解碼器110,用來使用更正區塊對資料區塊進行錯誤更正,以更正資料區塊中錯誤的位元,進而產生第一資料內容DC1(步驟S230)。第一資料內容DC1是第一解碼資料DD1的資料區塊經過錯誤更正後的結果。如果第一解碼資料DD1的資料區塊的內容正確,則第一資料內容DC1等於第一解碼資料DD1的資料區塊;否則,第一解碼資料DD1的資料區塊與第一資料內容DC1之間有N個位元不相同(N為大於等於1之整數,即在步驟S230中被更正的位元數)。在一些實施例中,錯誤更正解碼器130為基於BCH碼(Bose-Chaudhuri-Hocquenghem code)的錯誤更正解碼器,例如里德-索羅門碼(Reed-Solomon code, RS code)錯誤更正解碼器,但不以此為限。
位元檢查電路140耦接維特比解碼器110及錯誤更正解碼器130,用來檢查第一解碼資料DD1的資料區塊是否有經過更正(例如,藉由比對第一解碼資料DD1與第一資料內容DC1來完成),並且產生位元更正資訊BCI(步驟S250)。位元更正資訊BCI的長度與第一資料內容DC1的長度以及第一解碼資料DD1的資料區塊的長度相同。位元更正資訊BCI以位元0(或1)指示第一資料內容DC1中相對應的位元(例如位置相同的位元)沒有被更正,以及以位元1(或0)指示第一資料內容DC1中相對應的位元被更正。在一些實施例中,位元檢查電路140使用互斥或閘(Exclusive-OR gate)對第一解碼資料DD1及第一資料內容DC1進行逐位元(bitwise)運算,以產生位元更正資訊BCI。
維特比解碼器170從緩衝電路150讀取編碼資料CD,並且使用第一資料內容DC1及位元更正資訊BCI來對編碼資料CD進行解碼,以產生一碼字(codeword)(即第二解碼資料DD2)。類似地,第二解碼資料DD2包含資料區塊及更正區塊。維特比解碼器170與維特比解碼器110在不同的時間點解碼同一筆編碼資料CD,換言之,維特比解碼器110與維特比解碼器170之間有一延遲。此延遲可以由電路設計者自行設定。在一些實施例中,第一資料內容DC1及位元更正資訊BCI愈早產生,則此延遲愈短。維特比解碼器170的細部電路將在圖4中詳述。
錯誤更正解碼器190使用第二解碼資料DD2的更正區塊對第二解碼資料DD2的資料區塊進行錯誤更正,以更正資料區塊中錯誤的位元。第二資料內容DC2是第二解碼資料DD2的資料區塊經過錯誤更正後的結果(步驟S295)。如果第二解碼資料DD2的資料區塊的內容正確,則第二資料內容DC2等於第二解碼資料DD2的資料區塊;否則,第二解碼資料DD2的資料區塊與第二資料內容DC2之間至少有一個位元不相同。
在一些實施例中,錯誤更正解碼器130及錯誤更正解碼器190可以共用電路,即錯誤更正解碼器130及錯誤更正解碼器190為同一個解碼器。
圖3為維特比演算法的示意圖。圖3的範例對應於(2,1,2)迴旋碼(convolutional code),S 00、S 01、S 10、S 11代表四個狀態(state),t=0, 1, 2, …, k-1, k, k+1, …代表複數個階段(stage)(k為正整數,t=0為初始階段)。階段2(t=2)之後,每個狀態有2個輸出分支,其中一者對應於位元0(以虛線表示),另一者對應於位元1(以實線表示)。舉例來說,在階段k-1與階段k之間共有8個分支,其中分支b0、b2、b4、b6對應於位元0,而分支b1、b3、b5、b7對應於位元1。以下的說明請參考圖4及圖2,以對維特比解碼器170的細部電路及操作有更進一步的了解。
圖4為圖1之維特比解碼器170之一實施例的功能方塊圖。維特比解碼器170包含分支度量(Branch metric)計算電路410、分支度量調整電路420、多工器430、路徑度量計算電路440以及回溯電路450。
分支度量計算電路410根據維特比演算法使用編碼資料CD計算複數個分支的第一分支度量 b(步驟S260)。分支度量計算電路410的操作為本技術領域具有通常知識者所熟知,故不再贅述。第一分支度量 b代表某階段之所有輸出分支的分支度量的集合,且第一分支度量 b對應於第一資料內容DC1的其中一個位元(以下稱為目標位元)。更明確地說,第一資料內容DC1包含複數個位元
Figure 02_image001
,
Figure 02_image003
,
Figure 02_image005
, …,
Figure 02_image007
,
Figure 02_image009
,
Figure 02_image011
, …,而分支b0至b7對應於目標位元
Figure 02_image007
,換言之,第一分支度量 b的內容與目標位元
Figure 02_image007
的值密切相關。如果目標位元
Figure 02_image007
為0,則分支b0、b2、b4、b6較有可能被選擇(即可信度高,較有可能成為維特比演算法之留存路徑(survivor path)的一部分)。反之,如果目標位元
Figure 02_image007
為1,則分支b1、b3、b5、b7較有可能被選擇。
分支度量調整電路420根據第一資料內容DC1及位元更正資訊BCI調整或不調整第一分支度量 b,以產生複數個第二分支度量 b'(步驟S270)。更明確地說,分支度量調整電路420至少包含以下三種操作情境:(1)位元更正資訊BCI指示目標位元
Figure 02_image007
在步驟S230中沒有經過更正;(2)位元更正資訊BCI指示目標位元
Figure 02_image007
在步驟S230中經過更正,且更正後的目標位元
Figure 02_image007
為0;以及(3)位元更正資訊BCI指示目標位元
Figure 02_image007
在步驟S230中經過更正,且更正後的目標位元
Figure 02_image007
為1。
在情境(1)中,因為目標位元
Figure 02_image007
原本就是正確的位元,代表第一分支度量 b的可信度高,所以分支度量調整電路420不調整第一分支度量 b(即第二分支度量 b'等於第一分支度量 b)。請注意,在一些實施例中,分支度量調整電路420將第一分支度量 b加上0以產生第二分支度量 b';換言之,在一些實施例中,即使第二分支度量 b'等於第一分支度量 b,第二分支度量 b'仍可視為調整後的分支度量。
在情境(2)中,因為目標位元
Figure 02_image007
的值在更正前為1,代表對應於1的分支b1、b3、b5、b7具有較低的可信度,所以分支度量調整電路420增加(或減少)分支b1、b3、b5、b7的分支度量,及/或減少(或增加)分支b0、b2、b4、b6的分支度量。換言之,分支度量調整電路420調整第一分支度量 b的其中一半(例如藉由加上一正數或負數),並且將另一半加0後輸出(視為調整或未調整)或直接輸出(視為未調整)。
在情境(3)中,因為目標位元
Figure 02_image007
的值在更正前為0,代表對應於0的分支b0、b2、b4、b6具有較低的可信度,所以分支度量調整電路420增加(或減少)分支b0、b2、b4、b6的分支度量,及/或減少(或增加)分支b1、b3、b5、b7的分支度量。換言之,分支度量調整電路420調整第一分支度量 b的其中一半(例如藉由加上一正數或負數),並且將另一半加0後輸出(視為調整或未調整)或直接輸出(視為未調整)。
多工器430根據位元更正資訊BCI選擇第一分支度量 b或第二分支度量 b'輸出至路徑度量計算電路440(步驟S280)。更明確地說,當位元更正資訊BCI指示目標位元
Figure 02_image007
沒有經過更正,則多工器430輸出第一分支度量 b。反之,當位元更正資訊BCI指示目標位元
Figure 02_image007
經過更正,則多工器430輸出第二分支度量 b'
路徑度量計算電路440將第一分支度量 b或第二分支度量 b'分別與相對應的前置累積度量(previously accumulated metric)相加,以產生複數個目前累積度量(accumulated metric)(步驟S285)。最後,回溯電路450選擇對應於該些目前累積度量的最大值(實施例一)或最小值(實施例二)的路徑作為留存路徑,並回溯該留存路徑以得到對應於該留存路徑的碼字,該碼字即第二解碼資料DD2(步驟S290)。路徑度量計算電路440及回溯電路450為本技術領域具有通常知識者所熟知,故不再贅述。
在實施例一中,分支度量調整電路420在前述的情境(2)中減少分支b1、b3、b5、b7的分支度量,及/或增加分支b0、b2、b4、b6的分支度量,以及在情境(3)中減少分支b0、b2、b4、b6的分支度量,及/或增加分支b1、b3、b5、b7的分支度量。在實施例二中,分支度量調整電路420在前述的情境(2)中增加分支b1、b3、b5、b7的分支度量,及/或減少分支b0、b2、b4、b6的分支度量,以及情境(3)中增加分支b0、b2、b4、b6的分支度量,及/或減少分支b1、b3、b5、b7的分支度量。
圖5為本案分支度量調整電路420之一實施例的電路圖。分支度量調整電路420包含多工器510、邏輯電路520、邏輯電路525、乘法器530、乘法器535、加法器540以及加法器545。圖6為分支度量調整電路420之操作流程圖(即步驟S270的詳細步驟)。
第一分支度量 b可以劃分為第一群組
Figure 02_image013
(包含對應於位元0的分支b0、b2、b4、b6的分支度量)及第二群組
Figure 02_image015
(包含對應於位元1的分支b1、b3、b5、b7的分支度量)。類似地,第二分支度量 b'可以劃分為第三群組
Figure 02_image017
(包含對應於位元0的分支b0、b2、b4、b6的未調整或調整後的分支度量)及第四群組
Figure 02_image019
(包含對應於位元1的分支b1、b3、b5、b7的未調整或調整後的分支度量)。以下說明分支度量調整電路420如何根據位元更正資訊BCI及第一資料內容DC1來調整或不調整複數個第一分支度量 b以產生複數個第二分支度量 b'
多工器510根據位元更正資訊BCI的參考位元
Figure 02_image021
(參考位元
Figure 02_image021
指示第一資料內容DC1的目標位元
Figure 02_image007
是否經過更正)選擇權重W0或權重W1(步驟S610)。
邏輯電路520及邏輯電路525分別根據目標位元
Figure 02_image007
產生控制值CV1及控制值CV2(步驟S620、S650)。在圖5的實施例中,邏輯電路520包含及閘521及反相器522,邏輯電路525包含及閘526。及閘521與及閘526的兩個輸入為目標位元
Figure 02_image007
及邏輯值1。因此,控制值CV1的邏輯值與目標位元
Figure 02_image007
相反,而控制值CV2的邏輯值與目標位元
Figure 02_image007
相同。邏輯電路520及邏輯電路525的內部電路不限於圖5之範例電路。
乘法器530及乘法器535分別將權重W0或權重W1乘上控制值CV1及控制值CV2,以分別產生調整值AV1及調整值AV2(步驟S630、S660)。換言之,調整值AV1及調整值AV2等於權重W0及權重W1的其中一者或0。
加法器540將第一群組
Figure 02_image013
加上調整值AV1以產生第三群組
Figure 02_image017
(步驟S640,即bx'=bx+AV1,對圖3的例子而言,x={0, 2, 4, 6}),而加法器545將第二群組
Figure 02_image015
加上調整值AV2以產生第四群組
Figure 02_image023
(步驟S670,即by'=by+AV2,對圖3的例子而言,y={1, 3, 5, 7})。
舉例來說,如果以參考位元
Figure 02_image021
等於1代表目標位元
Figure 02_image007
經過更正,且多工器510在參考位元
Figure 02_image021
等於0及1分別輸出W0及W1,則在前述的實施例一中(即留存路徑對應於最大的目前累積度量)W1>W0,而在前述的實施例二中(即留存路徑對應於最小的目前累積度量)W1>W0。在一些實施例中,權重W0及權重W1的其中之一可以設為0以簡化電路。
綜上所述,維特比解碼器170利用第一資料內容DC1及位元更正資訊BCI來提高解碼性能。當錯誤更正解碼器130以硬決策演算法實作時,解碼電路100具有低電路複雜度及高解碼性能的優點。然而,本案之解碼電路及解碼方法不限於使用硬決策演算法,也可以使用軟決策演算法。
在一些實施例中,為了減輕通道對傳輸資料所造成的干擾,傳送端會基於一交織規則對資料進行交織運算,而接收端基於相同的交織規則對資料進行解交織運算。圖7為本案另一實施例之基於維特比演算法之解碼電路的功能方塊圖,圖8顯示相對應之解碼方法的流程圖。解碼電路700與解碼電路100相似,差別在於解碼電路700更包含解交織電路120、交織電路160以及解交織電路180,而位元檢查電路140所輸出的位元更正資訊BCI也會由交織電路160處理,以產生位元更正資訊BCI’至維特比解碼器170。圖8之流程與圖2之流程相似,差別在於圖8更包含步驟S220、S240及S293。
解交織電路120耦接於維特比解碼器110及錯誤更正解碼器130之間,用來基於該交織規則對第一解碼資料DD1進行解交織運算(步驟S220)。交織電路160耦接於錯誤更正解碼器130與維特比解碼器170之間(即錯誤更正解碼器130與分支度量調整電路420之間),用來基於該交織規則對第一資料內容DC1進行交織運算(步驟S240)。解交織電路180耦接於維特比解碼器170與錯誤更正解碼器190之間,用來基於該交織規則對第二解碼資料DD2(即回溯電路450所輸出的碼字)進行解交織運算(步驟S293)。解交織運算及交織運算為本技術領域具有通常知識者所熟知,故不再贅述。
由於本技術領域具有通常知識者可藉由本案之裝置實施例的揭露內容來瞭解本案之方法實施例的實施細節與變化,因此,為避免贅文,在不影響該方法實施例之揭露要求及可實施性的前提下,重複之說明在此予以節略。請注意,前揭圖示中,元件之形狀、尺寸、比例以及步驟之順序等僅為示意,係供本技術領域具有通常知識者瞭解本案之用,非用以限制本案。
雖然本案之實施例如上所述,然而該些實施例並非用來限定本案,本技術領域具有通常知識者可依據本案之明示或隱含之內容對本案之技術特徵施以變化,凡此種種變化均可能屬於本案所尋求之專利保護範疇,換言之,本案之專利保護範圍須視本說明書之申請專利範圍所界定者為準。
100,700:解碼電路 110,170:維特比解碼器 130,190:錯誤更正解碼器 140:位元檢查電路 150:緩衝電路 CD:編碼資料 DD1:第一解碼資料 DC1:第一資料內容 BCI:位元更正資訊 DD2:第二解碼資料 DC2:第二資料內容 b0,b1,b2,b3,b4,b5,b6,b7:分支 S 00,S 01,S 10,S 11:狀態
Figure 02_image001
,
Figure 02_image003
,
Figure 02_image007
,
Figure 02_image009
:位元 410:分支度量計算電路 420:分支度量調整電路 430,510:多工器 440:路徑度量計算電路 450:回溯電路 b:第一分支度量 b':第二分支度量
Figure 02_image025
,
Figure 02_image027
,
Figure 02_image029
:分支度量之群組
Figure 02_image031
:參考位元 520,525:邏輯電路 530,535:乘法器 540,545:加法器 W0,W1:權重 CV1,CV2:控制值 521,526:及閘 522:反相器 AV1,AV2:調整值 120,180:解交織電路 160:交織電路 S210~S295,S610~S670:步驟
圖1為本案一實施例之基於維特比演算法之解碼電路的功能方塊圖; 圖2為本案一實施例之解碼方法的流程圖; 圖3為維特比演算法的示意圖; 圖4為圖1之維特比解碼器170之一實施例的功能方塊圖; 圖5為本案分支度量調整電路420之一實施例的電路圖; 圖6為本案分支度量調整電路420之操作流程圖; 圖7為本案另一實施例之基於維特比演算法之解碼電路的功能方塊圖;以及 圖8為本案一實施例之解碼方法的流程圖。
100:解碼電路 110,170:維特比解碼器 130,190:錯誤更正解碼器 140:位元檢查電路 150:緩衝電路 CD:編碼資料 DD1:第一解碼資料 DC1:第一資料內容 BCI:位元更正資訊 DD2:第二解碼資料 DC2:第二資料內容

Claims (10)

  1. 一種基於維特比演算法之解碼電路,包含:一維特比解碼器,用來接收一編碼資料,並且根據維特比演算法解碼該編碼資料以產生一解碼資料;一錯誤更正解碼器,耦接該維特比解碼器,用來對該解碼資料進行錯誤更正,以得到該編碼資料之一資料內容;一位元檢查電路,耦接該維特比解碼器及該錯誤更正解碼器,用來比對該解碼資料及該資料內容,以產生一位元更正資訊;一分支度量計算電路,用來根據維特比演算法使用該編碼資料計算複數個第一分支度量,該些第一分支度量對應於該資料內容的一目標位元;一分支度量調整電路,耦接該分支度量計算電路,用來根據該資料內容及該位元更正資訊調整該些第一分支度量的至少一部分,以產生複數個第二分支度量;以及一多工器,耦接該分支度量計算電路及該分支度量調整電路,用來根據該位元更正資訊選擇該些第一分支度量或該些第二分支度量。
  2. 如請求項1之解碼電路,其中該編碼資料係經過基於一交織規則的一交織運算,該解碼電路更包含:一解交織電路,耦接於該維特比解碼器及該錯誤更正解碼器之間,用來基於該交織規則解交織該解碼資料;以及一交織電路,耦接於該錯誤更正解碼器及該分支度量調整電路之間,用來基於該交織規則交織該資料內容。
  3. 如請求項1之解碼電路,其中該多工器係一第一多工器,該些第一分支度量包含一第一群組及一第二群組,該些第二分支度量包含一第三群組及一第四群組,該分支度量調整電路包含:一第二多工器,用來根據該位元更正資訊之一參考位元選擇一第一權重或一第二權重;一第一邏輯電路,用來根據該目標位元產生一第一控制值;一第一乘法器,耦接該第二多工器,用來將該第一控制值乘上該第一權重或該第二權重,以產生一第一調整值;一第一加法器,耦接該第一乘法器,用來將該第一群組之該些第一分支度量分別加上該第一調整值,以產生該第三群組之該些第二分支度量;一第二邏輯電路,用來根據該目標位元產生一第二控制值;一第二乘法器,耦接該第二多工器,用來將該第二控制值乘上該第一權重或該第二權重,以產生一第二調整值;以及一第二加法器,耦接該第二乘法器,用來將該第二群組之該些第一分支度量分別加上該第二調整值,以產生該第四群組之該些第二分支度量。
  4. 如請求項3之解碼電路,其中該第一控制值係與該目標位元的位元值相反,且該第二控制值係與該目標位元的位元值相同。
  5. 如請求項4之解碼電路,其中該第一群組及該第三群組對應於該目標位元的位元值為0,而該第二群組及該第四群組對應於該目標位元的位元值為1。
  6. 如請求項3之解碼電路,其中該第一調整值係該第一權重及該第二權重的其中之一或0,且該第二調整值係該第一權重及該第二權重的其中之一或0。
  7. 如請求項3之解碼電路,其中該參考位元指示該目標位元是否經過更正。
  8. 如請求項7之解碼電路,其中該位元更正資訊的長度與該資料內容的長度相同,且該參考位元在該位元更正資訊中的位置等於該目標位元在該資料內容中的位置。
  9. 一種基於維特比演算法之解碼方法,包含:根據維特比演算法解碼一編碼資料以產生一解碼資料;對該解碼資料進行錯誤更正,以得到該編碼資料之一資料內容;比對該解碼資料及該資料內容,以產生一位元更正資訊;根據維特比演算法使用該編碼資料計算複數個第一分支度量,該些第一分支度量對應於該資料內容的一目標位元;根據該資料內容及該位元更正資訊調整該些第一分支度量的至少一部分,以產生複數個第二分支度量;以及根據該位元更正資訊選擇該些第一分支度量或該些第二分支度量。
  10. 如請求項9之解碼方法,其中該些第一分支度量包含一第一群組及一第二群組,該些第二分支度量包含一第三群組及一第四群組,該根據該資料內容及該位元更正資訊調整該些第一分支度量的至少一部分以產生該些第二分支度量之步驟包含: 根據該位元更正資訊之一參考位元選擇一第一權重或一第二權重;根據該目標位元產生一第一控制值;將該第一控制值乘上該第一權重或該第二權重,以產生一第一調整值;將該第一群組之該些第一分支度量分別加上該第一調整值,以產生該第三群組之該些第二分支度量;根據該目標位元產生一第二控制值;將該第二控制值乘上該第一權重或該第二權重,以產生一第二調整值;以及將該第二群組之該些第一分支度量分別加上該第二調整值,以產生該第四群組之該些第二分支度量。
TW109120275A 2020-06-16 2020-06-16 基於維特比演算法之解碼電路及解碼方法 TWI760772B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW109120275A TWI760772B (zh) 2020-06-16 2020-06-16 基於維特比演算法之解碼電路及解碼方法
US17/239,734 US11251815B2 (en) 2020-06-16 2021-04-26 Decoding circuit and decoding method based on Viterbi algorithm

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW109120275A TWI760772B (zh) 2020-06-16 2020-06-16 基於維特比演算法之解碼電路及解碼方法

Publications (2)

Publication Number Publication Date
TW202201911A TW202201911A (zh) 2022-01-01
TWI760772B true TWI760772B (zh) 2022-04-11

Family

ID=78826620

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109120275A TWI760772B (zh) 2020-06-16 2020-06-16 基於維特比演算法之解碼電路及解碼方法

Country Status (2)

Country Link
US (1) US11251815B2 (zh)
TW (1) TWI760772B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5638408A (en) * 1994-11-14 1997-06-10 Nec Corporation Variable transmission bit rate discrimination method and apparatus
TW465197B (en) * 1999-04-14 2001-11-21 Texas Instruments Inc Reduced-complexity sequence detection
US6467064B1 (en) * 1999-03-19 2002-10-15 Fujitsu Limited Viterbi decoder
US6738941B1 (en) * 1998-12-28 2004-05-18 Nec Corporation Data error correction system
TW200638687A (en) * 2005-04-29 2006-11-01 Realtek Semiconductor Corp Viterbi decoding apparatus and method thereof
US20070266303A1 (en) * 2006-04-27 2007-11-15 Qualcomm Incorporated Viterbi decoding apparatus and techniques
US8140949B2 (en) * 2007-11-13 2012-03-20 Alpha Imaging Technology Corp. ACS unit of a Viterbi decoder and method for calculating a bit error rate before a Viterbi decoder
TWI493882B (zh) * 2008-01-22 2015-07-21 Agere Systems Inc 利用減少複雜性最大後驗機率偵測之方法及裝置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001266500A (ja) * 2000-03-23 2001-09-28 Sony Corp データ記録装置及びデータ記録方法、データ再生装置及びデータ再生方法、並びに、データ記録再生装置及びデータ記録再生方法
JP2001266501A (ja) * 2000-03-23 2001-09-28 Sony Corp データ記録装置及びデータ記録方法、データ再生装置及びデータ再生方法、並びに、データ記録再生装置及びデータ記録再生方法
US8201066B1 (en) * 2008-03-28 2012-06-12 Western Digital Technologies, Inc. Disk drive comprising a trellis detector having a read signal whitener in the ACS circuit
TWI692945B (zh) * 2019-08-19 2020-05-01 瑞昱半導體股份有限公司 疊代解碼電路及解碼方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5638408A (en) * 1994-11-14 1997-06-10 Nec Corporation Variable transmission bit rate discrimination method and apparatus
US6738941B1 (en) * 1998-12-28 2004-05-18 Nec Corporation Data error correction system
US6467064B1 (en) * 1999-03-19 2002-10-15 Fujitsu Limited Viterbi decoder
TW465197B (en) * 1999-04-14 2001-11-21 Texas Instruments Inc Reduced-complexity sequence detection
TW200638687A (en) * 2005-04-29 2006-11-01 Realtek Semiconductor Corp Viterbi decoding apparatus and method thereof
US20070266303A1 (en) * 2006-04-27 2007-11-15 Qualcomm Incorporated Viterbi decoding apparatus and techniques
US8140949B2 (en) * 2007-11-13 2012-03-20 Alpha Imaging Technology Corp. ACS unit of a Viterbi decoder and method for calculating a bit error rate before a Viterbi decoder
TWI493882B (zh) * 2008-01-22 2015-07-21 Agere Systems Inc 利用減少複雜性最大後驗機率偵測之方法及裝置

Also Published As

Publication number Publication date
TW202201911A (zh) 2022-01-01
US20210391875A1 (en) 2021-12-16
US11251815B2 (en) 2022-02-15

Similar Documents

Publication Publication Date Title
TWI663839B (zh) 使用硬選取硬解碼模式下的解碼器產生軟資訊的方法
KR100881192B1 (ko) 에러 패턴 검출 방법, 에러 정정 장치, 및 데이터 부호화 방법
EP1147610A1 (en) An iterative decoder and an iterative decoding method for a communication system
WO2014075267A1 (zh) 译码处理方法及译码器
JP3756525B2 (ja) 固定長デシジョンウィンドウを使用するデータ信号の復号方法
JP2008118327A (ja) ビタビ復号方法
TWI760772B (zh) 基於維特比演算法之解碼電路及解碼方法
JP3512176B2 (ja) ターボ復号装置およびターボ復号における復号の繰返し回数の制御方法
US20140013190A1 (en) Iterative Decoding Device and Related Decoding Method
CN113839680B (zh) 基于维特比算法的解码电路及解码方法
TWI487291B (zh) 循環碼解碼器及其方法
GB2523586A (en) Method and a device for decoding a bitstream encoded with an outer convolutional code and an inner block code
JP2008017001A (ja) 誤り訂正装置
JP2003264467A (ja) ビタビ復号回路
KR101134806B1 (ko) 부호 복호 방법
US8156412B2 (en) Tree decoding method for decoding linear block codes
Hadavian et al. Ordered Reliability Direct Error Pattern Testing (ORDEPT) Algorithm
CN114499548B (zh) 一种译码方法、装置及存储介质
JP6552776B1 (ja) 誤り訂正復号装置および誤り訂正復号方法
Hadavian et al. Ordered Reliability Direct Error Pattern Testing Decoding Algorithm
US7876862B2 (en) Conditionally input saturated Viterbi detector
JP3987153B2 (ja) マンハッタンあるいはハミングメトリックスキームに基づくビタビデコーダのための信号のデコード
CN110460339B (zh) 卷积码译码的检测方法、装置、存储介质及电子设备
JPH1022839A (ja) 軟判定誤り訂正復号方法
JP3236979B2 (ja) ビタビ復号装置