JP2022500918A - ターボ積符号の復号方法、装置、デコーダー及びコンピュータ記憶媒体 - Google Patents

ターボ積符号の復号方法、装置、デコーダー及びコンピュータ記憶媒体 Download PDF

Info

Publication number
JP2022500918A
JP2022500918A JP2021514078A JP2021514078A JP2022500918A JP 2022500918 A JP2022500918 A JP 2022500918A JP 2021514078 A JP2021514078 A JP 2021514078A JP 2021514078 A JP2021514078 A JP 2021514078A JP 2022500918 A JP2022500918 A JP 2022500918A
Authority
JP
Japan
Prior art keywords
decoding
code
received
turbo product
identifier
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2021514078A
Other languages
English (en)
Other versions
JP7429223B2 (ja
Inventor
ソン,アルクン
ワン,ウェイミン
イン,ジュンジエ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Publication of JP2022500918A publication Critical patent/JP2022500918A/ja
Application granted granted Critical
Publication of JP7429223B2 publication Critical patent/JP7429223B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/2957Turbo codes and decoding
    • H03M13/2975Judging correct decoding, e.g. iteration stopping criteria
    • 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/2906Coding, 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 block codes
    • H03M13/2909Product codes
    • 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/2948Iterative 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/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/2957Turbo codes and decoding
    • H03M13/296Particular turbo code structure
    • H03M13/2963Turbo-block codes, i.e. turbo codes based on block codes, e.g. turbo decoding of product codes
    • 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/618Shortening and extension of codes

Landscapes

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

Abstract

本発明は、ターボ積符号の復号方法、復号装置、デコーダー及びコンピュータ記憶媒体を提供する。前記方法は、ターボ積符号の受信コードワードを取得し、前記受信コードワードに対して、設定された第1の反復復号回数の反復復号を実行するステップ(S101)と、第1の復号ルールに従って前記第1の反復回数の反復復号の復号結果を判断し、復号結果を表すための復号識別子を取得するステップ(S102)と、前記復号識別子に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行するステップ(S103)とを含む。【選択図】図1

Description

(関連出願への相互参照)
本発明は、2018年9月12日に中国特許庁に提出された、出願番号が201811063021.2であり、名称が「ターボ積符号の復号方法、装置、デコーダー及びコンピュータ記憶媒体」である中国特許出願に対する優先権を主張し、そのすべての内容が参照により本明細書に組み込まれる。
本発明は、誤り訂正制御分野に関し、特にターボ積符号の復号方法、装置、デコーダー及びコンピュータ記憶媒体に関する。
ターボ積符号は、ソフト入力ソフト出力反復復号アルゴリズムを基にしたものとして、その誤り訂正性能がシャノン限界に非常に近いため、チャネル符号化分野での研究のホットスポットになる。関連技術では、ターボ積符号の復号方法としてソフト復号アルゴリズムが主に使用されるが、誤りコードの数が少ない場合、ソフト復号アルゴリズムの消費電力が高く、このとき、ハードウェア復号アルゴリズムの方が適している。しかし、誤りコードレートが低い場合、ハードウェア復号アルゴリズムを使用してターボ積符号を復号すると、エラーフロアが発生し、エラーフロアの原因は、主にデッドロック又はデッドロックのような構造の発生である。ハードウェア復号アルゴリズムを用いてターボ積符号を復号するときに行列の交互復号を採用するため、行復号が実行されるときの誤りと列復号が実行されるときの誤りが一致し、かつすべて訂正できないと、デッドロック又はデッドロックのような構造が形成される。
既存の技術的問題を解決するために、本発明の実施例は、エラーフロアを効果的に回避することができるターボ積符号の復号方法、装置、デコーダー及びコンピュータ記憶媒体を提供する。
上記の目的を達成するために、本発明の実施例の技術的解決策は、次のように実現される。
第1の態様によれば、本発明の実施例は、ターボ積符号の復号方法を提供する。前記ターボ積符号の復号方法は、ターボ積符号の受信コードワードを取得し、前記受信コードワードに対して、設定された第1の反復回数の反復復号を実行するステップと、第1の復号ルールに従って前記第1の反復回数の反復復号の復号結果を判断し、復号結果を表すための復号識別子を取得するステップと、前記復号識別子に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行するステップと、を含む。
第2の態様によれば、本発明の実施例は、ターボ積符号の復号装置を提供する。前記ターボ積符号の復号装置は、ターボ積符号の受信コードワードを取得するように構成される取得モジュールと、前記受信コードワードに対して、設定された第1の反復回数の反復復号を実行し、第1の復号ルールに従って前記第1の反復回数の反復復号の復号結果を判断し、復号結果を表すための復号識別子を取得する順方向反復復号モジュールと、前記復号識別子に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行するように構成されるデッドロック訂正モジュールと、を含む。
第3の態様によれば、本発明の実施例は、デコーダーを提供する。前記デコーダーは、プロセッサと、プロセッサで実行可能なコンピュータプログラムを記憶するように構成されるメモリとを含み、前記プロセッサは、前記コンピュータプログラムを実行するときに、第1の態様に記載のターボ積符号の復号方法を実行するように構成される。
第4態様によれば、本発明の実施例は、コンピュータ記憶媒体を提供する。前記コンピュータ記憶媒体にはコンピュータプログラムが記憶され、前記コンピュータプログラムがプロセッサに実行されるときに第1の態様に記載のターボ積符号の復号方法を実現する。
第5態様によれば、本発明の実施例は、コンピュータプログラム製品を提供する。前記コンピュータプログラム製品は、非一時的コンピュータ可読記憶媒体に記憶されたコンピュータプログラムを含み、前記コンピュータプログラムがプログラム命令を含み、前記プログラム命令がコンピュータに実行される場合、前記コンピュータに以上の各態様に記載の方法を実行させる。
本発明の一実施例におけるターボ積符号の復号方法のフローチャートである。 本発明の一実施例におけるターボ積符号の復号装置の構造概略図である。 本発明の一実施例におけるデコーダーの構造概略図である。 本発明の1つの選択可能な具体的実施例におけるターボ積符号の復号方法のフローチャートである。 本発明の1つの例示的な具体的実施例における反復パラメータに基づいて受信コードワードに対して順方向反復復号を実行し、パラメータ記録を実行するフローチャートである。 本発明のさらなる例示的な具体的実施例における反復パラメータに基づいて受信コードワードに対して順方向反復復号を実行し、パラメータ記録を実行するフローチャートである。 本発明の1つの例示的な具体的な実施例における反転された受信コードワードに対して逆方向反復復号を実行するフローチャートである。
以下に明細書の図面及び具体的な実施例を組み合わせて本発明の技術的解決策をさらに詳しく説明する。別段の定義がない限り、本明細書で使用されるすべての技術用語及び科学用語は、本発明の技術分野の当業者によって一般的に理解される意味と同じである。ここで、本発明の明細書で使用される用語は、具体的な実施例を説明するためのものだけであり、本発明を限定することを意図しない。ここで使用される用語「及び/又は」は、1つ又は複数の関連する、示される項目のいずれか1つ又はそれらの組み合わせを含む。
図1を参照すると、本発明の実施例に係るターボ積符号の復号方法は、ステップS101〜S103を含む。ステップS101において、ターボ積符号の受信コードワードを取得し、前記受信コードワードに対して、設定された第1の反復回数の反復復号を実行する。
本実施例では、前記ターボ積符号の復号方法がデコーダーに応用されることは例として挙げられる。エンコーダーは、ブロックコードのコードパターンに従ってターボ積符号を構成し、次にターボ積符号を行ごとにビット単位で直列に送信し、デコーダーは、受信されたシリアルビットシーケンスを前記ターボ積符号の次元と同じアレイに変換し、それによってターボ積符号の受信コードワードを取得する。前記受信コードワードは、ターボ積符号のすべての受信コードワードであり、前記受信コードワードは、行の形態で存在しているコードワードと列の形態で存在しているコードワードとを含む。前記第1の反復回数は、実際のニーズに応じて設定されてもよく、例えば3回又は4回などに設定されてもよい。前記受信コードワードに対して、設定された第1の反復回数の反復復号を実行する前記ステップは、前記受信コードワードに対して、設定された行及び列反復順序の第1の反復回数の反復復号を実行するステップを含むことが理解できる。
前記行及び列反復順序は、行列反復順序であってもよいし、列行反復順序であってもよい。前記受信コードワードに対する1回の行反復は、1回の反復と記され、同様に、前記受信コードワードに対する1回の列反復も1回の反復と記される。前記受信コードワードに対して、設定された第1の反復回数の反復復号を実行するプロセスでは、前記受信コードワードに対して行反復を実行する回数と前記受信コードワードに対して列反復を実行する回数は、同じである可能性があり、異なる可能性もある。本実施例では、前記受信コードワードに対して行列反復順序の第1の反復回数の反復復号を実行する。
ステップS102において、第1の復号ルールに従って前記第1の反復回数の反復復号の復号結果を判断し、復号結果を表すための復号識別子を取得する。具体的には、毎回の行反復復号及び列反復復号プロセスでは、第1の復号ルールに従って、反復復号により得られた復号結果を判断し、それによって復号結果を表すための復号識別子を取得する。この復号結果は、復号後の前記受信コードワードと対応する誤り訂正状況などの情報であってもよい。
1つの選択可能な実施例では、前記受信コードワードに対して、設定された第1の反復回数の反復復号を実行する前記ステップの前に、前記ターボ積符号を構成するブロックコードのコードパターンを取得するステップであって、前記コードパターンには誤り訂正可能なシンボルの最大数が含まれているステップをさらに含み、第1の復号ルールに従って前記第1の反復回数の反復復号の復号結果を判断し、復号結果を表すための復号識別子を取得する前記ステップは、第1の復号ルールに従って、前記第1の反復回数の反復復号の復号結果を判断するステップであって、前記第1の復号ルールは、前記コードパターンに応じて、前記受信コードワードが短縮コードであり、かつ復号後の前記受信コードワードの補足位置でのシンボルがすべて0ではないすべてが0であることでないと判断すると、前記受信コードワードの復号が失敗したと判断すること、前記コードパターンに応じて、前記受信コードワードが拡張コードであり、かつ前記受信コードワードの元のチェックビットが復号後の前記受信コードワードのチェックビットと異なると判断すると、前記受信コードワードの復号が失敗したと判断すること、復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、現在の反復復号回数が設定された反復復号回数閾値に等しく、かつ前回の反復復号プロセスで復号が失敗したコードワードの数が設定された閾値未満であると判断し、又は復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、かつ前記現在の反復復号回数が前記反復復号回数閾値に等しくないと判断すると、前記受信コードワードの復号が失敗したと判断することのうちの少なくとも1つを含むステップと、判断結果に基づいて前記受信コードワードに対応する復号結果の復号識別子を確定するステップと、を含む。
ここで、デコーダーは、エンコーダーから送信された、前記ターボ積符号を構成するブロックコードのコードパターンを受信し、前記ターボ積符号が2次元ターボ積符号であることを例とすると、前記ブロックコードのコードパターンは(n1,k1,t1)及び(n2,k2,t2)を含み、ここで、n1及びn2がそれぞれ対応するブロックコードのコード長を表し、k1及びk2がそれぞれ対応するブロックコードの情報長を表し、t1及びt2がそれぞれ対応するブロックコードの誤り訂正可能なシンボルの最大数を表す。前記受信コードワードのコード長が対応するブロックコードのコード長よりも短い場合、符号化する前に前記ターボ積符号のうちの前のn列又は前のn行の不要なシンボル、即ち情報ビットが0であるシンボルが削除されることを示し、即ち前記受信コードワードは短縮コードであり、nは前記受信コードワードのコード長と対応するブロックコードのコード長との差の絶対値である。例えば、前記ブロックコードのコードパターンが(255,239)×(255,239)であると仮定し、前記受信コードワードのコード長が248であると、前記受信コードワードが短縮コードであり、かつ前記受信コードワードに情報ビットが0である7つのシンボルが省略されることを示す。コードパターンが短縮コードであるターボ積復号の前記受信コードワードを復号する前に、先に前記受信コードワードの補足位置でのシンボルが0で埋められ、前記補足位置は、省略された、情報ビットが0であるシンボルの位置を指す。前記受信コードワードのコード長が対応するブロックコードのコード長よりも長い場合、エンコーダーが前記ターボ積符号のすべての行のXOR操作により取得されたチェック列、及び/又は前記ターボ積符号のすべての列のXOR操作により取得されたチェック行を、前記ターボ積符号に追加することを示し、つまり、前記受信コードワードの最後のシンボルは、チェックビットであり、元のチェックビットと呼ばれ、即ち前記受信コードワードは、拡張コードである。
第1の復号ルールは、主に、コードパターンが短縮コードであること、コードパターンが拡張コードであること、及び誤り訂正可能なシンボルの数という3つの方面に基づき、第1の反復回数の反復復号の復号結果を判断し、復号識別子を取得することを含む。例えば、復号後の前記受信コードワードの補足位置でのシンボルが、すべてが0であることでないと、前記受信コードワードの補足位置でのシンボルが誤って復号されたことを示し、前記受信コードワードの復号は失敗した。
また、例えば、コードパターンが拡張コードである前記受信コードワードを復号する場合、前記受信コードワードの元のチェックビットは復号されない。前記受信コードワードが復号された後、復号後の前記受信コードワードのすべてのシンボルに対してXOR操作を実行し、復号後の前記受信コードワードのチェックビットを取得する。前記受信コードワードに対応する前記元のチェックビットが前記ターボ積符号のチェックビットと異なると、前記受信コードワードの復号プロセスで誤りが発生したことを示し、前記受信コードワードの復号が失敗したと判断する。
また、例えば、復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、現在の反復復号回数が設定された反復復号回数閾値に等しく、かつ前回の反復復号プロセスで復号が失敗したコードワードの数が設定された閾値よりも小さいと判断すると、前記受信コードワードの復号が失敗したと判断し、これにより、より多くの誤りの増加を防止する。
復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、現在の反復復号回数が設定された反復復号回数閾値に等しく、かつ前回の反復復号プロセスで復号が失敗したコードワードの数が設定された閾値以上であると判断すると、前記受信コードワードの復号が成功したと判断し、これにより、復号の柔軟性が向上する。復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、かつ前記現在の反復復号回数が前記反復復号回数閾値に等しくないと判断すると、前記受信コードワードの復号が失敗したと判断し、これにより、より多くの誤りの増加を防止する。
ここで、前記受信コードワードの誤り訂正可能なシンボルの最大数は、前記受信コードワードが属するブロックコードの誤り訂正可能なシンボルの最大数である。前記前回の反復復号プロセスは、前記第1の反復回数に基づいて確定された現在の反復復号の前の反復復号プロセスである。現在の反復復号が行反復復号であると、前回の反復復号は列反復復号である。現在の反復復号が列反復復号であると、前回の反復復号は行反復復号である。前記符号化ユニットは、列である可能性があり、行である可能性もある。
それに応じて、前記前回の反復復号が行反復復号であると、前記前回の反復復号プロセスで復号が失敗したコードワードの数が設定された閾値よりも小さいことは、前記前回の反復復号プロセスで復号が失敗した行の数が第1の設定閾値よりも小さいことであり、前記前回の反復復号が列反復復号であると、前記前回の反復復号プロセスで復号が失敗したコードワードの数が設定された閾値よりも小さいことは、前回の反復復号プロセスで復号が失敗した列の数が第2の設定された閾値よりも小さいことである。
前記第1の設定閾値及び前記第2の設定閾値は、実際のニーズに応じて設定されてもよく、例えば、前記第1の設定閾値は、6に設定されてもよく、前記第2の設定閾値は、7に設定されてもよい。前記反復復号回数閾値は、前記第1の反復回数よりも小さく、実際のニーズに応じて設定されてもよく、例えば前記反復復号回数閾値は、3回目に設定されてもよい。
ここで、前記デコーダーは、判断結果に基づいて前記受信コードワードに対応する復号結果の復号識別子を確定する場合、前記受信コードワードに対して反復復号を実行した後の復号結果に基づいて、取得された結果を判断し、前記受信コードワードに対応する復号結果の復号識別子を記録することができる。前記復号識別子は、前記受信コードワードの復号が成功したか否かを識別するために使用される。例えば、判断結果に基づいて、前記受信コードワードの復号が成功したと判断すると、前記受信コードワードに対応する復号結果を1でマーキングすることができ、復号が成功したコードワードの数に1を加算することができる。判断結果に基づいて前記受信コードワードの復号が失敗したと判断すると、前記受信コードワードに対応する復号結果を0でマーキングすることができ、復号が失敗したコードワードの数に1を加算することができる。当然のことながら、ターボ積復号に対する前記受信コードワードの所在する行番号又は列番号を記録し、対応する前記行番号又は列番号を復号識別子にバインドすることもできる。
このように、第1の復号ルールにより受信コードワードに対して第1の反復回数の反復復号の復号結果を判断し、判断結果に基づいて前記受信コードワードに対応する復号結果の復号識別子を確定し、それによって前記復号識別子に基づいて後の誤り訂正処理のための参照を提供して、誤り訂正の精度を向上させる。
1つの選択可能な実施例では、判断結果に基づいて前記受信コードワードに対応する復号結果の復号識別子を確定する前記ステップの前に、前記ターボ積符号のサイズに等しい復号識別子マトリックスを初期化するステップをさらに含み、判断結果に基づいて前記受信コードワードに対応する復号結果の復号識別子を確定する前記ステップは、判断結果に基づいて前記受信コードワードの各シンボルの前記復号識別子マトリックスにおける対応する位置での復号識別子を更新するステップを含む。
ここで、復号識別子マトリックスを初期化する前記ステップは、前記復号識別子マトリックスの各要素に対応する値をすべて0に設定し、判定結果に基づいて1つのコードワードの復号が成功したと判断する場合、前記復号識別子マトリックスにおける対応する位置でのこのコードワードの値を1に設定し、即ち前記復号識別子マトリックスにおける対応する位置でのこのコードワードの各シンボルの値をすべて1に設定するステップであってもよい。
前記ターボ積符号のサイズに等しい復号識別子マトリックスを設定することにより、前記ターボ積符号の各シンボルに位置を割り当て、対応する復号結果を記録する。このように、反復プロセスでの各シンボルの復号結果を知ることができるため、分析により、復号プロセスでデッドロック又はデッドロックのような構造が現れるか否かを知ることができ、後の誤り訂正処理のための参照を提供する。
1つの選択可能な実施例では、前記第1の復号ルールは、前記受信コードワードのシンボルに対して誤り訂正を実行し、かつ前記復号識別子マトリックスにおける前記シンボルに対応する復号識別子が、前記シンボルが正しく復号されたことを表すと、前記シンボルの復号が失敗したと判断することをさらに含む。
例えば、前記ターボ積符号の1行目のシンボルで構成された受信コードワードを復号し、かつ復号が成功したと仮定し、このときに前記復号識別子マトリックスにおける1番目のシンボルに対応する復号識別子は1に設定され、前記ターボ積符号の1列番目のシンボルで構成された受信コードワードを復号し、かつ前記1番目のシンボルに対して誤り訂正を行ったと判断し、このときに前記1番目のシンボルの復号が失敗したと判断し、前記復号識別子マトリックスにおける1番目のシンボルに対応する復号識別子を0に更新する。
このように、シンボルの履歴復号結果により、シンボルの現在の復号結果を確定することにより、他のシンボルの影響によるシンボルの繰り返し変更の問題が解決され、復号結果の精度が向上する。
ステップS103において、前記復号識別子に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行する。
具体的には、ターボ積符号の受信コードワードに対して設定された第1の反復回数の反復復号を実行した後に取得された、復号結果を表すための復号識別子に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行する。
ここで、前記復号識別子が、設定された第1の反復回数の反復復号を実行するプロセスでの復号状況を表すことができるため、前記復号識別子に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号にデッドロック又はデッドロックのような構造が存在しているか否かなどの状況を知ることができ、前記第1の反復回数の反復復号が実行された前記ターボ積符号にデッドロック又はデッドロックのような構造が存在している場合、前記復号識別子に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行し、前記ターボ積符号のデッドロック又はデッドロックのような構造を破って、エラーフロアを回避する。
上述したように、上記の実施例によって提供されるターボ積符号の復号方法では、第1の復号ルールに従って前記第1の反復回数の反復復号の復号結果を判断して復号識別子を取得し、復号識別子により第1の反復回数の反復復号プロセスでの識別シンボルを記録することができ、それによって反復復号により取得された復号識別子に応じて反復復号後の前記ターボ積符号に対して誤り訂正処理を実行することにより、前記ターボ積符号のデッドロック又はデッドロックのような構造を破って、エラーフロアを効果的に回避する。
1つの選択可能な実施例では、前記復号識別子に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行する前記ステップは、前記復号識別子に応じて、前記第1の反復回数に対応する最後の行反復復号を実行するときに復号が失敗した行数と最後の列反復復号を実行するときに復号が失敗した列数とを取得するステップと、前記行数が設定された第1の数閾値以上であり、かつ前記列数が設定された第2の数閾値以上であると判断する場合、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したコードワードに対して反転操作を実行するステップと、を含む。
例えば、前記第1の反復回数が6回であり、1回目の反復復号が行反復復号であり、2回目の反復復号が列反復復号であると仮定し、これによって類推し、前記第1の反復回数に対応する最後の行反復復号は、5回目の反復復号であり、前記第1の反復回数に対応する最後の列反復復号は、6回目の反復復号である。復号が反復的に実行され、かつ復号が成功するたびにターボ積符号を更新し、新しい復号後の前記ターボ積符号を取得するため、前記第1の反復回数に対応する最後の行反復復号と最後の列反復復号は、前記最後の行反復復号及び最後の列反復復号の前の反復復号情報を含む。前記第1の数閾値及び前記第2の数閾値は、対応するブロックコードの誤り訂正可能なシンボルの最大数に基づいて確定されてもよい。例えば、前記ターボ積符号を構成するブロックコードのコードパターンが(n1,k1,t1)及び(n2、k2、t2)であり、かつ前記ターボ積符号のサイズがn1*n2である場合、前記第1の数閾値は、t1+1に設定されてもよく、前記第2の数閾値は、t2+1に設定されてもよい。
前記行数が設定された第1の数閾値以上であり、かつ前記列数が設定された第2の数閾値以上であると判断する場合、前記第1の反復回数の反復復号が実行された前記ターボ積符号にデッドロック又はデッドロックのような構造が現れることを示すことが理解できる。
前記第1の反復回数の反復復号が実行されたターボ積符号のうち、復号が失敗したコードワードに対して反転操作を実行する前記ステップは、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したすべてのコードワードに対して反転操作を実行するステップであってもよいし、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したコードワードに対して反転操作を実行するステップであってもよく、それによってデッドロック又はデッドロックのような構造を破る。
例えば、前記第1の反復回数の反復復号が実行されたターボ積符号のうち、復号が失敗したコードワードに対して反転操作を実行する前記ステップは、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗した前のt1+1行及び前のt2+1列のシンボルに対して反転操作を実行し、即ちシンボル1を1から0にし、0から1にするステップであってもよい。
このように、前記第1の反復回数に対応する最後の行反復復号を実行するときに復号が失敗した行数と最後の列反復復号を実行するときに復号が失敗した列数がそれぞれ対応する数閾値より大きいと判断する場合、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したコードワードに対して反転操作を実行し、それによってデッドロック又はデッドロックのような構造をさらに正確に破り、復号の精度を向上させる。
1つの選択可能な実施例では、前記復号識別子に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行する前記ステップは、前記復号識別子マトリックスに従って、復号が失敗したシンボルの数を取得するステップと、前記数と設定された第3の数閾値との間の関係に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したシンボルに対して反転操作を実行するステップと、を含む。
ここで、前記復号識別子マトリックスに各シンボルに対応する復号結果が記録されているため、前記復号識別子マトリックスに従って、復号が失敗したシンボルの数を取得することができる。前記第3の数閾値は、実際のニーズに応じて設定されてもよく、例えば10つ又は16つなどに設定されてもよい。前記数と設定された第3の数閾値との間の関係に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したコードワードに対して反転操作を実行する前記ステップは、前記数が設定された第3の数閾値より大きい場合、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したコードワードの一部に対して反転操作を実行し、前記数が設定された第3の数閾値以下である場合、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したすべてのコードワードに対して反転操作を実行するステップであってもよい。
例えば、前記復号識別子マトリックスにおける0の数、即ち復号が失敗したシンボルの数を取得し、かつ前記復号識別子マトリックスにおける0の数が設定された第3の数閾値より大きいと判断する場合、前記第1の反復回数の反復復号が実行されたターボ積符号のうち、復号が失敗したコードワードの一部に対して反転操作を実行する前記ステップは、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗した前の(t1+1)*(t2+1)つのシンボルに対して反転操作を実行するステップであってもよい。前記復号が失敗したシンボルの数が設定された第3の数閾値より大きいと判断する場合、前記第1の反復回数の反復復号が実行された前記ターボ積符号にデッドロック又はデッドロックのような構造が現れる可能性があることを示すことが理解できる。
このように、前記復号識別子マトリックスに従って、復号が失敗したシンボルの数を取得し、前記数と設定された第3の数閾値との間の関係に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したシンボルに対して反転操作を実行し、それによってデッドロック又はデッドロックのような構造をさらに正確に破り、復号の精度を向上させる。
1つの選択可能な実施例では、前記復号識別子に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行する前記ステップの後、誤り訂正処理が実行された前記ターボ積符号に対して、設定された第2の反復回数の反復復号を実行するステップと、第2の復号ルールに従って前記第2の反復回数の反復復号の復号結果を判断し、ターゲットターボ積符号を取得するステップと、をさらに含む。
誤り訂正処理が実行された前記ターボ積符号に対して、設定された第2の反復回数の反復復号を実行する前記ステップは、誤り訂正処理が実行された前記ターボ積符号に対して、設定された行及び列反復順序の第1の反復回数の反復復号を実行するステップを含む。前記行及び列反復順序は、行列反復順序であってもよいし、列行反復順序であってもよい。前記第1の反復回数が偶数である場合、前記受信コードワードに対して先に行反復復号を実行すると、誤り訂正処理が実行された前記ターボ積符号に対しても先に行反復復号を実行し、前記受信コードワードに対して先に列反復復号を実行すると、誤り訂正処理が実行された前記ターボ積符号に対しても先に列反復復号を実行する。
前記第1の反復回数が奇数である場合、前記受信コードワードに対して先に行反復復号を実行すると、誤り訂正処理が実行された前記ターボ積符号に対して先に行列反復復号を実行し、前記受信コードワードに対して先に列反復復号を実行すると、誤り訂正処理が実行された前記ターボ積符号に対して先に行反復復号を実行する。ここで、前記第2の反復回数は、実際のニーズに応じて設定されてもよく、例えば3回又は4回などに設定されてもよい。通常、前記第2の反復回数は、前記第1の反復回数よりも小さく設定されてもよい。前記第2の復号判定ルールは、実際のニーズに応じて設定されてもよく、例えば、前記第2の復号判定ルールは、前記第1の復号判定ルールの一部であってもよい。
このように、誤り訂正処理が実行された前記ターボ積符号に対して、設定された第2の反復回数の反復復号を実行することにより、誤り訂正処理後の前記ターボ積符号内の存在する可能性がある誤りシンボルに対して誤り訂正を実行し、復号の精度が向上する。
1つの選択可能な実施例では、第2の復号判定ルールに従って前記第2の反復回数の反復復号の復号結果を判断する前記ステップは、第2の復号判定ルールに従って前記第2の反復回数の反復復号の復号結果を判断するステップであって、前記第2の復号ルールが、前記コードパターンに応じて、受信コードワードが短縮コードであり、かつ復号後の前記受信コードワードの補足位置でのシンボルがすべて0ではないすべてが0であることでないと判断すると、前記受信コードワードの復号が失敗したと判断すること、前記コードパターンに応じて、前記受信コードワードが拡張コードであり、かつ前記受信コードワードの元のチェックビットが復号後の前記受信コードワードのチェックビットと異なると判断すると、前記受信コードワードの復号が失敗したと判断すること、復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しいと判断すると、前記受信コードワードの復号が成功したと判断することのうちの少なくとも1つを含むステップを含む。
ここで、前記受信コードワードは、誤り訂正処理が実行されたターボ積符号のすべてのコードワードである。
このように、第2の復号ルールにより受信コードワードに対して第2の反復回数の反復復号の復号結果を判断し、復号の精度を向上させる。
上記の方法を実現するために、本発明の実施例に対応してターボ積符号の復号装置を提供する。図2に示すように、前記ターボ積符号の復号装置は、ターボ積符号の受信コードワードを取得するように構成される取得モジュール10と、前記受信コードワードに対して、設定された第1の反復回数の反復復号を実行し、第1の復号ルールに従って前記第1の反復回数の反復復号の復号結果を判断し、復号結果を表すための復号識別子を取得する順方向反復復号モジュール20と、前記復号識別子に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行するように構成されるデッドロック訂正モジュール30と、を含む。
上述したように、上記の実施例によって提供されるターボ積符号の復号装置では、第1の復号ルールに従って前記第1の反復回数の反復復号の復号結果を判断して復号識別子を取得し、復号識別子により第1の反復回数の反復復号プロセスでの識別シンボルを記録することができ、それによって反復復号により取得された復号識別子に応じて、反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行することにより、前記ターボ積符号のデッドロック又はデッドロックのような構造を破って、ビットエラーフロアを効果的に回避することができる。
1つの選択可能な実施例では、前記取得モジュール10は、さらに前記ターボ積符号を構成するブロックコードのコードパターンを取得するように構成され、前記コードパターンには誤り訂正可能なシンボルの最大数が含まれ、前記順方向反復復号モジュール20は、具体的には、第1の復号ルールに従って前記第1の反復回数の反復復号の復号結果を判断し、前記第1の復号ルールが、前記コードパターンに応じて、前記受信コードワードが短縮コードであり、かつ復号後の前記受信コードワードの補足位置でのシンボルがすべて0ではないすべてが0であることでないと判断すると、前記受信コードワードの復号が失敗したと判断すること、前記コードパターンに応じて、前記受信コードワードが拡張コードであり、かつ前記受信コードワードの元のチェックビットが復号後の前記受信コードワードのチェックビットと異なると判断すると、前記受信コードワードの復号が失敗したと判断すること、復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、現在の反復復号回数が設定された反復復号回数閾値に等しく、かつ前回の反復復号プロセスで復号が失敗したコードワードの数が設定された閾値未満であると判断し、又は復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、かつ前記現在の反復復号回数が前記反復復号回数閾値に等しくないと判断すると、前記受信コードワードの復号が失敗したと判断することのうちの少なくとも1つを含み、判断結果に基づいて前記受信コードワードに対応する復号結果の復号識別子を確定するように構成される。
このように、設定された第1の復号ルールにより受信コードワードに対して第1の反復回数の反復復号の復号結果を判断し、判断結果に基づいて前記受信コードワードに対応する復号結果の復号識別子を確定し、それによって前記復号識別子に基づいて後の誤り訂正処理のための参照を提供して、誤り訂正の精度を向上させる。
1つの選択可能な実施例では、前記順方向反復復号モジュール20は、具体的には、前記ターボ積符号のサイズに等しい復号識別子マトリックスを初期化し、判断結果に基づいて前記受信コードワードの各シンボルの前記復号識別子マトリックスにおける対応する位置での復号識別子を更新するように構成される。
このように、反復プロセスでの各シンボルの復号結果を知ることができるため、分析により、復号プロセスにデッドロック又はデッドロックのような構造が現れるか否かを知ることができ、後の誤り訂正処理のための参照を提供する。
1つの選択可能な実施例では、前記第1の復号ルールは、前記受信コードワードのシンボルに対して誤り訂正を実行し、かつ前記復号識別子マトリックスにおける前記シンボルに対応する復号識別子が、前記シンボルが正しく復号されたことを表すと、前記シンボルの復号が失敗したと判断することをさらに含む。
このように、シンボルの履歴復号結果により、シンボルの現在の復号結果を確定し、それによって復号結果の精度が向上する。
1つの選択可能な実施例では、前記デッドロック訂正モジュール30は、具体的には、前記復号識別子に応じて、前記第1の反復回数に対応する最後の行反復復号を実行するときに復号が失敗した行数と最後の列反復復号を実行するときに復号が失敗した列数とを取得し、前記行数が設定された第1の数閾値以上であり、かつ前記列数が設定された第2の数閾値以上であると判断する場合、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したコードワードに対して反転操作を実行するように構成される。
このように、前記第1の反復回数に対応する最後の反復復号を実行するときに復号が失敗した行数及び列数がそれぞれ対応する数閾値より大きいと判断する場合、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したコードワードに対して反転操作を実行し、それによってデッドロック又はデッドロックのような構造をさらに正確に破り、復号の精度が向上する。
1つの選択可能な実施例では、前記デッドロック訂正モジュール30は、具体的には、前記復号識別子マトリックスに従って、復号が失敗したシンボルの数を取得し、前記数と設定された第3の数閾値との間の関係に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したシンボルに対して反転操作を実行するように構成される。
このように、前記復号識別子マトリックスに従って、復号が失敗したシンボルの数を取得し、前記数と設定された第3の数閾値との間の関係に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したシンボルに対して反転操作を実行する。
1つの選択可能な実施例では、前記ターボ積符号の復号装置は、誤り訂正処理が実行された前記ターボ積符号に対して、設定された第2の反復回数の反復復号を実行し、第2の復号判定ルールに従って前記第2の反復回数の反復復号の復号結果を判断し、ターゲットターボ積符号を取得するように構成される逆方向反復復号モジュール40をさらに含む。
このように、誤り訂正処理が実行された前記ターボ積符号に対して、設定された第2の反復回数の反復復号を実行することにより、誤り訂正処理が実行された前記ターボ積符号内の存在する可能性がある誤りシンボルに対して誤り訂正を実行し、復号の精度が向上する。
1つの選択可能な実施例では、前記逆方向反復復号モジュール40は、具体的には、第2の復号判定ルールに従って前記第2の反復回数の反復復号の復号結果を判断するように構成され、前記第2の復号ルールは、前記コードパターンに応じて、受信コードワードが短縮コードであり、かつ復号後の前記受信コードワードの補足位置でのシンボルがすべて0ではないすべてが0であることでないと判断すると、前記受信コードワードの復号が失敗したと判断すること、前記コードパターンに応じて、前記受信コードワードが拡張コードであり、かつ前記受信コードワードの元のチェックビットが復号後の前記受信コードワードのチェックビットと異なると判断すると、前記受信コードワードの復号が失敗したと判断すること、復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しいと判断すると、前記受信コードワードの復号が成功したと判断することのうちの少なくとも1つを含む。
このように、第2の復号ルールにより受信コードワードに対して第2の反復回数の反復復号の復号結果を判断し、復号の精度を向上させる。
1つの選択可能な実施例では、前記デコーダーは、前記ターゲットターボ積符号を出力するように構成される復号結果出力モジュール50をさらに含む。
上記の実施例によって提供されるターボ積符号の復号装置は、ターボ積符号の復号方法を実現するときに、上記の各プログラムモジュールの区分のみを例として説明するが、実際の応用において、上記の処理割り当ては、ニーズに応じて異なるプログラムモジュールによって完了されてもよく、即ち上記の処理のすべて又は一部は、ターボ積符号の復号装置の内部構造を異なるプログラムモジュールに分けて完了されてもよい。
なお、上記実施例によって提供されるターボ積符号の復号装置は、対応するターボ積符号の復号方法の実施例と同じ概念に属し、その具体的な実現プロセスについては、方法の実施例を参照するため、ここでは説明を省略する。
別の実施例では、本発明の実施例は、デコーダーをさらに提供する。図3に示すように、このデコーダーは、プロセッサ310と、プロセッサ310で実行可能なコンピュータプログラムを記憶するように構成されるメモリ311とを含み、ここで、図3に示すプロセッサ310は、プロセッサ310の数が1つであることを指すためのものではなく、他のデバイスに対するプロセッサ310の位置関係を指すためのものだけであり、実際の応用では、プロセッサ310の数は、1つ又は複数であってもよく、同様に、図3に示すメモリ311も同様の意味を有し、即ち他のデバイスに対するメモリ311の位置関係を指すためのものだけであり、実際の応用では、メモリ311の数は、1つ又は複数であってもよい。
前記プロセッサ310は、前記コンピュータプログラムを実行するとき、ターボ積符号の受信コードワードを取得し、前記受信コードワードに対して、設定された第1の反復回数の反復復号を実行するステップと、第1の復号ルールに従って前記第1の反復回数の反復復号の復号結果を判断し、復号結果を表すための復号識別子を取得するステップと、前記復号識別子に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行するステップとを、実行するように構成される。
1つの選択可能な実施例では、前記プロセッサ310は、さらに、前記コンピュータプログラムを実行するとき、前記ターボ積符号を構成するブロックコードのコードパターンを取得するステップであって、前記コードパターンには誤り訂正可能なシンボルの最大数が含まれているステップと、第1の復号ルールに従って前記第1の反復回数の反復復号の復号結果を判断するステップであって、前記第1の復号ルールが、前記コードパターンに応じて、前記受信コードワードが短縮コードであり、かつ復号後の前記受信コードワードの補足位置でのシンボルがすべて0ではないすべてが0であることでないと判断すると、前記受信コードワードの復号が失敗したと判断すること、前記コードパターンに応じて、前記受信コードワードが拡張コードであり、かつ前記受信コードワードの元のチェックビットが復号後の前記受信コードワードのチェックビットと異なると判断すると、前記受信コードワードの復号が失敗したと判断すること、復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、現在の反復復号回数が設定された反復復号回数閾値に等しく、かつ前回の反復復号プロセスで復号が失敗したコードワードの数が設定された閾値未満であると判断し、又は復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、かつ前記現在の反復復号回数が前記反復復号回数閾値に等しくないと判断すると、前記受信コードワードの復号が失敗したと判断することのうちの少なくとも1つを含むステップと、判断結果に基づいて前記受信コードワードに対応する復号結果の復号識別子を確定するステップと、を実行するように構成される。
1つの選択可能な実施例では、前記プロセッサ310はさらに、前記コンピュータプログラムを実行するとき、前記ターボ積符号のサイズに等しい復号識別子マトリックスを初期化するステップと、判断結果に基づいて前記受信コードワードの各シンボルの前記復号識別子マトリックスにおける対応する位置での復号識別子を更新するステップを実行するように構成される。
1つの選択可能な実施例では、前記プロセッサ310はさらに、前記コンピュータプログラムを実行するとき、前記復号識別子に応じて、前記第1の反復回数に対応する最後の行反復復号を実行するときに復号が失敗した行数と最後の列反復復号を実行するときに復号が失敗した列数とを取得するステップと、前記行数が設定された第1の数閾値以上であり、かつ前記列数が設定された第2の数閾値以上であると判断する場合、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したコードワードに対して反転操作を実行するステップと、を実行するように構成される。
1つの選択可能な実施例では、前記プロセッサ310は、さらに、前記コンピュータプログラムを実行するとき、前記復号識別子マトリックスに従って、復号が失敗したシンボルの数を取得するステップと、前記数と設定された第3の数閾値との間の関係に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したシンボルに対して反転操作を実行するステップとを、実行するように構成される。
1つの選択可能な実施例では、前記プロセッサ310は、さらに、前記コンピュータプログラムを実行するとき、誤り訂正処理が実行された前記ターボ積符号に対して、設定された第2の反復回数の反復復号を実行するステップと、設定された第2の復号判定ルールに従って前記第2の反復回数の反復復号の復号結果を判断し、ターゲットターボ積符号を取得するステップと、を実行するように構成される。
1つの選択可能な実施例では、前記プロセッサ310はさらに、前記コンピュータプログラムを実行するとき、第2の復号判定ルールに従って前記第2の反復回数の反復復号の復号結果を判断するステップであって、前記第2の復号ルールが、前記コードパターンに応じて、受信コードワードが短縮コードであり、かつ復号後の前記受信コードワードの補足位置でのシンボルがすべて0ではないすべてが0であることでないと判断すると、前記受信コードワードの復号が失敗したと判断すること、前記コードパターンに応じて、前記受信コードワードが拡張コードであり、かつ前記受信コードワードの元のチェックビットが復号後の前記受信コードワードのチェックビットと異なると判断すると、前記受信コードワードの復号が失敗したと判断すること、復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しいと判断すると、前記受信コードワードの復号が成功したと判断することのうちの少なくとも1つを含むステップを実行するように構成される。
このデコーダーは、少なくとも1つの少なくとも1つのネットワークインターフェース312をさらに含む。このデコーダーでの各部材は、バスシステム313を介して結合される。バスシステム313はこれらの部材間の接続通信を実現するために使用されることが理解できる。バスシステム313は、データバスに加えて、電源バス、制御バスと状態信号バスを含む。しかしながら、説明を明確にするために、図3では様々なバスシステムは、バスシステム313としてマーキングされる。
ここで、メモリ311は、揮発性メモリ又は不揮発性メモリであってもよく、揮発性メモリ及び不揮発性メモリの両方を含むこともできる。ここで、不揮発性メモリは、読み取り専用メモリ(ROM:Read Only Memory)、プログラマブル読み取り専用メモリ(PROM:Programmable Read−Only Memory)、消去可能プログラマブル読み取り専用メモリ(EPROM:Erasable Programmable Read−Only Memory)、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM:Electrically Erasable Programmable Read−Only Memory)、磁気ランダムアクセスメモリ(FRAM:ferromagnetic random access memory)、フラッシュメモリ(Flash Memory)、磁気表面メモリ、光ディスク、又は読み取り専用光ディスク(CD−ROM:Compact Disc Read−Only Memory)であってもよく、磁気表面メモリは、磁気ディスクメモリ又は磁気テープメモリであってもよい。
揮発性記憶装置は、外部キャッシュメモリとして機能するランダムアクセスメモリ(RAM:Random Access Memory)であってもよい。制限的でなく例示的な説明により、多くの形態のRAMは、利用可能であり、例えばスタティックランダムアクセスメモリ(SRAM:Static Random Access Memory)、同期静的ランダムアクセスメモリ(SSRAM:Synchronous Static Random Access Memory)、動的ランダムアクセスメモリ(DRAM:Synchronous Static Random Access Memory)、同期動的ランダムアクセスメモリ(SDRAM:Synchronous Dynamic Random Access Memory)、ダブルデータレート同期動的ランダムアクセスメモリ(DDRSDRAM:Double Data Rate Synchronous Dynamic Random Access Memory)、強化型同期動的ランダムアクセスメモリ(ESDRAM:Enhanced Synchronous Dynamic Random Access Memory)、同期リンク動的ランダムアクセスメモリ(SLDRAM:SyncLink Dynamic Random Access Memory)、直接ラムバスランダムアクセスメモリ(DRRAM:Direct Rambus Random Access Memory)であってもよい。
本発明の実施例に記載されるメモリ311は、これらと任意の他の適切なタイプのメモリを含むことを図るがこれらに限定されない。
本発明の実施例におけるメモリ311は、様々なタイプのデータを記憶してこのデコーダーの動作をサポートするように構成される。これらのデータの例は、オペレーティングシステムやアプリケーションなどのこのデコーダーで動作するためのコンピュータプログラム、連絡先データ、電話帳データ、メッセージ、ピクチャー、ビデオなどを含む。ここで、オペレーティングシステムは、様々なシステムプログラム、例えばフレームワークレイヤー、コアライブラリレイヤー、ドライバーレイヤーなどを含み、様々な基本サービスの実現、及びハードウェアに基づくタスクの処理に使用される。アプリケーションプログラムは、例えばメディアプレーヤー(Media Player)、ブラウザ(Browser)などの様々なアプリケーションプログラムを含むことができ、様々なアプリケーションサービスを実現するために使用される。
ここで、本発明の実施例の方法を実現するためのプログラムは、アプリケーションプログラムに含まれてもよい。
本実施例はさらにコンピュータ記憶媒体を提供する。前記コンピュータ記憶媒体にはコンピュータプログラムが記憶され、前記コンピュータ記憶媒体は、磁気ランダムアクセスメモリ(FRAM:ferromagnetic random access memory)、読み取り専用メモリ(ROM:Read Only Memory)、プログラマブル読み取り専用メモリ(PROM:Programmable Read−Only Memory)、消去可能プログラマブル読み取り専用メモリ(EPROM:Erasable Programmable Read−Only Memory)、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM:Electrically Erasable Programmable Read−Only Memory)、フラッシュメモリ(Flash Memory)、磁気表面メモリ、光ディスク、又は読み取り専用光ディスク(CD−ROM:Compact Disc Read−Only Memory)などのメモリであってもよいし、携帯電話、コンピュータ、タブレットデバイス、パーソナルデジタルアシスタントなどの、上記メモリの1つの又は任意の組み合わせを含む様々なデバイスであってもよい。
コンピュータ記憶媒体であって、前記コンピュータ記憶媒体にはコンピュータプログラムが記憶され、前記コンピュータプログラムがプロセッサに実行されるとき、ターボ積符号の受信コードワードを取得し、前記受信コードワードに対して、設定された第1の反復回数の反復復号を実行するステップと、第1の復号ルールに従って前記第1の反復回数の反復復号の復号結果を判断し、復号結果を表すための復号識別子を取得するステップと、前記復号識別子に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行するステップと、を実行する。
1つの選択可能な実施例では、前記コンピュータプログラムがプロセッサに実行されるとき、前記ターボ積符号を構成するブロックコードのコードパターンを取得するステップであって、前記コードパターンには誤り訂正可能なシンボルの最大数が含まれるステップと、第1の復号ルールに従って前記第1の反復回数の反復復号の復号結果を判断するステップであって、前記第1の復号ルールが、前記コードパターンに応じて、前記受信コードワードが短縮コードであり、かつ復号後の前記受信コードワードの補足位置でのシンボルがすべて0ではないすべてが0であることでないと判断すると、前記受信コードワードの復号が失敗したと判断すること、前記コードパターンに応じて、前記受信コードワードが拡張コードであり、かつ前記受信コードワードの元のチェックビットが復号後の前記受信コードワードのチェックビットと異なると判断すると、前記受信コードワードの復号が失敗したと判断すること、復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、現在の反復復号回数が設定された反復復号回数閾値に等しく、かつ前回の反復復号プロセスで復号が失敗したコードワードの数が設定された閾値未満であると判断し、又は復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、かつ前記現在の反復復号回数が前記反復復号回数閾値に等しくないと判断すると、前記受信コードワードの復号が失敗したと判断することのうちの少なくとも1つを含むステップと、判断結果に基づいて前記受信コードワードに対応する復号結果の復号識別子を確定するステップをさらに実行する。
1つの選択可能な実施例では、前記コンピュータプログラムがプロセッサに実行されるとき、前記ターボ積符号のサイズに等しい復号識別子マトリックスを初期化するステップと、判断結果に基づいて前記受信コードワードの各シンボルの前記復号識別子マトリックスにおける対応する位置での復号識別子を更新するステップとをさらに実行する。
1つの選択可能な実施例では、前記コンピュータプログラムがプロセッサに実行されるとき、前記復号識別子に応じて、前記第1の反復回数に対応する最後の行反復復号を実行するときに復号が失敗した行数と最後の列反復復号を実行するときに復号が失敗した列数とを取得するステップと、前記行数が設定された第1の数閾値以上であり、かつ前記列数が設定された第2の数閾値以上であると判断する場合、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したコードワードに対して反転操作を実行するステップと、をさらに実行する。
1つの選択可能な実施例では、前記コンピュータプログラムがプロセッサに実行されるとき、前記復号識別子マトリックスに従って、復号が失敗したシンボルの数を取得するステップと、前記数と設定された第3の数閾値との間の関係に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したシンボルに対して反転操作を実行するステップを、さらに実行する。
1つの選択可能な実施例では、前記コンピュータプログラムがプロセッサに実行されるとき、誤り訂正処理が実行された前記ターボ積符号に対して、設定された第2の反復回数の反復復号を実行するステップと、第2の復号判定ルールに従って前記第2の反復回数の反復復号の復号結果を判断し、ターゲットターボ積符号を取得するステップと、をさらに実行する。
1つの選択可能な実施例では、前記コンピュータプログラムがプロセッサに実行されるとき、第2の復号判定ルールに従って前記第2の反復回数の反復復号の復号結果を判断するステップであって、前記第2の復号ルールが、前記コードパターンに応じて、受信コードワードが短縮コードであり、かつ復号後の前記受信コードワードの補足位置でのシンボルがすべて0ではないすべてが0であることでないと判断すると、前記受信コードワードの復号が失敗したと判断すること、前記コードパターンに応じて、前記受信コードワードが拡張コードであり、かつ前記受信コードワードの元のチェックビットが復号後の前記受信コードワードのチェックビットと異なると判断すると、前記受信コードワードの復号が失敗したと判断すること、復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しいと判断すると、前記受信コードワードの復号が成功したと判断することのうちの少なくとも1つを含むステップを、さらに実行する。
以下に本発明の実施例を具体的な例でさらに詳しく説明する。図4を参照すると、本発明の1つの選択可能な具体的実施例によって提供されるターボ積符号の復号方法は、ステップ201〜204を含む。
ステップS201において、ターボ積符号の受信コードワード及びコードパターン、反復パラメータを取得する。ここで、ターボ積符号は、2組以上のブロックコードのコードワードを1つの2次元又は多次元のマトリックスに配列することにより、サブコードが最小距離特性を持つ積符号を構成する。ターボ積符号のコードパターンは、(128,120)×(128,120)、(128,127)×(128,127)、(64,57)×(64,57)、(32,26)×(16,15)×(8,7)などを含む。送信側で情報を送信する場合、ターボ積符号は、行毎にビット単位でシリアルに送信され、受信側では、受信されたシリアルシーケンスは、2次元マトリックス形態に変換され、次にマトリックス構造によって復号される。
ターボ積符号の複雑さ及び復号の遅延は、サブコードのパターンに依存し、サブコードの構成の複雑さ及び復号の複雑さの増加とともに線形的に増加する。受信コードワードに基づいて前記受信コードワードのコードパターンを判別することができないことから、後の復号のために、受信コードワードr_inとコードパターンを同時に取得し、順方向反復復号回数と逆方向反復復号回数を設定する必要がある。本実施例では、ターボ積符号の行列反復復号に使用されるコードパターンは、(n1,k1,1)と(n2,k2,t2)であり、ここで、niがコード長であり、kiが情報長であり、tiが誤り訂正能力であり、iがセット{1,2}に属する。前記反復パラメータは、順次方向反復復号回数m1と逆方向反復復号回数m2を含む。
ステップS202において、反復パラメータに基づいて受信コードワードに対して順方向反復復号を実行し、パラメータ記録を実行し、復号識別子マトリックスがある場合、まず復号識別子マトリックスを初期化し、即ちターボ積符号のコードブロックのサイズに従ってビットデータごとに復号識別子を記憶し、前記復号識別子マトリックスのサイズがターボ積符号のサイズであり、初期値がすべて0に付与される。
受信コードワードr_inに対して順方向反復復号回数m1の順方向反復復号を実行し、かつ順方向反復復号が行反復復号と列反復復号の交互復号である場合、判断条件は、次のことを含む。
1)コードワードのコードパターンが短縮コードであると、復号後の前記コードワードの補足位置がすべて0であるか否かを判断し、すべて0ではないすべてが0であることでない場合、復号が失敗したことを示す。
2)コードワードのコードパターンが拡張コードである場合、復号後の前記コードワードに対してXOR計算を実行して得られたチェックビットが復号前の前記コードワードの元のチェックビットと同じであるか否かを判断し、同じではない場合、復号が失敗したことを示す。
3)復号識別子マトリックスがあり、かつあるコードワードを復号する場合、前記復号識別子マトリックス内の誤り訂正されたシンボルの復号識別子が1であると、復号が失敗したと認められる。
4)あるコードワードを復号する場合、誤り訂正されたシンボルの数がこのコードワード復号の誤り訂正能力限界であると、復号が失敗したと判断し、しかし、現在の反復復号回数が設定された反復復号回数閾値に等しくかつ現在の反復復号の前回の反復復号プロセスでの復号が誤った行数又は列数が大きいと、現在の反復復号では誤り訂正されたシンボルの数がコードワード復号化の誤り訂正能力限界であるという復号状況は、復号が成功したと認められる。
このように、前方反復復号により誤りシンボルの数を減らすことができる。
ステップS203において、記録されたパラメータを使用してデッドロック構造又はデッドロックのような構造を反転させる。復号識別子マトリックスがある場合、復号識別子マトリックス内の0の個数を判断し、復号識別子マトリックスにおける0の個数が設定された閾値num1よりも大きい場合、復号が誤った前の(t1+1)*(t2+1)個のシンボルに対して反転操作を行い、復号識別子マトリックスにおける0の個数が設定された閾値num1よりも小さい場合、復号識別子マトリックスにおける0の位置に対応するデータ、即ち復号が誤ったシンボルをすべて反転する。
復号識別子マトリックスがない場合、順方向反復復号の最後の行反復復号と最後の列反復復号を実行するときに、復号誤りに対応する行番号及び列番号をそれぞれ記録し、復号が誤った行番号がt1+1以上であり、かつ復号が誤った列番号がt2+1以上であると、誤ったコードワードの前のt1+1行とt2+1列のデータを反転し、又は一部のデータを選択して反転し、それによってデッドロック構造を破る。
ステップS204において、反転された受信コードワードに対して反復復号を実行する。反転された受信コードワードに対して逆方向反復回数m2の逆方向反復復号を実行するとき、判断条件は、次のことを含む。
5)コードワードのコードパターンが短縮コードであると、復号後の前記コードワードの補足位置がすべて0であるか否かを判断し、すべて0ではないすべてが0であることでない場合、復号が失敗したことを示す。
6)コードワードのコードパターンが拡張コードである場合、復号後の前記コードワードに対してXOR計算を実行して得られたチェックビットが復号前の前記コードワードの元のチェックビットと同じであるか否かを判断し、同じではない場合、復号が失敗したことを示す。
7)あるコードワードを復号するとき、誤り訂正されたシンボルの数がこのコードワード復号の誤り訂正能力限界であると、復号が成功したと認められる。最後に、反復復号が完了された後、更新されたr_inを出力する。
このように、逆方向反復復号により、順方向反復復号後に存在する可能性がある誤りシンボルに対して誤り訂正を実行し、これにより、復号の不十分な部分が除去される。
1つの例示的な実施例では、図5を参照すると、本実施例が基づく応用シーンは、復号識別子マトリックスが存在することである。前記反復パラメータに基づいて受信コードワードに対して順方向反復復号を実行し、パラメータ記録を実行する前記ステップは、次のステップS2021〜S2028を含む。ステップS2021において、受信コードワードを取得し、短縮コードであるか否か、補足ビットが0であるか否かを判断し、そうである場合、ステップS2022を実行し、そうでない場合、ステップS2027を実行し、ここで、順方向反復復号の順序に従ってターボ積符号から受信コードワードを順次取得し、このコードワードのコードパターンが短縮コードであるか否かを判断し、このコードワードのコードパターンが短縮コードである場合、復号後のこのコードワードの補足ビットがすべて0であるか否かを判断し、すべて0ではないすべてが0であることでない場合、復号が失敗したことを示す。
ステップS2022において、拡張コードであるか否か、かつチェックビットが元のチェックビットと同じであるか否かを判断し、そうである場合、ステップS2023を実行し、そうでない場合、ステップS2027を実行し、ここで、このコードワードのコードパターンが拡張コードであるか否かを判断し、このコードワードのコードパターンが拡張コードである場合、復号後のこのコードワードに対してXOR計算を実行して得られたチェックビットが復号前のこのコードワードの元のチェックビットと同じであるか否かを判断し、同じではない場合、復号が失敗したことを示す。
ステップS2023において、誤り訂正シンボルの数が誤り訂正可能なシンボルの最大数に等しいか否かを判断し、そうである場合、ステップS2024を実行し、そうでない場合、ステップS2025を実行し、具体的には、このコードワードが復号された後の誤り訂正シンボルの数がこのコードワードの誤り訂正可能なシンボルの最大数に等しいか否かを判断し、等しい場合、ステップS2024を実行し、そうでない場合、ステップS2025を実行する。
ステップS2024において、現在の反復回数が設定された回数閾値であるか否か、前回の反復復号プロセスで復号が失敗したコードワードの数が設定された閾値よりも大きいか否かを判断し、そうである場合、ステップS2025を実行し、そうでない場合、ステップS2027を実行し、ここで、前記回数閾値は、実際のニューズに応じて設定されてもよく、反復復号を開始するたびに、対応する反復回数を記録する。前記閾値は、実際のニーズに応じて設定されてもよく、例えば5つ又は6つなどに設定されてもよい。
ステップS2025において、誤り訂正シンボルの数が誤り訂正可能なシンボルの最大数に等しいか否かを判断し、そうである場合、ステップS2025を実行し、そうでない場合、ステップS2027を実行し、具体的には、このコードワードが復号された後の誤り訂正シンボルの数がこのコードワードの誤り訂正可能なシンボルの最大数に等しいか否かを判断し、等しい場合、ステップS2025を実行し、そうでない場合、ステップS2027を実行する。
ステップS2025において、誤り訂正位置の元の復号識別子が1であるか否かを判断し、そうでない場合、ステップS2026を実行し、そうでない場合、ステップS2027を実行する。ここで、このコードワードを復号した後、このコードワードにおける現在の誤りが訂正されたシンボル即ち誤り訂正位置の前記復号識別子マトリックスにおける復号識別子が1であると、このコードワードの復号が失敗したと認められる。
ステップS2026において、受信されたターボ積符号を更新し、具体的には、正しく復号された行番号又は列番号に対応する復号結果をr_inに対応する値に更新し、それによって受信されたターボ積符号の更新を完了する。順方向反復復号の最後の行反復復号を実行するときに、正しく復号された行番号K_id1を記録し、最後の列反復復号を実行するときに、正しく復号された列番号K_id2を記録する。
ステップS2027において、復号識別子マトリックスを更新し、具体的には、復号結果に基づいて復号識別子マトリックスを更新する。コードワードの復号が成功した場合、復号識別子マトリックスにおけるこのコードワードの所在する行又は列をすべて1に設定し、コードワードの復号が失敗した場合、復号識別子マトリックスにおけるこのコードワードの所在する行又は列をすべて0に設定する。
ステップS2028において、現在の反復復号回数が順方向反復復号回数よりも小さいか否かを判断し、そうである場合、ステップS2021に戻り、そうでない場合、終了する。
復号識別子マトリックスがある場合、デッドロック構造の反転は以下の条件に応じて実行されてもよいことが説明すべきである。
1)K_id1が全行番号であるか、K_id2が全列番号である場合、復号結果をr_inに更新し、後復号反復を実行する。
2)復号識別子マトリックスにおける0の個数を判断し、前記個数が設定された閾値num1よりも大きい場合、前記復号識別子マトリックスにおける前の(t1+1)*(t2+1)個の0に対応する位置のr_inをビットで反転し、そうでない場合、すべての0に対応する位置のr_inを反転する。
この実施例では、復号識別子マトリックスを追加することにより、復号が成功したか否かを判断し、コードワードが元々正しいが、他のコードワードの影響により繰り返し変更するという問題を解決する。
1つの例示的な実施例では、図6を参照すると、本実施例が基づく応用シーンは、復号識別子マトリックスが存在しないことである。前記反復パラメータに基づいて受信コードワードに対して順方向反復復号を実行し、パラメータ記録を実行する前記ステップは、次のステップS3021〜S3026を含む。ステップS3021において、受信コードワードを取得し、短縮コードであるか否か、補足ビットが0であるか否かを判断し、そうである場合、ステップS3022を実行し、そうでない場合、ステップS3026を実行し、ここで、順方向反復復号の順序に従ってターボ積符号から受信コードワードを順次取得し、このコードワードのコードパターンが短縮コードであるか否かを判断し、このコードワードのコードパターンが短縮コードであると、復号後のこのコードワードの補足位置がすべて0であるか否かを判断し、すべて0ではないすべてが0であることでない場合、復号が失敗したことを示す。
ステップS3022において、拡張コードであるか否か、かつチェックビットが元のチェックビットと同じであるか否かを判断し、そうである場合、ステップS3023を実行し、そうでない場合、ステップS3026を実行し、ここで、このコードワードのコードパターンが拡張コードであるか否かを判断し、このコードワードのコードパターンが拡張コードである場合、復号後のこのコードワードに対してXOR計算を実行して得られたチェックビットが復号前のこのコードワードの元のチェックビットと同じであるか否かを判断し、同じではない場合、復号が失敗したことを示す。
ステップS3023において、誤り訂正シンボルの数が誤り訂正可能なシンボルの最大数に等しいか否かを判断し、そうである場合、ステップS3024を実行し、そうでない場合、ステップS3025を実行し、具体的には、このコードワードが復号された後の誤り訂正シンボルの数がこのコードワードの誤り訂正可能なシンボルの最大数に等しいか否かを判断し、等しい場合、ステップS3024を実行し、そうでない場合、ステップS3025を実行する。
ステップS3024において、現在の反復回数が設定された回数閾値であるか否か、前回の反復復号プロセスで復号が失敗したコードワードの数が設定された閾値よりも大きいか否かを判断し、そうである場合、ステップS3025を実行し、そうでない場合、ステップS3026を実行し、ここで、前記回数閾値は、実際のニューズに応じて設定されてもよく、反復復号を開始するたびに、対応する反復回数を記録する。前記閾値は、実際のニーズに応じて設定されてもよく、例えば5つ又は6つなどに設定されてもよい。
ステップS3025において、受信されたターボ積符号を更新し、具体的には、正しく復号された行番号又は列番号に対応する復号結果をr_inに対応する値に更新し、それによって受信されたターボ積符号の更新を完了する。順方向反復復号の最後の行反復復号を実行するときに正しく復号された行番号K_id1を記録し、最後の列反復復号を実行するときに正しく復号された列番号K_id2を記録する。
ステップS3026において、現在の反復復号回数が順方向反復復号回数よりも小さいか否かを判断し、そうである場合、ステップS3021に戻り、そうでない場合、終了する。
この実施例では、復号識別子マトリックスは省略され、誤り訂正限界の状況は、デッドロック訂正結果又はデッドロックのような構造の前に変更しないように維持され、より多くの誤りの増加を防止する。誤りが多い場合、誤り訂正限界の状況は、復号が成功したと見なされ、復号はより柔軟になる。
1つの例示的な実施例では、図7を参照すると、反転された受信コードワードに対して逆方向反復復号を実行する前記ステップは、次のステップS4021〜S4025を含む。ステップS4021において、受信コードワードを取得し、ここで、逆方向反復復号の順序に従って、更新されたターボ積符号から受信コードワードを順次取得する。
ステップS4022において、短縮コードであるか否か、補足ビットが0であるか否かを判断し、そうである場合、ステップS4022を実行し、そうでない場合、ステップS4025を実行し、ここで、このコードワードのコードパターンが短縮コードであるか否かを判断し、このコードワードのコードパターンが短縮コードであると、復号後のこのコードワードの補足ビットがすべて0であるか否かを判断し、すべて0ではないすべてが0であることでない場合、復号が失敗したことを示す。
ステップS4023において、拡張コードであるか否か、かつチェックビットが元のチェックビットと同じであるか否かを判断し、そうである場合、ステップS4024を実行し、そうでない場合、ステップS4025を実行し、ここで、コードワードのコードパターンが拡張コードであるか否かを判断し、コードワードのコードパターンが拡張コードである場合、復号後のこのコードワードに対してXOR計算を実行して得られたチェックビットが復号前の前記コードワードの元のチェックビットと同じであるか否かを判断し、同じではない場合、復号が失敗したことを示す。
ステップS4024において、受信されたターボ積符号を更新し、ここで、コードワードの復号が成功したと判断した後、復号結果に基づいて、受信されたターボ積符号を更新する。
ステップS4025において、現在の反復復号回数が逆方向反復復号回数よりも小さいか否かを判断し、そうである場合、ステップS4021に戻り、そうでない場合、終了する。
ここで、反復復号を開始するたびに、現在の反復復号回数を更新する。
上記の方法を実現するために、図2を再度参照すると、本発明の1つの選択可能な具体的実施例に係るターボ積符号の復号装置は、ターボ積符号の受信コードワード及びコードパターン、反復パラメータを取得するように構成される取得モジュール10と、復号識別子マトリックスを確立し、受信コードワードに対して硬判定を実行して復号コードワードを取得し、コードパターン及び判定条件に応じて、復号が成功したか否かを判定し、復号識別子マトリックスを更新するように構成される順方向反復復号モジュール20と、復号識別子マトリックスに従って、誤る可能性があるビットを反転するように構成されるデッドロック訂正モジュール30と、前記受信コードワードに対して逆方向反復復号を実行し、与えられた判断条件に応じて復号が成功したか否かを判断するように構成される逆方向反復復号モジュール40と、前記受信コードワードの復号結果を出力するように構成される復号結果出力モジュール50とを含む。
ここで、前記コードパターンは、コード長、情報長及び誤り訂正能力を含む。前記デッドロック訂正モジュール30は、復号識別子マトリックスに従って誤る可能性があるビットを反転し、コードブロックに含まれる誤りの数に基づいてそれを閾値と比較し、それが閾値より大きいと、反転された誤り位置の数は(t1+1)*(t2+1)つであってもよく、t1、t2がそれぞれ誤り訂正能力である。逆方向反復復号モジュール40の逆方向反復復号プロセスにより、デッドロック訂正結果後の残りの誤りビットを除去する。
以上は、本発明の具体的な実施形態だけであるが、本発明の保護範囲は、これに制限されず、当業者が本発明に開示された技術範囲内で容易に想到し得る変化又は入れ替わりがすべて本発明の保護範囲以内に含まれるべきである。本発明の保護範囲は、前記特許請求の保護範囲に準拠するべきである。

Claims (11)

  1. ターボ積符号の復号方法であって、
    ターボ積符号の受信コードワードを取得し、前記受信コードワードに対して、設定された第1の反復回数の反復復号を実行するステップと、
    第1の復号ルールに従って前記第1の反復回数の反復復号の復号結果を判断し、復号結果を表すための復号識別子を取得するステップと、
    前記復号識別子に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行するステップと、を含むターボ積符号の復号方法。
  2. 前記受信コードワードに対して、設定された第1の反復回数の反復復号を実行する前記ステップの前に、
    前記ターボ積符号を構成するブロックコードのコードパターンを取得するステップであって、前記コードパターンには誤り訂正可能なシンボルの最大数が含まれているステップをさらに含み、
    第1の復号ルールに従って前記第1の反復回数の反復復号の復号結果を判断し、復号結果を表すための復号識別子を取得する前記ステップは、
    第1の復号ルールに従って前記第1の反復回数の反復復号の復号結果を判断するステップであって、前記第1の復号ルールは、前記コードパターンに応じて、前記受信コードワードが短縮コードであり、かつ復号後の前記受信コードワードの補足位置でのシンボルがすべて0ではないすべてが0であることでないと判断すると、前記受信コードワードの復号が失敗したと判断することと、前記コードパターンに応じて、前記受信コードワードが拡張コードであり、かつ前記受信コードワードの元のチェックビットが復号後の前記受信コードワードのチェックビットと異なると判断すると、前記受信コードワードの復号が失敗したと判断することと、復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、現在の反復復号回数が設定された反復復号回数閾値に等しく、かつ前回の反復復号プロセスで復号が失敗したコードワードの数が設定された閾値未満であると判断し、又は復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、かつ前記現在の反復復号回数が前記反復復号回数閾値に等しくないと判断すると、前記受信コードワードの復号が失敗したと判断することと、のうちの少なくとも1つを含むステップと、
    判断結果基づいて、前記受信コードワードに対応する復号結果の復号識別子を確定するステップと、を含む請求項1に記載の方法。
  3. 判断結果基づいて、前記受信コードワードに対応する復号結果の復号識別子を確定する前記ステップの前に、
    前記ターボ積符号のサイズに等しい復号識別子マトリックスを初期化するステップをさらに含み、
    判断結果基づいて、前記受信コードワードに対応する復号結果の復号識別子を確定する前記ステップは、
    判断結果基づいて、前記受信コードワードの各シンボルの前記復号識別子マトリックスにおける対応する位置での復号識別子を更新するステップを含む請求項2に記載の方法。
  4. 前記第1の復号ルールは、
    前記受信コードワードのシンボルに対して誤り訂正を実行し、かつ前記復号識別子マトリックスにおける前記シンボルに対応する復号識別子が、前記シンボルが正しく復号されたことを表すと、前記シンボルの復号が失敗したと判断すること、をさらに含む請求項3に記載の方法。
  5. 前記復号識別子に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行する前記ステップは、
    前記復号識別子に応じて、前記第1の反復回数に対応する最後の行反復復号を実行するときに復号が失敗した行数と最後の列反復復号を実行するときに復号が失敗した列数とを取得するステップと、
    前記行数が設定された第1の数閾値以上であり、かつ前記列数が設定された第2の数閾値以上であると判断する場合、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したコードワードに対して反転操作を実行するステップと、を含む請求項1に記載の方法。
  6. 前記復号識別子に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行する前記ステップは、
    前記復号識別子マトリックスに従って、復号が失敗したシンボルの数を取得するステップと、
    前記数と設定された第3の数閾値との間の関係に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したシンボルに対して反転操作を実行するステップと、を含む請求項3又は4に記載の方法。
  7. 前記復号識別子に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行する前記ステップの後、
    誤り訂正処理が実行された前記ターボ積符号に対して、設定された第2の反復回数の反復復号を実行するステップと、
    第2の復号ルールに従って前記第2の反復回数の反復復号の復号結果を判断し、ターゲットターボ積符号を取得するステップと、をさらに含む請求項1に記載の方法。
  8. 第2の復号判定ルールに従って、前記第2の反復回数の反復復号の復号結果を判断する前記ステップは、
    第2の復号判定ルールに従って前記第2の反復回数の反復復号の復号結果を判断するステップであって、前記第2の復号ルールは、前記コードパターンに応じて、前記受信コードワードが短縮コードであり、かつ復号後の前記受信コードワードの補足位置でのシンボルがすべて0ではないすべてが0であることでないと判断すると、前記受信コードワードの復号が失敗したと判断することと、前記コードパターンに応じて、前記受信コードワードが拡張コードであり、かつ前記受信コードワードの元のチェックビットが復号後の前記受信コードワードのチェックビットと異なると判断すると、前記受信コードワードの復号が失敗したと判断することと、復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しいと判断すると、前記受信コードワードの復号が成功したと判断することと、のうちの少なくとも1つを含むステップを含む請求項7に記載の方法。
  9. ターボ積符号の復号装置であって、
    ターボ積符号の受信コードワードを取得するように構成される取得モジュールと、
    前記受信コードワードに対して、設定された第1の反復回数の反復復号を実行し、第1の復号ルールに従って前記第1の反復回数の反復復号の復号結果を判断し、復号結果を表すための復号識別子を取得するように構成される順方向反復復号モジュールと、
    前記復号識別子に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行するように構成されるデッドロック訂正モジュールと、を含むターボ積符号の復号装置。
  10. デコーダーであって、
    プロセッサと、プロセッサで実行可能なコンピュータプログラムを記憶するように構成されるメモリとを含み、
    前記プロセッサは、前記コンピュータプログラムを実行するときに、請求項1乃至8のいずれか1項に記載のターボ積符号の復号方法を実行するように構成されるデコーダー。
  11. コンピュータ記憶媒体であって、
    前記コンピュータ記憶媒体にはコンピュータプログラムが記憶され、前記コンピュータプログラムがプロセッサに実行されて請求項1乃至8のいずれか1項に記載のターボ積符号の復号方法のステップを実現するコンピュータ記憶媒体。
JP2021514078A 2018-09-12 2019-09-12 ターボ積符号の復号方法、装置、デコーダー及びコンピュータ記憶媒体 Active JP7429223B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201811063021.2 2018-09-12
CN201811063021.2A CN110896309B (zh) 2018-09-12 2018-09-12 Turbo乘积码的译码方法、装置、译码器及计算机存储介质
PCT/CN2019/105802 WO2020052672A1 (zh) 2018-09-12 2019-09-12 Turbo乘积码的译码方法、装置、译码器及计算机存储介质

Publications (2)

Publication Number Publication Date
JP2022500918A true JP2022500918A (ja) 2022-01-04
JP7429223B2 JP7429223B2 (ja) 2024-02-07

Family

ID=69777392

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021514078A Active JP7429223B2 (ja) 2018-09-12 2019-09-12 ターボ積符号の復号方法、装置、デコーダー及びコンピュータ記憶媒体

Country Status (5)

Country Link
US (1) US11381259B2 (ja)
JP (1) JP7429223B2 (ja)
KR (1) KR20210057787A (ja)
CN (1) CN110896309B (ja)
WO (1) WO2020052672A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112054809A (zh) * 2020-08-28 2020-12-08 杭州华澜微电子股份有限公司 改进的tpc纠错算法和装置
KR20230081244A (ko) * 2021-11-30 2023-06-07 삼성전자주식회사 통신 및 방송 시스템에서 데이터 복호화 방법 및 장치

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7093179B2 (en) * 2001-03-22 2006-08-15 University Of Florida Method and coding means for error-correction utilizing concatenated parity and turbo codes
KR100456474B1 (ko) * 2001-12-08 2004-11-09 한국전자통신연구원 블록터보 부호의 반복 복호 방법 및 블록터보 부호의 반복복호 프로그램을 저장한 기록매체
CN1780152A (zh) 2004-11-17 2006-05-31 松下电器产业株式会社 迭代译码方法和系统
CN101557234A (zh) 2009-05-18 2009-10-14 北京天碁科技有限公司 一种Turbo码的动态迭代译码方法及装置
CN102035558B (zh) * 2009-09-27 2013-01-16 中兴通讯股份有限公司 Turbo译码方法和装置
CN101777924B (zh) 2010-01-11 2014-02-19 新邮通信设备有限公司 一种Turbo码译码方法和装置
CN101958720B (zh) 2010-09-24 2013-03-20 西安电子科技大学 缩短Turbo乘积码的编译码方法
US9300329B2 (en) * 2012-11-08 2016-03-29 Sk Hynix Memory Solutions Inc. Turbo-product codes (TPC) with interleaving
US9391641B2 (en) 2013-04-26 2016-07-12 SK Hynix Inc. Syndrome tables for decoding turbo-product codes
US9287899B1 (en) * 2013-12-20 2016-03-15 Xilinx, Inc. Forward error correction
CN104980172A (zh) 2014-04-01 2015-10-14 中国科学院大学 基于Turbo码的联合信道安全编码的比特级译码方法
CN104579369B (zh) * 2014-12-18 2018-06-15 北京思朗科技有限责任公司 一种Turbo迭代译码方法和译码装置
US10153786B1 (en) * 2015-02-06 2018-12-11 Marvell International Ltd. Iterative decoder with dynamically-variable performance
US9935659B2 (en) 2015-05-18 2018-04-03 SK Hynix Inc. Performance optimization in soft decoding for turbo product codes

Also Published As

Publication number Publication date
US11381259B2 (en) 2022-07-05
KR20210057787A (ko) 2021-05-21
WO2020052672A1 (zh) 2020-03-19
US20220038118A1 (en) 2022-02-03
JP7429223B2 (ja) 2024-02-07
CN110896309A (zh) 2020-03-20
CN110896309B (zh) 2022-11-15

Similar Documents

Publication Publication Date Title
US10048877B2 (en) Predictive memory maintenance
KR101753498B1 (ko) 신뢰도 데이터 업데이트
US9912355B2 (en) Distributed concatenated error correction
US9391641B2 (en) Syndrome tables for decoding turbo-product codes
KR20090015927A (ko) 멀티플 에러 보정 방식에 의한 손상 방지 데이터 포팅
KR101550762B1 (ko) 연접 오류 정정 장치
US11119847B2 (en) System and method for improving efficiency and reducing system resource consumption in a data integrity check
US11632135B2 (en) Apparatuses and methods for interleaved BCH codes
US10606697B2 (en) Method and apparatus for improved data recovery in data storage systems
JP7429223B2 (ja) ターボ積符号の復号方法、装置、デコーダー及びコンピュータ記憶媒体
JPH0556050B2 (ja)
CN112346903B (zh) 用于执行内建式自我测试的独立磁盘冗余数组译码系统
JP2020524930A (ja) 短縮レイテンシ誤り訂正復号
KR20160075001A (ko) 플래시 메모리 시스템 동작 방법
CN113168882B (zh) 一种编码方法、译码方法以及存储控制器
Chen et al. A new Zigzag MDS code with optimal encoding and efficient decoding
JP2020046823A (ja) メモリシステム
JP2010535459A (ja) 線形計画法復号のための座標上昇法
US20240106462A1 (en) G-ldpc decoder and g-ldpc decoding method
KR20230132697A (ko) 일반 연결 코드 코드워드를 디코딩하는 장치, 저장 시스템 및 그 제어 방법
WO2023023732A1 (en) Modified staircase forward error correction coding
Eze et al. Innovative Improvement of Data Storage Using Error Correction Codes
JPS6329450B2 (ja)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220823

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230815

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231115

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240126

R150 Certificate of patent or registration of utility model

Ref document number: 7429223

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150