IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 中興通訊股▲ふん▼有限公司の特許一覧

特許7429223ターボ積符号の復号方法、装置、デコーダー及びコンピュータ記憶媒体
<>
  • 特許-ターボ積符号の復号方法、装置、デコーダー及びコンピュータ記憶媒体 図1
  • 特許-ターボ積符号の復号方法、装置、デコーダー及びコンピュータ記憶媒体 図2
  • 特許-ターボ積符号の復号方法、装置、デコーダー及びコンピュータ記憶媒体 図3
  • 特許-ターボ積符号の復号方法、装置、デコーダー及びコンピュータ記憶媒体 図4
  • 特許-ターボ積符号の復号方法、装置、デコーダー及びコンピュータ記憶媒体 図5
  • 特許-ターボ積符号の復号方法、装置、デコーダー及びコンピュータ記憶媒体 図6
  • 特許-ターボ積符号の復号方法、装置、デコーダー及びコンピュータ記憶媒体 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-30
(45)【発行日】2024-02-07
(54)【発明の名称】ターボ積符号の復号方法、装置、デコーダー及びコンピュータ記憶媒体
(51)【国際特許分類】
   H03M 13/29 20060101AFI20240131BHJP
   H03M 13/37 20060101ALI20240131BHJP
【FI】
H03M13/29
H03M13/37
【請求項の数】 10
(21)【出願番号】P 2021514078
(86)(22)【出願日】2019-09-12
(65)【公表番号】
(43)【公表日】2022-01-04
(86)【国際出願番号】 CN2019105802
(87)【国際公開番号】W WO2020052672
(87)【国際公開日】2020-03-19
【審査請求日】2022-08-23
(31)【優先権主張番号】201811063021.2
(32)【優先日】2018-09-12
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】511151662
【氏名又は名称】中興通訊股▲ふん▼有限公司
【氏名又は名称原語表記】ZTE CORPORATION
【住所又は居所原語表記】ZTE Plaza,Keji Road South,Hi-Tech Industrial Park,Nanshan Shenzhen,Guangdong 518057 China
(74)【代理人】
【識別番号】110002066
【氏名又は名称】弁理士法人筒井国際特許事務所
(72)【発明者】
【氏名】ソン,アルクン
(72)【発明者】
【氏名】ワン,ウェイミン
(72)【発明者】
【氏名】イン,ジュンジエ
【審査官】北村 智彦
(56)【参考文献】
【文献】米国特許出願公開第2016/0344426(US,A1)
【文献】米国特許出願公開第2014/0325320(US,A1)
【文献】Changlong Xu et al.,The Design and Decoding Schemes for Shortened Turbo Product Codes[online] ,2006 IEEE 17th International Symposium on Personal, Indoor and Mobile Radio Communications,2006年12月11日,[検索日:2023.08.07],インターネット<URL:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=4022736>
(58)【調査した分野】(Int.Cl.,DB名)
H03M 13/29
H03M 13/37
IEEE Xplore
3GPP TSG RAN WG1-4
SA WG1-4
CT WG1,4
(57)【特許請求の範囲】
【請求項1】
ターボ積符号の復号方法であって、
ターボ積符号の受信コードワードを取得し、前記受信コードワードに対して、設定された第1の反復回数の反復復号を実行するステップと、
第1の復号ルールに従って前記第1の反復回数の反復復号の復号結果を判断し、復号結果を表すための復号識別子を取得するステップと、
前記復号識別子に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行するステップと、を含み、
前記受信コードワードに対して、設定された第1の反復回数の反復復号を実行する前記ステップの前に、
前記ターボ積符号を構成するブロックコードのコードパターンを取得するステップであって、前記コードパターンには誤り訂正可能なシンボルの最大数が含まれているステップをさらに含み、
第1の復号ルールに従って前記第1の反復回数の反復復号の復号結果を判断し、復号結果を表すための復号識別子を取得する前記ステップは、
第1の復号ルールに従って前記第1の反復回数の反復復号の復号結果を判断するステップであって、前記第1の復号ルールは、前記コードパターンに応じて、前記受信コードワードが短縮コードであり、かつ復号後の前記受信コードワードの補足位置でのシンボルがすべて0ではないと判断すると、前記受信コードワードの復号が失敗したと判断することと、前記コードパターンに応じて、前記受信コードワードが拡張コードであり、かつ前記受信コードワードの元のチェックビットが復号後の前記受信コードワードのチェックビットと異なると判断すると、前記受信コードワードの復号が失敗したと判断することと、復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、現在の反復復号回数が設定された反復復号回数閾値に等しく、かつ前回の反復復号プロセスで復号が失敗したコードワードの数が設定された閾値未満であると判断し、又は復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、かつ前記現在の反復復号回数が前記反復復号回数閾値に等しくないと判断すると、前記受信コードワードの復号が失敗したと判断することと、のうちの少なくとも1つを含むステップと、
判断結果に基づいて、前記受信コードワードに対応する復号結果の復号識別子を確定するステップと、を含むターボ積符号の復号方法。
【請求項2】
判断結果基づいて、前記受信コードワードに対応する復号結果の復号識別子を確定する前記ステップの前に、
前記ターボ積符号のサイズに等しい復号識別子マトリックスを初期化するステップをさらに含み、
判断結果基づいて、前記受信コードワードに対応する復号結果の復号識別子を確定する前記ステップは、
判断結果基づいて、前記受信コードワードの各シンボルの前記復号識別子マトリックスにおける対応する位置での復号識別子を更新するステップを含む請求項に記載の方法。
【請求項3】
前記第1の復号ルールは、
前記受信コードワードのシンボルに対して誤り訂正を実行し、かつ前記復号識別子マトリックスにおける前記シンボルに対応する復号識別子が、前記シンボルが正しく復号されたことを表すと、前記シンボルの復号が失敗したと判断すること、をさらに含む請求項に記載の方法。
【請求項4】
前記復号識別子に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行する前記ステップは、
前記復号識別子に応じて、前記第1の反復回数に対応する最後の行反復復号を実行するときに復号が失敗した行数と最後の列反復復号を実行するときに復号が失敗した列数とを取得するステップと、
前記行数が設定された第1の数閾値以上であり、かつ前記列数が設定された第2の数閾値以上であると判断する場合、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したコードワードに対して反転操作を実行するステップと、を含む請求項1に記載の方法。
【請求項5】
前記復号識別子に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行する前記ステップは、
前記復号識別子マトリックスに従って、復号が失敗したシンボルの数を取得するステップと、
前記数と設定された第3の数閾値との間の関係に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したシンボルに対して反転操作を実行するステップと、を含む請求項又はに記載の方法。
【請求項6】
前記復号識別子に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行する前記ステップの後、
誤り訂正処理が実行された前記ターボ積符号に対して、設定された第2の反復回数の反復復号を実行するステップと、
第2の復号ルールに従って前記第2の反復回数の反復復号の復号結果を判断し、ターゲットターボ積符号を取得するステップと、をさらに含む請求項1に記載の方法。
【請求項7】
第2の復号判定ルールに従って、前記第2の反復回数の反復復号の復号結果を判断する前記ステップは、
記コードパターンに応じて、前記受信コードワードが短縮コードであり、かつ復号後の前記受信コードワードの補足位置でのシンボルがすべて0ではないと判断すると、前記受信コードワードの復号が失敗したと判断することと、前記コードパターンに応じて、前記受信コードワードが拡張コードであり、かつ前記受信コードワードの元のチェックビットが復号後の前記受信コードワードのチェックビットと異なると判断すると、前記受信コードワードの復号が失敗したと判断することと、復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しいと判断すると、前記受信コードワードの復号が成功したと判断することと、のうちの少なくとも1つを含む請求項に記載の方法。
【請求項8】
ターボ積符号の復号装置であって、
ターボ積符号の受信コードワードを取得するように構成される取得モジュールと、
前記受信コードワードに対して、設定された第1の反復回数の反復復号を実行し、第1の復号ルールに従って前記第1の反復回数の反復復号の復号結果を判断し、復号結果を表すための復号識別子を取得するように構成される順方向反復復号モジュールと、
前記復号識別子に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行するように構成されるデッドロック訂正モジュールと、を含み、
前記順方向反復復号モジュールは、
前記受信コードワードに対して、設定された第1の反復回数の反復復号を実行する前に、
前記ターボ積符号を構成するブロックコードのコードパターンを取得し、前記コードパターンには誤り訂正可能なシンボルの最大数が含まれており、
第1の復号ルールに従って前記第1の反復回数の反復復号の復号結果を判断するステップであって、前記第1の復号ルールは、前記コードパターンに応じて、前記受信コードワードが短縮コードであり、かつ復号後の前記受信コードワードの補足位置でのシンボルがすべて0ではないと判断すると、前記受信コードワードの復号が失敗したと判断することと、前記コードパターンに応じて、前記受信コードワードが拡張コードであり、かつ前記受信コードワードの元のチェックビットが復号後の前記受信コードワードのチェックビットと異なると判断すると、前記受信コードワードの復号が失敗したと判断することと、復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、現在の反復復号回数が設定された反復復号回数閾値に等しく、かつ前回の反復復号プロセスで復号が失敗したコードワードの数が設定された閾値未満であると判断し、又は復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、かつ前記現在の反復復号回数が前記反復復号回数閾値に等しくないと判断すると、前記受信コードワードの復号が失敗したと判断することと、のうちの少なくとも1つを含み、
判断結果に基づいて、前記受信コードワードに対応する復号結果の復号識別子を確定するターボ積符号の復号装置。
【請求項9】
デコーダーであって、
プロセッサと、プロセッサで実行可能なコンピュータプログラムを記憶するように構成されるメモリとを含み、
前記プロセッサは、前記コンピュータプログラムを実行するときに、請求項1乃至のいずれか1項に記載のターボ積符号の復号方法を実行するように構成されるデコーダー。
【請求項10】
コンピュータ記憶媒体であって、
前記コンピュータ記憶媒体にはコンピュータプログラムが記憶され、前記コンピュータプログラムがプロセッサに実行されて請求項1乃至のいずれか1項に記載のターボ積符号の復号方法のステップを実現するコンピュータ記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願への相互参照)
本発明は、2018年9月12日に中国特許庁に提出された、出願番号が201811063021.2であり、名称が「ターボ積符号の復号方法、装置、デコーダー及びコンピュータ記憶媒体」である中国特許出願に対する優先権を主張し、そのすべての内容が参照により本明細書に組み込まれる。
【0002】
本発明は、誤り訂正制御分野に関し、特にターボ積符号の復号方法、装置、デコーダー及びコンピュータ記憶媒体に関する。
【背景技術】
【0003】
ターボ積符号は、ソフト入力ソフト出力反復復号アルゴリズムを基にしたものとして、その誤り訂正性能がシャノン限界に非常に近いため、チャネル符号化分野での研究のホットスポットになる。関連技術では、ターボ積符号の復号方法としてソフト復号アルゴリズムが主に使用されるが、誤りコードの数が少ない場合、ソフト復号アルゴリズムの消費電力が高く、このとき、ハードウェア復号アルゴリズムの方が適している。しかし、誤りコードレートが低い場合、ハードウェア復号アルゴリズムを使用してターボ積符号を復号すると、エラーフロアが発生し、エラーフロアの原因は、主にデッドロック又はデッドロックのような構造の発生である。ハードウェア復号アルゴリズムを用いてターボ積符号を復号するときに行列の交互復号を採用するため、行復号が実行されるときの誤りと列復号が実行されるときの誤りが一致し、かつすべて訂正できないと、デッドロック又はデッドロックのような構造が形成される。
【発明の概要】
【発明が解決しようとする課題】
【0004】
既存の技術的問題を解決するために、本発明の実施例は、エラーフロアを効果的に回避することができるターボ積符号の復号方法、装置、デコーダー及びコンピュータ記憶媒体を提供する。
【課題を解決するための手段】
【0005】
上記の目的を達成するために、本発明の実施例の技術的解決策は、次のように実現される。
【0006】
第1の態様によれば、本発明の実施例は、ターボ積符号の復号方法を提供する。前記ターボ積符号の復号方法は、ターボ積符号の受信コードワードを取得し、前記受信コードワードに対して、設定された第1の反復回数の反復復号を実行するステップと、第1の復号ルールに従って前記第1の反復回数の反復復号の復号結果を判断し、復号結果を表すための復号識別子を取得するステップと、前記復号識別子に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行するステップと、を含む。
【0007】
第2の態様によれば、本発明の実施例は、ターボ積符号の復号装置を提供する。前記ターボ積符号の復号装置は、ターボ積符号の受信コードワードを取得するように構成される取得モジュールと、前記受信コードワードに対して、設定された第1の反復回数の反復復号を実行し、第1の復号ルールに従って前記第1の反復回数の反復復号の復号結果を判断し、復号結果を表すための復号識別子を取得する順方向反復復号モジュールと、前記復号識別子に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行するように構成されるデッドロック訂正モジュールと、を含む。
【0008】
第3の態様によれば、本発明の実施例は、デコーダーを提供する。前記デコーダーは、プロセッサと、プロセッサで実行可能なコンピュータプログラムを記憶するように構成されるメモリとを含み、前記プロセッサは、前記コンピュータプログラムを実行するときに、第1の態様に記載のターボ積符号の復号方法を実行するように構成される。
【0009】
第4態様によれば、本発明の実施例は、コンピュータ記憶媒体を提供する。前記コンピュータ記憶媒体にはコンピュータプログラムが記憶され、前記コンピュータプログラムがプロセッサに実行されるときに第1の態様に記載のターボ積符号の復号方法を実現する。
【0010】
第5態様によれば、本発明の実施例は、コンピュータプログラム製品を提供する。前記コンピュータプログラム製品は、非一時的コンピュータ可読記憶媒体に記憶されたコンピュータプログラムを含み、前記コンピュータプログラムがプログラム命令を含み、前記プログラム命令がコンピュータに実行される場合、前記コンピュータに以上の各態様に記載の方法を実行させる。
【図面の簡単な説明】
【0011】
図1】本発明の一実施例におけるターボ積符号の復号方法のフローチャートである。
図2】本発明の一実施例におけるターボ積符号の復号装置の構造概略図である。
図3】本発明の一実施例におけるデコーダーの構造概略図である。
図4】本発明の1つの選択可能な具体的実施例におけるターボ積符号の復号方法のフローチャートである。
図5】本発明の1つの例示的な具体的実施例における反復パラメータに基づいて受信コードワードに対して順方向反復復号を実行し、パラメータ記録を実行するフローチャートである。
図6】本発明のさらなる例示的な具体的実施例における反復パラメータに基づいて受信コードワードに対して順方向反復復号を実行し、パラメータ記録を実行するフローチャートである。
図7】本発明の1つの例示的な具体的な実施例における反転された受信コードワードに対して逆方向反復復号を実行するフローチャートである。
【発明を実施するための形態】
【0012】
以下に明細書の図面及び具体的な実施例を組み合わせて本発明の技術的解決策をさらに詳しく説明する。別段の定義がない限り、本明細書で使用されるすべての技術用語及び科学用語は、本発明の技術分野の当業者によって一般的に理解される意味と同じである。ここで、本発明の明細書で使用される用語は、具体的な実施例を説明するためのものだけであり、本発明を限定することを意図しない。ここで使用される用語「及び/又は」は、1つ又は複数の関連する、示される項目のいずれか1つ又はそれらの組み合わせを含む。
【0013】
図1を参照すると、本発明の実施例に係るターボ積符号の復号方法は、ステップS101~S103を含む。ステップS101において、ターボ積符号の受信コードワードを取得し、前記受信コードワードに対して、設定された第1の反復回数の反復復号を実行する。
【0014】
本実施例では、前記ターボ積符号の復号方法がデコーダーに応用されることは例として挙げられる。エンコーダーは、ブロックコードのコードパターンに従ってターボ積符号を構成し、次にターボ積符号を行ごとにビット単位で直列に送信し、デコーダーは、受信されたシリアルビットシーケンスを前記ターボ積符号の次元と同じアレイに変換し、それによってターボ積符号の受信コードワードを取得する。前記受信コードワードは、ターボ積符号のすべての受信コードワードであり、前記受信コードワードは、行の形態で存在しているコードワードと列の形態で存在しているコードワードとを含む。前記第1の反復回数は、実際のニーズに応じて設定されてもよく、例えば3回又は4回などに設定されてもよい。前記受信コードワードに対して、設定された第1の反復回数の反復復号を実行する前記ステップは、前記受信コードワードに対して、設定された行及び列反復順序の第1の反復回数の反復復号を実行するステップを含むことが理解できる。
【0015】
前記行及び列反復順序は、行列反復順序であってもよいし、列行反復順序であってもよい。前記受信コードワードに対する1回の行反復は、1回の反復と記され、同様に、前記受信コードワードに対する1回の列反復も1回の反復と記される。前記受信コードワードに対して、設定された第1の反復回数の反復復号を実行するプロセスでは、前記受信コードワードに対して行反復を実行する回数と前記受信コードワードに対して列反復を実行する回数は、同じである可能性があり、異なる可能性もある。本実施例では、前記受信コードワードに対して行列反復順序の第1の反復回数の反復復号を実行する。
【0016】
ステップS102において、第1の復号ルールに従って前記第1の反復回数の反復復号の復号結果を判断し、復号結果を表すための復号識別子を取得する。具体的には、毎回の行反復復号及び列反復復号プロセスでは、第1の復号ルールに従って、反復復号により得られた復号結果を判断し、それによって復号結果を表すための復号識別子を取得する。この復号結果は、復号後の前記受信コードワードと対応する誤り訂正状況などの情報であってもよい。
【0017】
1つの選択可能な実施例では、前記受信コードワードに対して、設定された第1の反復回数の反復復号を実行する前記ステップの前に、前記ターボ積符号を構成するブロックコードのコードパターンを取得するステップであって、前記コードパターンには誤り訂正可能なシンボルの最大数が含まれているステップをさらに含み、第1の復号ルールに従って前記第1の反復回数の反復復号の復号結果を判断し、復号結果を表すための復号識別子を取得する前記ステップは、第1の復号ルールに従って、前記第1の反復回数の反復復号の復号結果を判断するステップであって、前記第1の復号ルールは、前記コードパターンに応じて、前記受信コードワードが短縮コードであり、かつ復号後の前記受信コードワードの補足位置でのシンボルがすべて0ではないすべてが0であることでないと判断すると、前記受信コードワードの復号が失敗したと判断すること、前記コードパターンに応じて、前記受信コードワードが拡張コードであり、かつ前記受信コードワードの元のチェックビットが復号後の前記受信コードワードのチェックビットと異なると判断すると、前記受信コードワードの復号が失敗したと判断すること、復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、現在の反復復号回数が設定された反復復号回数閾値に等しく、かつ前回の反復復号プロセスで復号が失敗したコードワードの数が設定された閾値未満であると判断し、又は復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、かつ前記現在の反復復号回数が前記反復復号回数閾値に等しくないと判断すると、前記受信コードワードの復号が失敗したと判断することのうちの少なくとも1つを含むステップと、判断結果に基づいて前記受信コードワードに対応する復号結果の復号識別子を確定するステップと、を含む。
【0018】
ここで、デコーダーは、エンコーダーから送信された、前記ターボ積符号を構成するブロックコードのコードパターンを受信し、前記ターボ積符号が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操作により取得されたチェック行を、前記ターボ積符号に追加することを示し、つまり、前記受信コードワードの最後のシンボルは、チェックビットであり、元のチェックビットと呼ばれ、即ち前記受信コードワードは、拡張コードである。
【0019】
第1の復号ルールは、主に、コードパターンが短縮コードであること、コードパターンが拡張コードであること、及び誤り訂正可能なシンボルの数という3つの方面に基づき、第1の反復回数の反復復号の復号結果を判断し、復号識別子を取得することを含む。例えば、復号後の前記受信コードワードの補足位置でのシンボルが、すべてが0であることでないと、前記受信コードワードの補足位置でのシンボルが誤って復号されたことを示し、前記受信コードワードの復号は失敗した。
【0020】
また、例えば、コードパターンが拡張コードである前記受信コードワードを復号する場合、前記受信コードワードの元のチェックビットは復号されない。前記受信コードワードが復号された後、復号後の前記受信コードワードのすべてのシンボルに対してXOR操作を実行し、復号後の前記受信コードワードのチェックビットを取得する。前記受信コードワードに対応する前記元のチェックビットが前記ターボ積符号のチェックビットと異なると、前記受信コードワードの復号プロセスで誤りが発生したことを示し、前記受信コードワードの復号が失敗したと判断する。
【0021】
また、例えば、復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、現在の反復復号回数が設定された反復復号回数閾値に等しく、かつ前回の反復復号プロセスで復号が失敗したコードワードの数が設定された閾値よりも小さいと判断すると、前記受信コードワードの復号が失敗したと判断し、これにより、より多くの誤りの増加を防止する。
【0022】
復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、現在の反復復号回数が設定された反復復号回数閾値に等しく、かつ前回の反復復号プロセスで復号が失敗したコードワードの数が設定された閾値以上であると判断すると、前記受信コードワードの復号が成功したと判断し、これにより、復号の柔軟性が向上する。復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、かつ前記現在の反復復号回数が前記反復復号回数閾値に等しくないと判断すると、前記受信コードワードの復号が失敗したと判断し、これにより、より多くの誤りの増加を防止する。
【0023】
ここで、前記受信コードワードの誤り訂正可能なシンボルの最大数は、前記受信コードワードが属するブロックコードの誤り訂正可能なシンボルの最大数である。前記前回の反復復号プロセスは、前記第1の反復回数に基づいて確定された現在の反復復号の前の反復復号プロセスである。現在の反復復号が行反復復号であると、前回の反復復号は列反復復号である。現在の反復復号が列反復復号であると、前回の反復復号は行反復復号である。前記符号化ユニットは、列である可能性があり、行である可能性もある。
【0024】
それに応じて、前記前回の反復復号が行反復復号であると、前記前回の反復復号プロセスで復号が失敗したコードワードの数が設定された閾値よりも小さいことは、前記前回の反復復号プロセスで復号が失敗した行の数が第1の設定閾値よりも小さいことであり、前記前回の反復復号が列反復復号であると、前記前回の反復復号プロセスで復号が失敗したコードワードの数が設定された閾値よりも小さいことは、前回の反復復号プロセスで復号が失敗した列の数が第2の設定された閾値よりも小さいことである。
【0025】
前記第1の設定閾値及び前記第2の設定閾値は、実際のニーズに応じて設定されてもよく、例えば、前記第1の設定閾値は、6に設定されてもよく、前記第2の設定閾値は、7に設定されてもよい。前記反復復号回数閾値は、前記第1の反復回数よりも小さく、実際のニーズに応じて設定されてもよく、例えば前記反復復号回数閾値は、3回目に設定されてもよい。
【0026】
ここで、前記デコーダーは、判断結果に基づいて前記受信コードワードに対応する復号結果の復号識別子を確定する場合、前記受信コードワードに対して反復復号を実行した後の復号結果に基づいて、取得された結果を判断し、前記受信コードワードに対応する復号結果の復号識別子を記録することができる。前記復号識別子は、前記受信コードワードの復号が成功したか否かを識別するために使用される。例えば、判断結果に基づいて、前記受信コードワードの復号が成功したと判断すると、前記受信コードワードに対応する復号結果を1でマーキングすることができ、復号が成功したコードワードの数に1を加算することができる。判断結果に基づいて前記受信コードワードの復号が失敗したと判断すると、前記受信コードワードに対応する復号結果を0でマーキングすることができ、復号が失敗したコードワードの数に1を加算することができる。当然のことながら、ターボ積復号に対する前記受信コードワードの所在する行番号又は列番号を記録し、対応する前記行番号又は列番号を復号識別子にバインドすることもできる。
【0027】
このように、第1の復号ルールにより受信コードワードに対して第1の反復回数の反復復号の復号結果を判断し、判断結果に基づいて前記受信コードワードに対応する復号結果の復号識別子を確定し、それによって前記復号識別子に基づいて後の誤り訂正処理のための参照を提供して、誤り訂正の精度を向上させる。
【0028】
1つの選択可能な実施例では、判断結果に基づいて前記受信コードワードに対応する復号結果の復号識別子を確定する前記ステップの前に、前記ターボ積符号のサイズに等しい復号識別子マトリックスを初期化するステップをさらに含み、判断結果に基づいて前記受信コードワードに対応する復号結果の復号識別子を確定する前記ステップは、判断結果に基づいて前記受信コードワードの各シンボルの前記復号識別子マトリックスにおける対応する位置での復号識別子を更新するステップを含む。
【0029】
ここで、復号識別子マトリックスを初期化する前記ステップは、前記復号識別子マトリックスの各要素に対応する値をすべて0に設定し、判定結果に基づいて1つのコードワードの復号が成功したと判断する場合、前記復号識別子マトリックスにおける対応する位置でのこのコードワードの値を1に設定し、即ち前記復号識別子マトリックスにおける対応する位置でのこのコードワードの各シンボルの値をすべて1に設定するステップであってもよい。
【0030】
前記ターボ積符号のサイズに等しい復号識別子マトリックスを設定することにより、前記ターボ積符号の各シンボルに位置を割り当て、対応する復号結果を記録する。このように、反復プロセスでの各シンボルの復号結果を知ることができるため、分析により、復号プロセスでデッドロック又はデッドロックのような構造が現れるか否かを知ることができ、後の誤り訂正処理のための参照を提供する。
【0031】
1つの選択可能な実施例では、前記第1の復号ルールは、前記受信コードワードのシンボルに対して誤り訂正を実行し、かつ前記復号識別子マトリックスにおける前記シンボルに対応する復号識別子が、前記シンボルが正しく復号されたことを表すと、前記シンボルの復号が失敗したと判断することをさらに含む。
【0032】
例えば、前記ターボ積符号の1行目のシンボルで構成された受信コードワードを復号し、かつ復号が成功したと仮定し、このときに前記復号識別子マトリックスにおける1番目のシンボルに対応する復号識別子は1に設定され、前記ターボ積符号の1列番目のシンボルで構成された受信コードワードを復号し、かつ前記1番目のシンボルに対して誤り訂正を行ったと判断し、このときに前記1番目のシンボルの復号が失敗したと判断し、前記復号識別子マトリックスにおける1番目のシンボルに対応する復号識別子を0に更新する。
【0033】
このように、シンボルの履歴復号結果により、シンボルの現在の復号結果を確定することにより、他のシンボルの影響によるシンボルの繰り返し変更の問題が解決され、復号結果の精度が向上する。
【0034】
ステップS103において、前記復号識別子に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行する。
【0035】
具体的には、ターボ積符号の受信コードワードに対して設定された第1の反復回数の反復復号を実行した後に取得された、復号結果を表すための復号識別子に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行する。
【0036】
ここで、前記復号識別子が、設定された第1の反復回数の反復復号を実行するプロセスでの復号状況を表すことができるため、前記復号識別子に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号にデッドロック又はデッドロックのような構造が存在しているか否かなどの状況を知ることができ、前記第1の反復回数の反復復号が実行された前記ターボ積符号にデッドロック又はデッドロックのような構造が存在している場合、前記復号識別子に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行し、前記ターボ積符号のデッドロック又はデッドロックのような構造を破って、エラーフロアを回避する。
【0037】
上述したように、上記の実施例によって提供されるターボ積符号の復号方法では、第1の復号ルールに従って前記第1の反復回数の反復復号の復号結果を判断して復号識別子を取得し、復号識別子により第1の反復回数の反復復号プロセスでの識別シンボルを記録することができ、それによって反復復号により取得された復号識別子に応じて反復復号後の前記ターボ積符号に対して誤り訂正処理を実行することにより、前記ターボ積符号のデッドロック又はデッドロックのような構造を破って、エラーフロアを効果的に回避する。
【0038】
1つの選択可能な実施例では、前記復号識別子に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行する前記ステップは、前記復号識別子に応じて、前記第1の反復回数に対応する最後の行反復復号を実行するときに復号が失敗した行数と最後の列反復復号を実行するときに復号が失敗した列数とを取得するステップと、前記行数が設定された第1の数閾値以上であり、かつ前記列数が設定された第2の数閾値以上であると判断する場合、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したコードワードに対して反転操作を実行するステップと、を含む。
【0039】
例えば、前記第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に設定されてもよい。
【0040】
前記行数が設定された第1の数閾値以上であり、かつ前記列数が設定された第2の数閾値以上であると判断する場合、前記第1の反復回数の反復復号が実行された前記ターボ積符号にデッドロック又はデッドロックのような構造が現れることを示すことが理解できる。
【0041】
前記第1の反復回数の反復復号が実行されたターボ積符号のうち、復号が失敗したコードワードに対して反転操作を実行する前記ステップは、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したすべてのコードワードに対して反転操作を実行するステップであってもよいし、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したコードワードに対して反転操作を実行するステップであってもよく、それによってデッドロック又はデッドロックのような構造を破る。
【0042】
例えば、前記第1の反復回数の反復復号が実行されたターボ積符号のうち、復号が失敗したコードワードに対して反転操作を実行する前記ステップは、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗した前のt1+1行及び前のt2+1列のシンボルに対して反転操作を実行し、即ちシンボル1を1から0にし、0から1にするステップであってもよい。
【0043】
このように、前記第1の反復回数に対応する最後の行反復復号を実行するときに復号が失敗した行数と最後の列反復復号を実行するときに復号が失敗した列数がそれぞれ対応する数閾値より大きいと判断する場合、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したコードワードに対して反転操作を実行し、それによってデッドロック又はデッドロックのような構造をさらに正確に破り、復号の精度を向上させる。
【0044】
1つの選択可能な実施例では、前記復号識別子に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行する前記ステップは、前記復号識別子マトリックスに従って、復号が失敗したシンボルの数を取得するステップと、前記数と設定された第3の数閾値との間の関係に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したシンボルに対して反転操作を実行するステップと、を含む。
【0045】
ここで、前記復号識別子マトリックスに各シンボルに対応する復号結果が記録されているため、前記復号識別子マトリックスに従って、復号が失敗したシンボルの数を取得することができる。前記第3の数閾値は、実際のニーズに応じて設定されてもよく、例えば10つ又は16つなどに設定されてもよい。前記数と設定された第3の数閾値との間の関係に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したコードワードに対して反転操作を実行する前記ステップは、前記数が設定された第3の数閾値より大きい場合、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したコードワードの一部に対して反転操作を実行し、前記数が設定された第3の数閾値以下である場合、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したすべてのコードワードに対して反転操作を実行するステップであってもよい。
【0046】
例えば、前記復号識別子マトリックスにおける0の数、即ち復号が失敗したシンボルの数を取得し、かつ前記復号識別子マトリックスにおける0の数が設定された第3の数閾値より大きいと判断する場合、前記第1の反復回数の反復復号が実行されたターボ積符号のうち、復号が失敗したコードワードの一部に対して反転操作を実行する前記ステップは、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗した前の(t1+1)*(t2+1)つのシンボルに対して反転操作を実行するステップであってもよい。前記復号が失敗したシンボルの数が設定された第3の数閾値より大きいと判断する場合、前記第1の反復回数の反復復号が実行された前記ターボ積符号にデッドロック又はデッドロックのような構造が現れる可能性があることを示すことが理解できる。
【0047】
このように、前記復号識別子マトリックスに従って、復号が失敗したシンボルの数を取得し、前記数と設定された第3の数閾値との間の関係に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したシンボルに対して反転操作を実行し、それによってデッドロック又はデッドロックのような構造をさらに正確に破り、復号の精度を向上させる。
【0048】
1つの選択可能な実施例では、前記復号識別子に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行する前記ステップの後、誤り訂正処理が実行された前記ターボ積符号に対して、設定された第2の反復回数の反復復号を実行するステップと、第2の復号ルールに従って前記第2の反復回数の反復復号の復号結果を判断し、ターゲットターボ積符号を取得するステップと、をさらに含む。
【0049】
誤り訂正処理が実行された前記ターボ積符号に対して、設定された第2の反復回数の反復復号を実行する前記ステップは、誤り訂正処理が実行された前記ターボ積符号に対して、設定された行及び列反復順序の第1の反復回数の反復復号を実行するステップを含む。前記行及び列反復順序は、行列反復順序であってもよいし、列行反復順序であってもよい。前記第1の反復回数が偶数である場合、前記受信コードワードに対して先に行反復復号を実行すると、誤り訂正処理が実行された前記ターボ積符号に対しても先に行反復復号を実行し、前記受信コードワードに対して先に列反復復号を実行すると、誤り訂正処理が実行された前記ターボ積符号に対しても先に列反復復号を実行する。
【0050】
前記第1の反復回数が奇数である場合、前記受信コードワードに対して先に行反復復号を実行すると、誤り訂正処理が実行された前記ターボ積符号に対して先に行列反復復号を実行し、前記受信コードワードに対して先に列反復復号を実行すると、誤り訂正処理が実行された前記ターボ積符号に対して先に行反復復号を実行する。ここで、前記第2の反復回数は、実際のニーズに応じて設定されてもよく、例えば3回又は4回などに設定されてもよい。通常、前記第2の反復回数は、前記第1の反復回数よりも小さく設定されてもよい。前記第2の復号判定ルールは、実際のニーズに応じて設定されてもよく、例えば、前記第2の復号判定ルールは、前記第1の復号判定ルールの一部であってもよい。
【0051】
このように、誤り訂正処理が実行された前記ターボ積符号に対して、設定された第2の反復回数の反復復号を実行することにより、誤り訂正処理後の前記ターボ積符号内の存在する可能性がある誤りシンボルに対して誤り訂正を実行し、復号の精度が向上する。
【0052】
1つの選択可能な実施例では、第2の復号判定ルールに従って前記第2の反復回数の反復復号の復号結果を判断する前記ステップは、第2の復号判定ルールに従って前記第2の反復回数の反復復号の復号結果を判断するステップであって、前記第2の復号ルールが、前記コードパターンに応じて、受信コードワードが短縮コードであり、かつ復号後の前記受信コードワードの補足位置でのシンボルがすべて0ではないすべてが0であることでないと判断すると、前記受信コードワードの復号が失敗したと判断すること、前記コードパターンに応じて、前記受信コードワードが拡張コードであり、かつ前記受信コードワードの元のチェックビットが復号後の前記受信コードワードのチェックビットと異なると判断すると、前記受信コードワードの復号が失敗したと判断すること、復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しいと判断すると、前記受信コードワードの復号が成功したと判断することのうちの少なくとも1つを含むステップを含む。
【0053】
ここで、前記受信コードワードは、誤り訂正処理が実行されたターボ積符号のすべてのコードワードである。
【0054】
このように、第2の復号ルールにより受信コードワードに対して第2の反復回数の反復復号の復号結果を判断し、復号の精度を向上させる。
【0055】
上記の方法を実現するために、本発明の実施例に対応してターボ積符号の復号装置を提供する。図2に示すように、前記ターボ積符号の復号装置は、ターボ積符号の受信コードワードを取得するように構成される取得モジュール10と、前記受信コードワードに対して、設定された第1の反復回数の反復復号を実行し、第1の復号ルールに従って前記第1の反復回数の反復復号の復号結果を判断し、復号結果を表すための復号識別子を取得する順方向反復復号モジュール20と、前記復号識別子に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行するように構成されるデッドロック訂正モジュール30と、を含む。
【0056】
上述したように、上記の実施例によって提供されるターボ積符号の復号装置では、第1の復号ルールに従って前記第1の反復回数の反復復号の復号結果を判断して復号識別子を取得し、復号識別子により第1の反復回数の反復復号プロセスでの識別シンボルを記録することができ、それによって反復復号により取得された復号識別子に応じて、反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行することにより、前記ターボ積符号のデッドロック又はデッドロックのような構造を破って、ビットエラーフロアを効果的に回避することができる。
【0057】
1つの選択可能な実施例では、前記取得モジュール10は、さらに前記ターボ積符号を構成するブロックコードのコードパターンを取得するように構成され、前記コードパターンには誤り訂正可能なシンボルの最大数が含まれ、前記順方向反復復号モジュール20は、具体的には、第1の復号ルールに従って前記第1の反復回数の反復復号の復号結果を判断し、前記第1の復号ルールが、前記コードパターンに応じて、前記受信コードワードが短縮コードであり、かつ復号後の前記受信コードワードの補足位置でのシンボルがすべて0ではないすべてが0であることでないと判断すると、前記受信コードワードの復号が失敗したと判断すること、前記コードパターンに応じて、前記受信コードワードが拡張コードであり、かつ前記受信コードワードの元のチェックビットが復号後の前記受信コードワードのチェックビットと異なると判断すると、前記受信コードワードの復号が失敗したと判断すること、復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、現在の反復復号回数が設定された反復復号回数閾値に等しく、かつ前回の反復復号プロセスで復号が失敗したコードワードの数が設定された閾値未満であると判断し、又は復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、かつ前記現在の反復復号回数が前記反復復号回数閾値に等しくないと判断すると、前記受信コードワードの復号が失敗したと判断することのうちの少なくとも1つを含み、判断結果に基づいて前記受信コードワードに対応する復号結果の復号識別子を確定するように構成される。
【0058】
このように、設定された第1の復号ルールにより受信コードワードに対して第1の反復回数の反復復号の復号結果を判断し、判断結果に基づいて前記受信コードワードに対応する復号結果の復号識別子を確定し、それによって前記復号識別子に基づいて後の誤り訂正処理のための参照を提供して、誤り訂正の精度を向上させる。
【0059】
1つの選択可能な実施例では、前記順方向反復復号モジュール20は、具体的には、前記ターボ積符号のサイズに等しい復号識別子マトリックスを初期化し、判断結果に基づいて前記受信コードワードの各シンボルの前記復号識別子マトリックスにおける対応する位置での復号識別子を更新するように構成される。
【0060】
このように、反復プロセスでの各シンボルの復号結果を知ることができるため、分析により、復号プロセスにデッドロック又はデッドロックのような構造が現れるか否かを知ることができ、後の誤り訂正処理のための参照を提供する。
【0061】
1つの選択可能な実施例では、前記第1の復号ルールは、前記受信コードワードのシンボルに対して誤り訂正を実行し、かつ前記復号識別子マトリックスにおける前記シンボルに対応する復号識別子が、前記シンボルが正しく復号されたことを表すと、前記シンボルの復号が失敗したと判断することをさらに含む。
【0062】
このように、シンボルの履歴復号結果により、シンボルの現在の復号結果を確定し、それによって復号結果の精度が向上する。
【0063】
1つの選択可能な実施例では、前記デッドロック訂正モジュール30は、具体的には、前記復号識別子に応じて、前記第1の反復回数に対応する最後の行反復復号を実行するときに復号が失敗した行数と最後の列反復復号を実行するときに復号が失敗した列数とを取得し、前記行数が設定された第1の数閾値以上であり、かつ前記列数が設定された第2の数閾値以上であると判断する場合、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したコードワードに対して反転操作を実行するように構成される。
【0064】
このように、前記第1の反復回数に対応する最後の反復復号を実行するときに復号が失敗した行数及び列数がそれぞれ対応する数閾値より大きいと判断する場合、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したコードワードに対して反転操作を実行し、それによってデッドロック又はデッドロックのような構造をさらに正確に破り、復号の精度が向上する。
【0065】
1つの選択可能な実施例では、前記デッドロック訂正モジュール30は、具体的には、前記復号識別子マトリックスに従って、復号が失敗したシンボルの数を取得し、前記数と設定された第3の数閾値との間の関係に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したシンボルに対して反転操作を実行するように構成される。
【0066】
このように、前記復号識別子マトリックスに従って、復号が失敗したシンボルの数を取得し、前記数と設定された第3の数閾値との間の関係に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したシンボルに対して反転操作を実行する。
【0067】
1つの選択可能な実施例では、前記ターボ積符号の復号装置は、誤り訂正処理が実行された前記ターボ積符号に対して、設定された第2の反復回数の反復復号を実行し、第2の復号判定ルールに従って前記第2の反復回数の反復復号の復号結果を判断し、ターゲットターボ積符号を取得するように構成される逆方向反復復号モジュール40をさらに含む。
【0068】
このように、誤り訂正処理が実行された前記ターボ積符号に対して、設定された第2の反復回数の反復復号を実行することにより、誤り訂正処理が実行された前記ターボ積符号内の存在する可能性がある誤りシンボルに対して誤り訂正を実行し、復号の精度が向上する。
【0069】
1つの選択可能な実施例では、前記逆方向反復復号モジュール40は、具体的には、第2の復号判定ルールに従って前記第2の反復回数の反復復号の復号結果を判断するように構成され、前記第2の復号ルールは、前記コードパターンに応じて、受信コードワードが短縮コードであり、かつ復号後の前記受信コードワードの補足位置でのシンボルがすべて0ではないすべてが0であることでないと判断すると、前記受信コードワードの復号が失敗したと判断すること、前記コードパターンに応じて、前記受信コードワードが拡張コードであり、かつ前記受信コードワードの元のチェックビットが復号後の前記受信コードワードのチェックビットと異なると判断すると、前記受信コードワードの復号が失敗したと判断すること、復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しいと判断すると、前記受信コードワードの復号が成功したと判断することのうちの少なくとも1つを含む。
【0070】
このように、第2の復号ルールにより受信コードワードに対して第2の反復回数の反復復号の復号結果を判断し、復号の精度を向上させる。
【0071】
1つの選択可能な実施例では、前記デコーダーは、前記ターゲットターボ積符号を出力するように構成される復号結果出力モジュール50をさらに含む。
【0072】
上記の実施例によって提供されるターボ積符号の復号装置は、ターボ積符号の復号方法を実現するときに、上記の各プログラムモジュールの区分のみを例として説明するが、実際の応用において、上記の処理割り当ては、ニーズに応じて異なるプログラムモジュールによって完了されてもよく、即ち上記の処理のすべて又は一部は、ターボ積符号の復号装置の内部構造を異なるプログラムモジュールに分けて完了されてもよい。
【0073】
なお、上記実施例によって提供されるターボ積符号の復号装置は、対応するターボ積符号の復号方法の実施例と同じ概念に属し、その具体的な実現プロセスについては、方法の実施例を参照するため、ここでは説明を省略する。
【0074】
別の実施例では、本発明の実施例は、デコーダーをさらに提供する。図3に示すように、このデコーダーは、プロセッサ310と、プロセッサ310で実行可能なコンピュータプログラムを記憶するように構成されるメモリ311とを含み、ここで、図3に示すプロセッサ310は、プロセッサ310の数が1つであることを指すためのものではなく、他のデバイスに対するプロセッサ310の位置関係を指すためのものだけであり、実際の応用では、プロセッサ310の数は、1つ又は複数であってもよく、同様に、図3に示すメモリ311も同様の意味を有し、即ち他のデバイスに対するメモリ311の位置関係を指すためのものだけであり、実際の応用では、メモリ311の数は、1つ又は複数であってもよい。
【0075】
前記プロセッサ310は、前記コンピュータプログラムを実行するとき、ターボ積符号の受信コードワードを取得し、前記受信コードワードに対して、設定された第1の反復回数の反復復号を実行するステップと、第1の復号ルールに従って前記第1の反復回数の反復復号の復号結果を判断し、復号結果を表すための復号識別子を取得するステップと、前記復号識別子に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行するステップとを、実行するように構成される。
【0076】
1つの選択可能な実施例では、前記プロセッサ310は、さらに、前記コンピュータプログラムを実行するとき、前記ターボ積符号を構成するブロックコードのコードパターンを取得するステップであって、前記コードパターンには誤り訂正可能なシンボルの最大数が含まれているステップと、第1の復号ルールに従って前記第1の反復回数の反復復号の復号結果を判断するステップであって、前記第1の復号ルールが、前記コードパターンに応じて、前記受信コードワードが短縮コードであり、かつ復号後の前記受信コードワードの補足位置でのシンボルがすべて0ではないすべてが0であることでないと判断すると、前記受信コードワードの復号が失敗したと判断すること、前記コードパターンに応じて、前記受信コードワードが拡張コードであり、かつ前記受信コードワードの元のチェックビットが復号後の前記受信コードワードのチェックビットと異なると判断すると、前記受信コードワードの復号が失敗したと判断すること、復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、現在の反復復号回数が設定された反復復号回数閾値に等しく、かつ前回の反復復号プロセスで復号が失敗したコードワードの数が設定された閾値未満であると判断し、又は復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、かつ前記現在の反復復号回数が前記反復復号回数閾値に等しくないと判断すると、前記受信コードワードの復号が失敗したと判断することのうちの少なくとも1つを含むステップと、判断結果に基づいて前記受信コードワードに対応する復号結果の復号識別子を確定するステップと、を実行するように構成される。
【0077】
1つの選択可能な実施例では、前記プロセッサ310はさらに、前記コンピュータプログラムを実行するとき、前記ターボ積符号のサイズに等しい復号識別子マトリックスを初期化するステップと、判断結果に基づいて前記受信コードワードの各シンボルの前記復号識別子マトリックスにおける対応する位置での復号識別子を更新するステップを実行するように構成される。
【0078】
1つの選択可能な実施例では、前記プロセッサ310はさらに、前記コンピュータプログラムを実行するとき、前記復号識別子に応じて、前記第1の反復回数に対応する最後の行反復復号を実行するときに復号が失敗した行数と最後の列反復復号を実行するときに復号が失敗した列数とを取得するステップと、前記行数が設定された第1の数閾値以上であり、かつ前記列数が設定された第2の数閾値以上であると判断する場合、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したコードワードに対して反転操作を実行するステップと、を実行するように構成される。
【0079】
1つの選択可能な実施例では、前記プロセッサ310は、さらに、前記コンピュータプログラムを実行するとき、前記復号識別子マトリックスに従って、復号が失敗したシンボルの数を取得するステップと、前記数と設定された第3の数閾値との間の関係に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したシンボルに対して反転操作を実行するステップとを、実行するように構成される。
【0080】
1つの選択可能な実施例では、前記プロセッサ310は、さらに、前記コンピュータプログラムを実行するとき、誤り訂正処理が実行された前記ターボ積符号に対して、設定された第2の反復回数の反復復号を実行するステップと、設定された第2の復号判定ルールに従って前記第2の反復回数の反復復号の復号結果を判断し、ターゲットターボ積符号を取得するステップと、を実行するように構成される。
【0081】
1つの選択可能な実施例では、前記プロセッサ310はさらに、前記コンピュータプログラムを実行するとき、第2の復号判定ルールに従って前記第2の反復回数の反復復号の復号結果を判断するステップであって、前記第2の復号ルールが、前記コードパターンに応じて、受信コードワードが短縮コードであり、かつ復号後の前記受信コードワードの補足位置でのシンボルがすべて0ではないすべてが0であることでないと判断すると、前記受信コードワードの復号が失敗したと判断すること、前記コードパターンに応じて、前記受信コードワードが拡張コードであり、かつ前記受信コードワードの元のチェックビットが復号後の前記受信コードワードのチェックビットと異なると判断すると、前記受信コードワードの復号が失敗したと判断すること、復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しいと判断すると、前記受信コードワードの復号が成功したと判断することのうちの少なくとも1つを含むステップを実行するように構成される。
【0082】
このデコーダーは、少なくとも1つの少なくとも1つのネットワークインターフェース312をさらに含む。このデコーダーでの各部材は、バスシステム313を介して結合される。バスシステム313はこれらの部材間の接続通信を実現するために使用されることが理解できる。バスシステム313は、データバスに加えて、電源バス、制御バスと状態信号バスを含む。しかしながら、説明を明確にするために、図3では様々なバスシステムは、バスシステム313としてマーキングされる。
【0083】
ここで、メモリ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)であってもよく、磁気表面メモリは、磁気ディスクメモリ又は磁気テープメモリであってもよい。
【0084】
揮発性記憶装置は、外部キャッシュメモリとして機能するランダムアクセスメモリ(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)であってもよい。
【0085】
本発明の実施例に記載されるメモリ311は、これらと任意の他の適切なタイプのメモリを含むことを図るがこれらに限定されない。
【0086】
本発明の実施例におけるメモリ311は、様々なタイプのデータを記憶してこのデコーダーの動作をサポートするように構成される。これらのデータの例は、オペレーティングシステムやアプリケーションなどのこのデコーダーで動作するためのコンピュータプログラム、連絡先データ、電話帳データ、メッセージ、ピクチャー、ビデオなどを含む。ここで、オペレーティングシステムは、様々なシステムプログラム、例えばフレームワークレイヤー、コアライブラリレイヤー、ドライバーレイヤーなどを含み、様々な基本サービスの実現、及びハードウェアに基づくタスクの処理に使用される。アプリケーションプログラムは、例えばメディアプレーヤー(Media Player)、ブラウザ(Browser)などの様々なアプリケーションプログラムを含むことができ、様々なアプリケーションサービスを実現するために使用される。
【0087】
ここで、本発明の実施例の方法を実現するためのプログラムは、アプリケーションプログラムに含まれてもよい。
【0088】
本実施例はさらにコンピュータ記憶媒体を提供する。前記コンピュータ記憶媒体にはコンピュータプログラムが記憶され、前記コンピュータ記憶媒体は、磁気ランダムアクセスメモリ(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つの又は任意の組み合わせを含む様々なデバイスであってもよい。
【0089】
コンピュータ記憶媒体であって、前記コンピュータ記憶媒体にはコンピュータプログラムが記憶され、前記コンピュータプログラムがプロセッサに実行されるとき、ターボ積符号の受信コードワードを取得し、前記受信コードワードに対して、設定された第1の反復回数の反復復号を実行するステップと、第1の復号ルールに従って前記第1の反復回数の反復復号の復号結果を判断し、復号結果を表すための復号識別子を取得するステップと、前記復号識別子に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行するステップと、を実行する。
【0090】
1つの選択可能な実施例では、前記コンピュータプログラムがプロセッサに実行されるとき、前記ターボ積符号を構成するブロックコードのコードパターンを取得するステップであって、前記コードパターンには誤り訂正可能なシンボルの最大数が含まれるステップと、第1の復号ルールに従って前記第1の反復回数の反復復号の復号結果を判断するステップであって、前記第1の復号ルールが、前記コードパターンに応じて、前記受信コードワードが短縮コードであり、かつ復号後の前記受信コードワードの補足位置でのシンボルがすべて0ではないすべてが0であることでないと判断すると、前記受信コードワードの復号が失敗したと判断すること、前記コードパターンに応じて、前記受信コードワードが拡張コードであり、かつ前記受信コードワードの元のチェックビットが復号後の前記受信コードワードのチェックビットと異なると判断すると、前記受信コードワードの復号が失敗したと判断すること、復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、現在の反復復号回数が設定された反復復号回数閾値に等しく、かつ前回の反復復号プロセスで復号が失敗したコードワードの数が設定された閾値未満であると判断し、又は復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、かつ前記現在の反復復号回数が前記反復復号回数閾値に等しくないと判断すると、前記受信コードワードの復号が失敗したと判断することのうちの少なくとも1つを含むステップと、判断結果に基づいて前記受信コードワードに対応する復号結果の復号識別子を確定するステップをさらに実行する。
【0091】
1つの選択可能な実施例では、前記コンピュータプログラムがプロセッサに実行されるとき、前記ターボ積符号のサイズに等しい復号識別子マトリックスを初期化するステップと、判断結果に基づいて前記受信コードワードの各シンボルの前記復号識別子マトリックスにおける対応する位置での復号識別子を更新するステップとをさらに実行する。
【0092】
1つの選択可能な実施例では、前記コンピュータプログラムがプロセッサに実行されるとき、前記復号識別子に応じて、前記第1の反復回数に対応する最後の行反復復号を実行するときに復号が失敗した行数と最後の列反復復号を実行するときに復号が失敗した列数とを取得するステップと、前記行数が設定された第1の数閾値以上であり、かつ前記列数が設定された第2の数閾値以上であると判断する場合、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したコードワードに対して反転操作を実行するステップと、をさらに実行する。
【0093】
1つの選択可能な実施例では、前記コンピュータプログラムがプロセッサに実行されるとき、前記復号識別子マトリックスに従って、復号が失敗したシンボルの数を取得するステップと、前記数と設定された第3の数閾値との間の関係に応じて、前記第1の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したシンボルに対して反転操作を実行するステップを、さらに実行する。
【0094】
1つの選択可能な実施例では、前記コンピュータプログラムがプロセッサに実行されるとき、誤り訂正処理が実行された前記ターボ積符号に対して、設定された第2の反復回数の反復復号を実行するステップと、第2の復号判定ルールに従って前記第2の反復回数の反復復号の復号結果を判断し、ターゲットターボ積符号を取得するステップと、をさらに実行する。
【0095】
1つの選択可能な実施例では、前記コンピュータプログラムがプロセッサに実行されるとき、第2の復号判定ルールに従って前記第2の反復回数の反復復号の復号結果を判断するステップであって、前記第2の復号ルールが、前記コードパターンに応じて、受信コードワードが短縮コードであり、かつ復号後の前記受信コードワードの補足位置でのシンボルがすべて0ではないすべてが0であることでないと判断すると、前記受信コードワードの復号が失敗したと判断すること、前記コードパターンに応じて、前記受信コードワードが拡張コードであり、かつ前記受信コードワードの元のチェックビットが復号後の前記受信コードワードのチェックビットと異なると判断すると、前記受信コードワードの復号が失敗したと判断すること、復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しいと判断すると、前記受信コードワードの復号が成功したと判断することのうちの少なくとも1つを含むステップを、さらに実行する。
【0096】
以下に本発明の実施例を具体的な例でさらに詳しく説明する。図4を参照すると、本発明の1つの選択可能な具体的実施例によって提供されるターボ積符号の復号方法は、ステップ201~204を含む。
【0097】
ステップS201において、ターボ積符号の受信コードワード及びコードパターン、反復パラメータを取得する。ここで、ターボ積符号は、2組以上のブロックコードのコードワードを1つの2次元又は多次元のマトリックスに配列することにより、サブコードが最小距離特性を持つ積符号を構成する。ターボ積符号のコードパターンは、(128,120)×(128,120)、(128,127)×(128,127)、(64,57)×(64,57)、(32,26)×(16,15)×(8,7)などを含む。送信側で情報を送信する場合、ターボ積符号は、行毎にビット単位でシリアルに送信され、受信側では、受信されたシリアルシーケンスは、2次元マトリックス形態に変換され、次にマトリックス構造によって復号される。
【0098】
ターボ積符号の複雑さ及び復号の遅延は、サブコードのパターンに依存し、サブコードの構成の複雑さ及び復号の複雑さの増加とともに線形的に増加する。受信コードワードに基づいて前記受信コードワードのコードパターンを判別することができないことから、後の復号のために、受信コードワードr_inとコードパターンを同時に取得し、順方向反復復号回数と逆方向反復復号回数を設定する必要がある。本実施例では、ターボ積符号の行列反復復号に使用されるコードパターンは、(n1,k1,1)と(n2,k2,t2)であり、ここで、niがコード長であり、kiが情報長であり、tiが誤り訂正能力であり、iがセット{1,2}に属する。前記反復パラメータは、順次方向反復復号回数m1と逆方向反復復号回数m2を含む。
【0099】
ステップS202において、反復パラメータに基づいて受信コードワードに対して順方向反復復号を実行し、パラメータ記録を実行し、復号識別子マトリックスがある場合、まず復号識別子マトリックスを初期化し、即ちターボ積符号のコードブロックのサイズに従ってビットデータごとに復号識別子を記憶し、前記復号識別子マトリックスのサイズがターボ積符号のサイズであり、初期値がすべて0に付与される。
【0100】
受信コードワードr_inに対して順方向反復復号回数m1の順方向反復復号を実行し、かつ順方向反復復号が行反復復号と列反復復号の交互復号である場合、判断条件は、次のことを含む。
【0101】
1)コードワードのコードパターンが短縮コードであると、復号後の前記コードワードの補足位置がすべて0であるか否かを判断し、すべて0ではないすべてが0であることでない場合、復号が失敗したことを示す。
【0102】
2)コードワードのコードパターンが拡張コードである場合、復号後の前記コードワードに対してXOR計算を実行して得られたチェックビットが復号前の前記コードワードの元のチェックビットと同じであるか否かを判断し、同じではない場合、復号が失敗したことを示す。
【0103】
3)復号識別子マトリックスがあり、かつあるコードワードを復号する場合、前記復号識別子マトリックス内の誤り訂正されたシンボルの復号識別子が1であると、復号が失敗したと認められる。
【0104】
4)あるコードワードを復号する場合、誤り訂正されたシンボルの数がこのコードワード復号の誤り訂正能力限界であると、復号が失敗したと判断し、しかし、現在の反復復号回数が設定された反復復号回数閾値に等しくかつ現在の反復復号の前回の反復復号プロセスでの復号が誤った行数又は列数が大きいと、現在の反復復号では誤り訂正されたシンボルの数がコードワード復号化の誤り訂正能力限界であるという復号状況は、復号が成功したと認められる。
【0105】
このように、前方反復復号により誤りシンボルの数を減らすことができる。
【0106】
ステップS203において、記録されたパラメータを使用してデッドロック構造又はデッドロックのような構造を反転させる。復号識別子マトリックスがある場合、復号識別子マトリックス内の0の個数を判断し、復号識別子マトリックスにおける0の個数が設定された閾値num1よりも大きい場合、復号が誤った前の(t1+1)*(t2+1)個のシンボルに対して反転操作を行い、復号識別子マトリックスにおける0の個数が設定された閾値num1よりも小さい場合、復号識別子マトリックスにおける0の位置に対応するデータ、即ち復号が誤ったシンボルをすべて反転する。
【0107】
復号識別子マトリックスがない場合、順方向反復復号の最後の行反復復号と最後の列反復復号を実行するときに、復号誤りに対応する行番号及び列番号をそれぞれ記録し、復号が誤った行番号がt1+1以上であり、かつ復号が誤った列番号がt2+1以上であると、誤ったコードワードの前のt1+1行とt2+1列のデータを反転し、又は一部のデータを選択して反転し、それによってデッドロック構造を破る。
【0108】
ステップS204において、反転された受信コードワードに対して反復復号を実行する。反転された受信コードワードに対して逆方向反復回数m2の逆方向反復復号を実行するとき、判断条件は、次のことを含む。
【0109】
5)コードワードのコードパターンが短縮コードであると、復号後の前記コードワードの補足位置がすべて0であるか否かを判断し、すべて0ではないすべてが0であることでない場合、復号が失敗したことを示す。
【0110】
6)コードワードのコードパターンが拡張コードである場合、復号後の前記コードワードに対してXOR計算を実行して得られたチェックビットが復号前の前記コードワードの元のチェックビットと同じであるか否かを判断し、同じではない場合、復号が失敗したことを示す。
【0111】
7)あるコードワードを復号するとき、誤り訂正されたシンボルの数がこのコードワード復号の誤り訂正能力限界であると、復号が成功したと認められる。最後に、反復復号が完了された後、更新されたr_inを出力する。
【0112】
このように、逆方向反復復号により、順方向反復復号後に存在する可能性がある誤りシンボルに対して誤り訂正を実行し、これにより、復号の不十分な部分が除去される。
【0113】
1つの例示的な実施例では、図5を参照すると、本実施例が基づく応用シーンは、復号識別子マトリックスが存在することである。前記反復パラメータに基づいて受信コードワードに対して順方向反復復号を実行し、パラメータ記録を実行する前記ステップは、次のステップS2021~S2028を含む。ステップS2021において、受信コードワードを取得し、短縮コードであるか否か、補足ビットが0であるか否かを判断し、そうである場合、ステップS2022を実行し、そうでない場合、ステップS2027を実行し、ここで、順方向反復復号の順序に従ってターボ積符号から受信コードワードを順次取得し、このコードワードのコードパターンが短縮コードであるか否かを判断し、このコードワードのコードパターンが短縮コードである場合、復号後のこのコードワードの補足ビットがすべて0であるか否かを判断し、すべて0ではないすべてが0であることでない場合、復号が失敗したことを示す。
【0114】
ステップS2022において、拡張コードであるか否か、かつチェックビットが元のチェックビットと同じであるか否かを判断し、そうである場合、ステップS2023を実行し、そうでない場合、ステップS2027を実行し、ここで、このコードワードのコードパターンが拡張コードであるか否かを判断し、このコードワードのコードパターンが拡張コードである場合、復号後のこのコードワードに対してXOR計算を実行して得られたチェックビットが復号前のこのコードワードの元のチェックビットと同じであるか否かを判断し、同じではない場合、復号が失敗したことを示す。
【0115】
ステップS2023において、誤り訂正シンボルの数が誤り訂正可能なシンボルの最大数に等しいか否かを判断し、そうである場合、ステップS2024を実行し、そうでない場合、ステップS2025を実行し、具体的には、このコードワードが復号された後の誤り訂正シンボルの数がこのコードワードの誤り訂正可能なシンボルの最大数に等しいか否かを判断し、等しい場合、ステップS2024を実行し、そうでない場合、ステップS2025を実行する。
【0116】
ステップS2024において、現在の反復回数が設定された回数閾値であるか否か、前回の反復復号プロセスで復号が失敗したコードワードの数が設定された閾値よりも大きいか否かを判断し、そうである場合、ステップS2025を実行し、そうでない場合、ステップS2027を実行し、ここで、前記回数閾値は、実際のニューズに応じて設定されてもよく、反復復号を開始するたびに、対応する反復回数を記録する。前記閾値は、実際のニーズに応じて設定されてもよく、例えば5つ又は6つなどに設定されてもよい。
【0117】
ステップS2025において、誤り訂正シンボルの数が誤り訂正可能なシンボルの最大数に等しいか否かを判断し、そうである場合、ステップS2025を実行し、そうでない場合、ステップS2027を実行し、具体的には、このコードワードが復号された後の誤り訂正シンボルの数がこのコードワードの誤り訂正可能なシンボルの最大数に等しいか否かを判断し、等しい場合、ステップS2025を実行し、そうでない場合、ステップS2027を実行する。
【0118】
ステップS2025において、誤り訂正位置の元の復号識別子が1であるか否かを判断し、そうでない場合、ステップS2026を実行し、そうでない場合、ステップS2027を実行する。ここで、このコードワードを復号した後、このコードワードにおける現在の誤りが訂正されたシンボル即ち誤り訂正位置の前記復号識別子マトリックスにおける復号識別子が1であると、このコードワードの復号が失敗したと認められる。
【0119】
ステップS2026において、受信されたターボ積符号を更新し、具体的には、正しく復号された行番号又は列番号に対応する復号結果をr_inに対応する値に更新し、それによって受信されたターボ積符号の更新を完了する。順方向反復復号の最後の行反復復号を実行するときに、正しく復号された行番号K_id1を記録し、最後の列反復復号を実行するときに、正しく復号された列番号K_id2を記録する。
【0120】
ステップS2027において、復号識別子マトリックスを更新し、具体的には、復号結果に基づいて復号識別子マトリックスを更新する。コードワードの復号が成功した場合、復号識別子マトリックスにおけるこのコードワードの所在する行又は列をすべて1に設定し、コードワードの復号が失敗した場合、復号識別子マトリックスにおけるこのコードワードの所在する行又は列をすべて0に設定する。
【0121】
ステップS2028において、現在の反復復号回数が順方向反復復号回数よりも小さいか否かを判断し、そうである場合、ステップS2021に戻り、そうでない場合、終了する。
【0122】
復号識別子マトリックスがある場合、デッドロック構造の反転は以下の条件に応じて実行されてもよいことが説明すべきである。
【0123】
1)K_id1が全行番号であるか、K_id2が全列番号である場合、復号結果をr_inに更新し、後復号反復を実行する。
【0124】
2)復号識別子マトリックスにおける0の個数を判断し、前記個数が設定された閾値num1よりも大きい場合、前記復号識別子マトリックスにおける前の(t1+1)*(t2+1)個の0に対応する位置のr_inをビットで反転し、そうでない場合、すべての0に対応する位置のr_inを反転する。
【0125】
この実施例では、復号識別子マトリックスを追加することにより、復号が成功したか否かを判断し、コードワードが元々正しいが、他のコードワードの影響により繰り返し変更するという問題を解決する。
【0126】
1つの例示的な実施例では、図6を参照すると、本実施例が基づく応用シーンは、復号識別子マトリックスが存在しないことである。前記反復パラメータに基づいて受信コードワードに対して順方向反復復号を実行し、パラメータ記録を実行する前記ステップは、次のステップS3021~S3026を含む。ステップS3021において、受信コードワードを取得し、短縮コードであるか否か、補足ビットが0であるか否かを判断し、そうである場合、ステップS3022を実行し、そうでない場合、ステップS3026を実行し、ここで、順方向反復復号の順序に従ってターボ積符号から受信コードワードを順次取得し、このコードワードのコードパターンが短縮コードであるか否かを判断し、このコードワードのコードパターンが短縮コードであると、復号後のこのコードワードの補足位置がすべて0であるか否かを判断し、すべて0ではないすべてが0であることでない場合、復号が失敗したことを示す。
【0127】
ステップS3022において、拡張コードであるか否か、かつチェックビットが元のチェックビットと同じであるか否かを判断し、そうである場合、ステップS3023を実行し、そうでない場合、ステップS3026を実行し、ここで、このコードワードのコードパターンが拡張コードであるか否かを判断し、このコードワードのコードパターンが拡張コードである場合、復号後のこのコードワードに対してXOR計算を実行して得られたチェックビットが復号前のこのコードワードの元のチェックビットと同じであるか否かを判断し、同じではない場合、復号が失敗したことを示す。
【0128】
ステップS3023において、誤り訂正シンボルの数が誤り訂正可能なシンボルの最大数に等しいか否かを判断し、そうである場合、ステップS3024を実行し、そうでない場合、ステップS3025を実行し、具体的には、このコードワードが復号された後の誤り訂正シンボルの数がこのコードワードの誤り訂正可能なシンボルの最大数に等しいか否かを判断し、等しい場合、ステップS3024を実行し、そうでない場合、ステップS3025を実行する。
【0129】
ステップS3024において、現在の反復回数が設定された回数閾値であるか否か、前回の反復復号プロセスで復号が失敗したコードワードの数が設定された閾値よりも大きいか否かを判断し、そうである場合、ステップS3025を実行し、そうでない場合、ステップS3026を実行し、ここで、前記回数閾値は、実際のニューズに応じて設定されてもよく、反復復号を開始するたびに、対応する反復回数を記録する。前記閾値は、実際のニーズに応じて設定されてもよく、例えば5つ又は6つなどに設定されてもよい。
【0130】
ステップS3025において、受信されたターボ積符号を更新し、具体的には、正しく復号された行番号又は列番号に対応する復号結果をr_inに対応する値に更新し、それによって受信されたターボ積符号の更新を完了する。順方向反復復号の最後の行反復復号を実行するときに正しく復号された行番号K_id1を記録し、最後の列反復復号を実行するときに正しく復号された列番号K_id2を記録する。
【0131】
ステップS3026において、現在の反復復号回数が順方向反復復号回数よりも小さいか否かを判断し、そうである場合、ステップS3021に戻り、そうでない場合、終了する。
【0132】
この実施例では、復号識別子マトリックスは省略され、誤り訂正限界の状況は、デッドロック訂正結果又はデッドロックのような構造の前に変更しないように維持され、より多くの誤りの増加を防止する。誤りが多い場合、誤り訂正限界の状況は、復号が成功したと見なされ、復号はより柔軟になる。
【0133】
1つの例示的な実施例では、図7を参照すると、反転された受信コードワードに対して逆方向反復復号を実行する前記ステップは、次のステップS4021~S4025を含む。ステップS4021において、受信コードワードを取得し、ここで、逆方向反復復号の順序に従って、更新されたターボ積符号から受信コードワードを順次取得する。
【0134】
ステップS4022において、短縮コードであるか否か、補足ビットが0であるか否かを判断し、そうである場合、ステップS4022を実行し、そうでない場合、ステップS4025を実行し、ここで、このコードワードのコードパターンが短縮コードであるか否かを判断し、このコードワードのコードパターンが短縮コードであると、復号後のこのコードワードの補足ビットがすべて0であるか否かを判断し、すべて0ではないすべてが0であることでない場合、復号が失敗したことを示す。
【0135】
ステップS4023において、拡張コードであるか否か、かつチェックビットが元のチェックビットと同じであるか否かを判断し、そうである場合、ステップS4024を実行し、そうでない場合、ステップS4025を実行し、ここで、コードワードのコードパターンが拡張コードであるか否かを判断し、コードワードのコードパターンが拡張コードである場合、復号後のこのコードワードに対してXOR計算を実行して得られたチェックビットが復号前の前記コードワードの元のチェックビットと同じであるか否かを判断し、同じではない場合、復号が失敗したことを示す。
【0136】
ステップS4024において、受信されたターボ積符号を更新し、ここで、コードワードの復号が成功したと判断した後、復号結果に基づいて、受信されたターボ積符号を更新する。
【0137】
ステップS4025において、現在の反復復号回数が逆方向反復復号回数よりも小さいか否かを判断し、そうである場合、ステップS4021に戻り、そうでない場合、終了する。
【0138】
ここで、反復復号を開始するたびに、現在の反復復号回数を更新する。
【0139】
上記の方法を実現するために、図2を再度参照すると、本発明の1つの選択可能な具体的実施例に係るターボ積符号の復号装置は、ターボ積符号の受信コードワード及びコードパターン、反復パラメータを取得するように構成される取得モジュール10と、復号識別子マトリックスを確立し、受信コードワードに対して硬判定を実行して復号コードワードを取得し、コードパターン及び判定条件に応じて、復号が成功したか否かを判定し、復号識別子マトリックスを更新するように構成される順方向反復復号モジュール20と、復号識別子マトリックスに従って、誤る可能性があるビットを反転するように構成されるデッドロック訂正モジュール30と、前記受信コードワードに対して逆方向反復復号を実行し、与えられた判断条件に応じて復号が成功したか否かを判断するように構成される逆方向反復復号モジュール40と、前記受信コードワードの復号結果を出力するように構成される復号結果出力モジュール50とを含む。
【0140】
ここで、前記コードパターンは、コード長、情報長及び誤り訂正能力を含む。前記デッドロック訂正モジュール30は、復号識別子マトリックスに従って誤る可能性があるビットを反転し、コードブロックに含まれる誤りの数に基づいてそれを閾値と比較し、それが閾値より大きいと、反転された誤り位置の数は(t1+1)*(t2+1)つであってもよく、t1、t2がそれぞれ誤り訂正能力である。逆方向反復復号モジュール40の逆方向反復復号プロセスにより、デッドロック訂正結果後の残りの誤りビットを除去する。
【0141】
以上は、本発明の具体的な実施形態だけであるが、本発明の保護範囲は、これに制限されず、当業者が本発明に開示された技術範囲内で容易に想到し得る変化又は入れ替わりがすべて本発明の保護範囲以内に含まれるべきである。本発明の保護範囲は、前記特許請求の保護範囲に準拠するべきである。
図1
図2
図3
図4
図5
図6
図7