(57)【要約】  本発明は、ターボ積符号の復号方法、復号装置、デコーダー及びコンピュータ記憶媒体を提供する。前記方法は、ターボ積符号の受信コードワードを取得し、前記受信コードワードに対して、設定された第１の反復復号回数の反復復号を実行するステップ（Ｓ１０１）と、第１の復号ルールに従って前記第１の反復回数の反復復号の復号結果を判断し、復号結果を表すための復号識別子を取得するステップ（Ｓ１０２）と、前記復号識別子に応じて、前記第１の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行するステップ（Ｓ１０３）とを含む。【選択図】図１
2022500918.tif 000002
【特許請求の範囲】
【請求項１】
ターボ積符号の復号方法であって、
ターボ積符号の受信コードワードを取得し、前記受信コードワードに対して、設定された第１の反復回数の反復復号を実行するステップと、
第１の復号ルールに従って前記第１の反復回数の反復復号の復号結果を判断し、復号結果を表すための復号識別子を取得するステップと、
前記復号識別子に応じて、前記第１の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行するステップと、を含むターボ積符号の復号方法。
【請求項２】
前記受信コードワードに対して、設定された第１の反復回数の反復復号を実行する前記ステップの前に、
前記ターボ積符号を構成するブロックコードのコードパターンを取得するステップであって、前記コードパターンには誤り訂正可能なシンボルの最大数が含まれているステップをさらに含み、
第１の復号ルールに従って前記第１の反復回数の反復復号の復号結果を判断し、復号結果を表すための復号識別子を取得する前記ステップは、
第１の復号ルールに従って前記第１の反復回数の反復復号の復号結果を判断するステップであって、前記第１の復号ルールは、前記コードパターンに応じて、前記受信コードワードが短縮コードであり、かつ復号後の前記受信コードワードの補足位置でのシンボルがすべて０ではないすべてが０であることでないと判断すると、前記受信コードワードの復号が失敗したと判断することと、前記コードパターンに応じて、前記受信コードワードが拡張コードであり、かつ前記受信コードワードの元のチェックビットが復号後の前記受信コードワードのチェックビットと異なると判断すると、前記受信コードワードの復号が失敗したと判断することと、復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、現在の反復復号回数が設定された反復復号回数閾値に等しく、かつ前回の反復復号プロセスで復号が失敗したコードワードの数が設定された閾値未満であると判断し、又は復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、かつ前記現在の反復復号回数が前記反復復号回数閾値に等しくないと判断すると、前記受信コードワードの復号が失敗したと判断することと、のうちの少なくとも１つを含むステップと、
判断結果基づいて、前記受信コードワードに対応する復号結果の復号識別子を確定するステップと、を含む請求項１に記載の方法。
【請求項３】
判断結果基づいて、前記受信コードワードに対応する復号結果の復号識別子を確定する前記ステップの前に、
前記ターボ積符号のサイズに等しい復号識別子マトリックスを初期化するステップをさらに含み、
判断結果基づいて、前記受信コードワードに対応する復号結果の復号識別子を確定する前記ステップは、
判断結果基づいて、前記受信コードワードの各シンボルの前記復号識別子マトリックスにおける対応する位置での復号識別子を更新するステップを含む請求項２に記載の方法。
【請求項４】
前記第１の復号ルールは、
前記受信コードワードのシンボルに対して誤り訂正を実行し、かつ前記復号識別子マトリックスにおける前記シンボルに対応する復号識別子が、前記シンボルが正しく復号されたことを表すと、前記シンボルの復号が失敗したと判断すること、をさらに含む請求項３に記載の方法。
【請求項５】
前記復号識別子に応じて、前記第１の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行する前記ステップは、
前記復号識別子に応じて、前記第１の反復回数に対応する最後の行反復復号を実行するときに復号が失敗した行数と最後の列反復復号を実行するときに復号が失敗した列数とを取得するステップと、
前記行数が設定された第１の数閾値以上であり、かつ前記列数が設定された第２の数閾値以上であると判断する場合、前記第１の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したコードワードに対して反転操作を実行するステップと、を含む請求項１に記載の方法。
【請求項６】
前記復号識別子に応じて、前記第１の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行する前記ステップは、
前記復号識別子マトリックスに従って、復号が失敗したシンボルの数を取得するステップと、
前記数と設定された第３の数閾値との間の関係に応じて、前記第１の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したシンボルに対して反転操作を実行するステップと、を含む請求項３又は４に記載の方法。
【請求項７】
前記復号識別子に応じて、前記第１の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行する前記ステップの後、
誤り訂正処理が実行された前記ターボ積符号に対して、設定された第２の反復回数の反復復号を実行するステップと、
第２の復号ルールに従って前記第２の反復回数の反復復号の復号結果を判断し、ターゲットターボ積符号を取得するステップと、をさらに含む請求項１に記載の方法。
【請求項８】
第２の復号判定ルールに従って、前記第２の反復回数の反復復号の復号結果を判断する前記ステップは、
第２の復号判定ルールに従って前記第２の反復回数の反復復号の復号結果を判断するステップであって、前記第２の復号ルールは、前記コードパターンに応じて、前記受信コードワードが短縮コードであり、かつ復号後の前記受信コードワードの補足位置でのシンボルがすべて０ではないすべてが０であることでないと判断すると、前記受信コードワードの復号が失敗したと判断することと、前記コードパターンに応じて、前記受信コードワードが拡張コードであり、かつ前記受信コードワードの元のチェックビットが復号後の前記受信コードワードのチェックビットと異なると判断すると、前記受信コードワードの復号が失敗したと判断することと、復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しいと判断すると、前記受信コードワードの復号が成功したと判断することと、のうちの少なくとも１つを含むステップを含む請求項７に記載の方法。
【請求項９】
ターボ積符号の復号装置であって、
ターボ積符号の受信コードワードを取得するように構成される取得モジュールと、
前記受信コードワードに対して、設定された第１の反復回数の反復復号を実行し、第１の復号ルールに従って前記第１の反復回数の反復復号の復号結果を判断し、復号結果を表すための復号識別子を取得するように構成される順方向反復復号モジュールと、
前記復号識別子に応じて、前記第１の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行するように構成されるデッドロック訂正モジュールと、を含むターボ積符号の復号装置。
【請求項１０】
デコーダーであって、
プロセッサと、プロセッサで実行可能なコンピュータプログラムを記憶するように構成されるメモリとを含み、
前記プロセッサは、前記コンピュータプログラムを実行するときに、請求項１乃至８のいずれか１項に記載のターボ積符号の復号方法を実行するように構成されるデコーダー。
【請求項１１】
コンピュータ記憶媒体であって、
前記コンピュータ記憶媒体にはコンピュータプログラムが記憶され、前記コンピュータプログラムがプロセッサに実行されて請求項１乃至８のいずれか１項に記載のターボ積符号の復号方法のステップを実現するコンピュータ記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願への相互参照）
本発明は、２０１８年９月１２日に中国特許庁に提出された、出願番号が２０１８１１０６３０２１．２であり、名称が「ターボ積符号の復号方法、装置、デコーダー及びコンピュータ記憶媒体」である中国特許出願に対する優先権を主張し、そのすべての内容が参照により本明細書に組み込まれる。
【０００２】
本発明は、誤り訂正制御分野に関し、特にターボ積符号の復号方法、装置、デコーダー及びコンピュータ記憶媒体に関する。
【背景技術】
【０００３】
ターボ積符号は、ソフト入力ソフト出力反復復号アルゴリズムを基にしたものとして、その誤り訂正性能がシャノン限界に非常に近いため、チャネル符号化分野での研究のホットスポットになる。関連技術では、ターボ積符号の復号方法としてソフト復号アルゴリズムが主に使用されるが、誤りコードの数が少ない場合、ソフト復号アルゴリズムの消費電力が高く、このとき、ハードウェア復号アルゴリズムの方が適している。しかし、誤りコードレートが低い場合、ハードウェア復号アルゴリズムを使用してターボ積符号を復号すると、エラーフロアが発生し、エラーフロアの原因は、主にデッドロック又はデッドロックのような構造の発生である。ハードウェア復号アルゴリズムを用いてターボ積符号を復号するときに行列の交互復号を採用するため、行復号が実行されるときの誤りと列復号が実行されるときの誤りが一致し、かつすべて訂正できないと、デッドロック又はデッドロックのような構造が形成される。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
既存の技術的問題を解決するために、本発明の実施例は、エラーフロアを効果的に回避することができるターボ積符号の復号方法、装置、デコーダー及びコンピュータ記憶媒体を提供する。
【課題を解決するための手段】
【０００５】
上記の目的を達成するために、本発明の実施例の技術的解決策は、次のように実現される。
【０００６】
第１の態様によれば、本発明の実施例は、ターボ積符号の復号方法を提供する。前記ターボ積符号の復号方法は、ターボ積符号の受信コードワードを取得し、前記受信コードワードに対して、設定された第１の反復回数の反復復号を実行するステップと、第１の復号ルールに従って前記第１の反復回数の反復復号の復号結果を判断し、復号結果を表すための復号識別子を取得するステップと、前記復号識別子に応じて、前記第１の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行するステップと、を含む。
【０００７】
第２の態様によれば、本発明の実施例は、ターボ積符号の復号装置を提供する。前記ターボ積符号の復号装置は、ターボ積符号の受信コードワードを取得するように構成される取得モジュールと、前記受信コードワードに対して、設定された第１の反復回数の反復復号を実行し、第１の復号ルールに従って前記第１の反復回数の反復復号の復号結果を判断し、復号結果を表すための復号識別子を取得する順方向反復復号モジュールと、前記復号識別子に応じて、前記第１の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行するように構成されるデッドロック訂正モジュールと、を含む。
【０００８】
第３の態様によれば、本発明の実施例は、デコーダーを提供する。前記デコーダーは、プロセッサと、プロセッサで実行可能なコンピュータプログラムを記憶するように構成されるメモリとを含み、前記プロセッサは、前記コンピュータプログラムを実行するときに、第１の態様に記載のターボ積符号の復号方法を実行するように構成される。
【０００９】
第４態様によれば、本発明の実施例は、コンピュータ記憶媒体を提供する。前記コンピュータ記憶媒体にはコンピュータプログラムが記憶され、前記コンピュータプログラムがプロセッサに実行されるときに第１の態様に記載のターボ積符号の復号方法を実現する。
【００１０】
第５態様によれば、本発明の実施例は、コンピュータプログラム製品を提供する。前記コンピュータプログラム製品は、非一時的コンピュータ可読記憶媒体に記憶されたコンピュータプログラムを含み、前記コンピュータプログラムがプログラム命令を含み、前記プログラム命令がコンピュータに実行される場合、前記コンピュータに以上の各態様に記載の方法を実行させる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施例におけるターボ積符号の復号方法のフローチャートである。
【図２】本発明の一実施例におけるターボ積符号の復号装置の構造概略図である。
【図３】本発明の一実施例におけるデコーダーの構造概略図である。
【図４】本発明の１つの選択可能な具体的実施例におけるターボ積符号の復号方法のフローチャートである。
【図５】本発明の１つの例示的な具体的実施例における反復パラメータに基づいて受信コードワードに対して順方向反復復号を実行し、パラメータ記録を実行するフローチャートである。
【図６】本発明のさらなる例示的な具体的実施例における反復パラメータに基づいて受信コードワードに対して順方向反復復号を実行し、パラメータ記録を実行するフローチャートである。
【図７】本発明の１つの例示的な具体的な実施例における反転された受信コードワードに対して逆方向反復復号を実行するフローチャートである。
【発明を実施するための形態】
【００１２】
以下に明細書の図面及び具体的な実施例を組み合わせて本発明の技術的解決策をさらに詳しく説明する。別段の定義がない限り、本明細書で使用されるすべての技術用語及び科学用語は、本発明の技術分野の当業者によって一般的に理解される意味と同じである。ここで、本発明の明細書で使用される用語は、具体的な実施例を説明するためのものだけであり、本発明を限定することを意図しない。ここで使用される用語「及び／又は」は、１つ又は複数の関連する、示される項目のいずれか１つ又はそれらの組み合わせを含む。
【００１３】
図１を参照すると、本発明の実施例に係るターボ積符号の復号方法は、ステップＳ１０１〜Ｓ１０３を含む。ステップＳ１０１において、ターボ積符号の受信コードワードを取得し、前記受信コードワードに対して、設定された第１の反復回数の反復復号を実行する。
【００１４】
本実施例では、前記ターボ積符号の復号方法がデコーダーに応用されることは例として挙げられる。エンコーダーは、ブロックコードのコードパターンに従ってターボ積符号を構成し、次にターボ積符号を行ごとにビット単位で直列に送信し、デコーダーは、受信されたシリアルビットシーケンスを前記ターボ積符号の次元と同じアレイに変換し、それによってターボ積符号の受信コードワードを取得する。前記受信コードワードは、ターボ積符号のすべての受信コードワードであり、前記受信コードワードは、行の形態で存在しているコードワードと列の形態で存在しているコードワードとを含む。前記第１の反復回数は、実際のニーズに応じて設定されてもよく、例えば３回又は４回などに設定されてもよい。前記受信コードワードに対して、設定された第１の反復回数の反復復号を実行する前記ステップは、前記受信コードワードに対して、設定された行及び列反復順序の第１の反復回数の反復復号を実行するステップを含むことが理解できる。
【００１５】
前記行及び列反復順序は、行列反復順序であってもよいし、列行反復順序であってもよい。前記受信コードワードに対する１回の行反復は、１回の反復と記され、同様に、前記受信コードワードに対する１回の列反復も１回の反復と記される。前記受信コードワードに対して、設定された第１の反復回数の反復復号を実行するプロセスでは、前記受信コードワードに対して行反復を実行する回数と前記受信コードワードに対して列反復を実行する回数は、同じである可能性があり、異なる可能性もある。本実施例では、前記受信コードワードに対して行列反復順序の第１の反復回数の反復復号を実行する。
【００１６】
ステップＳ１０２において、第１の復号ルールに従って前記第１の反復回数の反復復号の復号結果を判断し、復号結果を表すための復号識別子を取得する。具体的には、毎回の行反復復号及び列反復復号プロセスでは、第１の復号ルールに従って、反復復号により得られた復号結果を判断し、それによって復号結果を表すための復号識別子を取得する。この復号結果は、復号後の前記受信コードワードと対応する誤り訂正状況などの情報であってもよい。
【００１７】
１つの選択可能な実施例では、前記受信コードワードに対して、設定された第１の反復回数の反復復号を実行する前記ステップの前に、前記ターボ積符号を構成するブロックコードのコードパターンを取得するステップであって、前記コードパターンには誤り訂正可能なシンボルの最大数が含まれているステップをさらに含み、第１の復号ルールに従って前記第１の反復回数の反復復号の復号結果を判断し、復号結果を表すための復号識別子を取得する前記ステップは、第１の復号ルールに従って、前記第１の反復回数の反復復号の復号結果を判断するステップであって、前記第１の復号ルールは、前記コードパターンに応じて、前記受信コードワードが短縮コードであり、かつ復号後の前記受信コードワードの補足位置でのシンボルがすべて０ではないすべてが０であることでないと判断すると、前記受信コードワードの復号が失敗したと判断すること、前記コードパターンに応じて、前記受信コードワードが拡張コードであり、かつ前記受信コードワードの元のチェックビットが復号後の前記受信コードワードのチェックビットと異なると判断すると、前記受信コードワードの復号が失敗したと判断すること、復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、現在の反復復号回数が設定された反復復号回数閾値に等しく、かつ前回の反復復号プロセスで復号が失敗したコードワードの数が設定された閾値未満であると判断し、又は復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、かつ前記現在の反復復号回数が前記反復復号回数閾値に等しくないと判断すると、前記受信コードワードの復号が失敗したと判断することのうちの少なくとも１つを含むステップと、判断結果に基づいて前記受信コードワードに対応する復号結果の復号識別子を確定するステップと、を含む。
【００１８】
ここで、デコーダーは、エンコーダーから送信された、前記ターボ積符号を構成するブロックコードのコードパターンを受信し、前記ターボ積符号が２次元ターボ積符号であることを例とすると、前記ブロックコードのコードパターンは（ｎ1，ｋ1，ｔ1）及び（ｎ2，ｋ2，ｔ2）を含み、ここで、ｎ1及びｎ2がそれぞれ対応するブロックコードのコード長を表し、ｋ1及びｋ2がそれぞれ対応するブロックコードの情報長を表し、ｔ1及びｔ2がそれぞれ対応するブロックコードの誤り訂正可能なシンボルの最大数を表す。前記受信コードワードのコード長が対応するブロックコードのコード長よりも短い場合、符号化する前に前記ターボ積符号のうちの前のｎ列又は前のｎ行の不要なシンボル、即ち情報ビットが０であるシンボルが削除されることを示し、即ち前記受信コードワードは短縮コードであり、ｎは前記受信コードワードのコード長と対応するブロックコードのコード長との差の絶対値である。例えば、前記ブロックコードのコードパターンが（２５５，２３９）×（２５５，２３９）であると仮定し、前記受信コードワードのコード長が２４８であると、前記受信コードワードが短縮コードであり、かつ前記受信コードワードに情報ビットが０である７つのシンボルが省略されることを示す。コードパターンが短縮コードであるターボ積復号の前記受信コードワードを復号する前に、先に前記受信コードワードの補足位置でのシンボルが０で埋められ、前記補足位置は、省略された、情報ビットが０であるシンボルの位置を指す。前記受信コードワードのコード長が対応するブロックコードのコード長よりも長い場合、エンコーダーが前記ターボ積符号のすべての行のＸＯＲ操作により取得されたチェック列、及び／又は前記ターボ積符号のすべての列のＸＯＲ操作により取得されたチェック行を、前記ターボ積符号に追加することを示し、つまり、前記受信コードワードの最後のシンボルは、チェックビットであり、元のチェックビットと呼ばれ、即ち前記受信コードワードは、拡張コードである。
【００１９】
第１の復号ルールは、主に、コードパターンが短縮コードであること、コードパターンが拡張コードであること、及び誤り訂正可能なシンボルの数という３つの方面に基づき、第１の反復回数の反復復号の復号結果を判断し、復号識別子を取得することを含む。例えば、復号後の前記受信コードワードの補足位置でのシンボルが、すべてが０であることでないと、前記受信コードワードの補足位置でのシンボルが誤って復号されたことを示し、前記受信コードワードの復号は失敗した。
【００２０】
また、例えば、コードパターンが拡張コードである前記受信コードワードを復号する場合、前記受信コードワードの元のチェックビットは復号されない。前記受信コードワードが復号された後、復号後の前記受信コードワードのすべてのシンボルに対してＸＯＲ操作を実行し、復号後の前記受信コードワードのチェックビットを取得する。前記受信コードワードに対応する前記元のチェックビットが前記ターボ積符号のチェックビットと異なると、前記受信コードワードの復号プロセスで誤りが発生したことを示し、前記受信コードワードの復号が失敗したと判断する。
【００２１】
また、例えば、復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、現在の反復復号回数が設定された反復復号回数閾値に等しく、かつ前回の反復復号プロセスで復号が失敗したコードワードの数が設定された閾値よりも小さいと判断すると、前記受信コードワードの復号が失敗したと判断し、これにより、より多くの誤りの増加を防止する。
【００２２】
復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、現在の反復復号回数が設定された反復復号回数閾値に等しく、かつ前回の反復復号プロセスで復号が失敗したコードワードの数が設定された閾値以上であると判断すると、前記受信コードワードの復号が成功したと判断し、これにより、復号の柔軟性が向上する。復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、かつ前記現在の反復復号回数が前記反復復号回数閾値に等しくないと判断すると、前記受信コードワードの復号が失敗したと判断し、これにより、より多くの誤りの増加を防止する。
【００２３】
ここで、前記受信コードワードの誤り訂正可能なシンボルの最大数は、前記受信コードワードが属するブロックコードの誤り訂正可能なシンボルの最大数である。前記前回の反復復号プロセスは、前記第１の反復回数に基づいて確定された現在の反復復号の前の反復復号プロセスである。現在の反復復号が行反復復号であると、前回の反復復号は列反復復号である。現在の反復復号が列反復復号であると、前回の反復復号は行反復復号である。前記符号化ユニットは、列である可能性があり、行である可能性もある。
【００２４】
それに応じて、前記前回の反復復号が行反復復号であると、前記前回の反復復号プロセスで復号が失敗したコードワードの数が設定された閾値よりも小さいことは、前記前回の反復復号プロセスで復号が失敗した行の数が第１の設定閾値よりも小さいことであり、前記前回の反復復号が列反復復号であると、前記前回の反復復号プロセスで復号が失敗したコードワードの数が設定された閾値よりも小さいことは、前回の反復復号プロセスで復号が失敗した列の数が第２の設定された閾値よりも小さいことである。
【００２５】
前記第１の設定閾値及び前記第２の設定閾値は、実際のニーズに応じて設定されてもよく、例えば、前記第１の設定閾値は、６に設定されてもよく、前記第２の設定閾値は、７に設定されてもよい。前記反復復号回数閾値は、前記第１の反復回数よりも小さく、実際のニーズに応じて設定されてもよく、例えば前記反復復号回数閾値は、３回目に設定されてもよい。
【００２６】
ここで、前記デコーダーは、判断結果に基づいて前記受信コードワードに対応する復号結果の復号識別子を確定する場合、前記受信コードワードに対して反復復号を実行した後の復号結果に基づいて、取得された結果を判断し、前記受信コードワードに対応する復号結果の復号識別子を記録することができる。前記復号識別子は、前記受信コードワードの復号が成功したか否かを識別するために使用される。例えば、判断結果に基づいて、前記受信コードワードの復号が成功したと判断すると、前記受信コードワードに対応する復号結果を１でマーキングすることができ、復号が成功したコードワードの数に１を加算することができる。判断結果に基づいて前記受信コードワードの復号が失敗したと判断すると、前記受信コードワードに対応する復号結果を０でマーキングすることができ、復号が失敗したコードワードの数に１を加算することができる。当然のことながら、ターボ積復号に対する前記受信コードワードの所在する行番号又は列番号を記録し、対応する前記行番号又は列番号を復号識別子にバインドすることもできる。
【００２７】
このように、第１の復号ルールにより受信コードワードに対して第１の反復回数の反復復号の復号結果を判断し、判断結果に基づいて前記受信コードワードに対応する復号結果の復号識別子を確定し、それによって前記復号識別子に基づいて後の誤り訂正処理のための参照を提供して、誤り訂正の精度を向上させる。
【００２８】
１つの選択可能な実施例では、判断結果に基づいて前記受信コードワードに対応する復号結果の復号識別子を確定する前記ステップの前に、前記ターボ積符号のサイズに等しい復号識別子マトリックスを初期化するステップをさらに含み、判断結果に基づいて前記受信コードワードに対応する復号結果の復号識別子を確定する前記ステップは、判断結果に基づいて前記受信コードワードの各シンボルの前記復号識別子マトリックスにおける対応する位置での復号識別子を更新するステップを含む。
【００２９】
ここで、復号識別子マトリックスを初期化する前記ステップは、前記復号識別子マトリックスの各要素に対応する値をすべて０に設定し、判定結果に基づいて１つのコードワードの復号が成功したと判断する場合、前記復号識別子マトリックスにおける対応する位置でのこのコードワードの値を１に設定し、即ち前記復号識別子マトリックスにおける対応する位置でのこのコードワードの各シンボルの値をすべて１に設定するステップであってもよい。
【００３０】
前記ターボ積符号のサイズに等しい復号識別子マトリックスを設定することにより、前記ターボ積符号の各シンボルに位置を割り当て、対応する復号結果を記録する。このように、反復プロセスでの各シンボルの復号結果を知ることができるため、分析により、復号プロセスでデッドロック又はデッドロックのような構造が現れるか否かを知ることができ、後の誤り訂正処理のための参照を提供する。
【００３１】
１つの選択可能な実施例では、前記第１の復号ルールは、前記受信コードワードのシンボルに対して誤り訂正を実行し、かつ前記復号識別子マトリックスにおける前記シンボルに対応する復号識別子が、前記シンボルが正しく復号されたことを表すと、前記シンボルの復号が失敗したと判断することをさらに含む。
【００３２】
例えば、前記ターボ積符号の１行目のシンボルで構成された受信コードワードを復号し、かつ復号が成功したと仮定し、このときに前記復号識別子マトリックスにおける１番目のシンボルに対応する復号識別子は１に設定され、前記ターボ積符号の１列番目のシンボルで構成された受信コードワードを復号し、かつ前記１番目のシンボルに対して誤り訂正を行ったと判断し、このときに前記１番目のシンボルの復号が失敗したと判断し、前記復号識別子マトリックスにおける１番目のシンボルに対応する復号識別子を０に更新する。
【００３３】
このように、シンボルの履歴復号結果により、シンボルの現在の復号結果を確定することにより、他のシンボルの影響によるシンボルの繰り返し変更の問題が解決され、復号結果の精度が向上する。
【００３４】
ステップＳ１０３において、前記復号識別子に応じて、前記第１の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行する。
【００３５】
具体的には、ターボ積符号の受信コードワードに対して設定された第１の反復回数の反復復号を実行した後に取得された、復号結果を表すための復号識別子に応じて、前記第１の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行する。
【００３６】
ここで、前記復号識別子が、設定された第１の反復回数の反復復号を実行するプロセスでの復号状況を表すことができるため、前記復号識別子に応じて、前記第１の反復回数の反復復号が実行された前記ターボ積符号にデッドロック又はデッドロックのような構造が存在しているか否かなどの状況を知ることができ、前記第１の反復回数の反復復号が実行された前記ターボ積符号にデッドロック又はデッドロックのような構造が存在している場合、前記復号識別子に応じて、前記第１の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行し、前記ターボ積符号のデッドロック又はデッドロックのような構造を破って、エラーフロアを回避する。
【００３７】
上述したように、上記の実施例によって提供されるターボ積符号の復号方法では、第１の復号ルールに従って前記第１の反復回数の反復復号の復号結果を判断して復号識別子を取得し、復号識別子により第１の反復回数の反復復号プロセスでの識別シンボルを記録することができ、それによって反復復号により取得された復号識別子に応じて反復復号後の前記ターボ積符号に対して誤り訂正処理を実行することにより、前記ターボ積符号のデッドロック又はデッドロックのような構造を破って、エラーフロアを効果的に回避する。
【００３８】
１つの選択可能な実施例では、前記復号識別子に応じて、前記第１の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行する前記ステップは、前記復号識別子に応じて、前記第１の反復回数に対応する最後の行反復復号を実行するときに復号が失敗した行数と最後の列反復復号を実行するときに復号が失敗した列数とを取得するステップと、前記行数が設定された第１の数閾値以上であり、かつ前記列数が設定された第２の数閾値以上であると判断する場合、前記第１の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したコードワードに対して反転操作を実行するステップと、を含む。
【００３９】
例えば、前記第１の反復回数が６回であり、１回目の反復復号が行反復復号であり、２回目の反復復号が列反復復号であると仮定し、これによって類推し、前記第１の反復回数に対応する最後の行反復復号は、５回目の反復復号であり、前記第１の反復回数に対応する最後の列反復復号は、６回目の反復復号である。復号が反復的に実行され、かつ復号が成功するたびにターボ積符号を更新し、新しい復号後の前記ターボ積符号を取得するため、前記第１の反復回数に対応する最後の行反復復号と最後の列反復復号は、前記最後の行反復復号及び最後の列反復復号の前の反復復号情報を含む。前記第１の数閾値及び前記第２の数閾値は、対応するブロックコードの誤り訂正可能なシンボルの最大数に基づいて確定されてもよい。例えば、前記ターボ積符号を構成するブロックコードのコードパターンが（ｎ1，ｋ1，ｔ1）及び（ｎ2、ｋ2、ｔ2）であり、かつ前記ターボ積符号のサイズがｎ1＊ｎ2である場合、前記第１の数閾値は、ｔ1＋１に設定されてもよく、前記第２の数閾値は、ｔ2＋１に設定されてもよい。
【００４０】
前記行数が設定された第１の数閾値以上であり、かつ前記列数が設定された第２の数閾値以上であると判断する場合、前記第１の反復回数の反復復号が実行された前記ターボ積符号にデッドロック又はデッドロックのような構造が現れることを示すことが理解できる。
【００４１】
前記第１の反復回数の反復復号が実行されたターボ積符号のうち、復号が失敗したコードワードに対して反転操作を実行する前記ステップは、前記第１の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したすべてのコードワードに対して反転操作を実行するステップであってもよいし、前記第１の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したコードワードに対して反転操作を実行するステップであってもよく、それによってデッドロック又はデッドロックのような構造を破る。
【００４２】
例えば、前記第１の反復回数の反復復号が実行されたターボ積符号のうち、復号が失敗したコードワードに対して反転操作を実行する前記ステップは、前記第１の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗した前のｔ1＋１行及び前のｔ2＋１列のシンボルに対して反転操作を実行し、即ちシンボル１を１から０にし、０から１にするステップであってもよい。
【００４３】
このように、前記第１の反復回数に対応する最後の行反復復号を実行するときに復号が失敗した行数と最後の列反復復号を実行するときに復号が失敗した列数がそれぞれ対応する数閾値より大きいと判断する場合、前記第１の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したコードワードに対して反転操作を実行し、それによってデッドロック又はデッドロックのような構造をさらに正確に破り、復号の精度を向上させる。
【００４４】
１つの選択可能な実施例では、前記復号識別子に応じて、前記第１の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行する前記ステップは、前記復号識別子マトリックスに従って、復号が失敗したシンボルの数を取得するステップと、前記数と設定された第３の数閾値との間の関係に応じて、前記第１の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したシンボルに対して反転操作を実行するステップと、を含む。
【００４５】
ここで、前記復号識別子マトリックスに各シンボルに対応する復号結果が記録されているため、前記復号識別子マトリックスに従って、復号が失敗したシンボルの数を取得することができる。前記第３の数閾値は、実際のニーズに応じて設定されてもよく、例えば１０つ又は１６つなどに設定されてもよい。前記数と設定された第３の数閾値との間の関係に応じて、前記第１の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したコードワードに対して反転操作を実行する前記ステップは、前記数が設定された第３の数閾値より大きい場合、前記第１の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したコードワードの一部に対して反転操作を実行し、前記数が設定された第３の数閾値以下である場合、前記第１の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したすべてのコードワードに対して反転操作を実行するステップであってもよい。
【００４６】
例えば、前記復号識別子マトリックスにおける０の数、即ち復号が失敗したシンボルの数を取得し、かつ前記復号識別子マトリックスにおける０の数が設定された第３の数閾値より大きいと判断する場合、前記第１の反復回数の反復復号が実行されたターボ積符号のうち、復号が失敗したコードワードの一部に対して反転操作を実行する前記ステップは、前記第１の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗した前の（ｔ1＋１）＊（ｔ2＋１）つのシンボルに対して反転操作を実行するステップであってもよい。前記復号が失敗したシンボルの数が設定された第３の数閾値より大きいと判断する場合、前記第１の反復回数の反復復号が実行された前記ターボ積符号にデッドロック又はデッドロックのような構造が現れる可能性があることを示すことが理解できる。
【００４７】
このように、前記復号識別子マトリックスに従って、復号が失敗したシンボルの数を取得し、前記数と設定された第３の数閾値との間の関係に応じて、前記第１の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したシンボルに対して反転操作を実行し、それによってデッドロック又はデッドロックのような構造をさらに正確に破り、復号の精度を向上させる。
【００４８】
１つの選択可能な実施例では、前記復号識別子に応じて、前記第１の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行する前記ステップの後、誤り訂正処理が実行された前記ターボ積符号に対して、設定された第２の反復回数の反復復号を実行するステップと、第２の復号ルールに従って前記第２の反復回数の反復復号の復号結果を判断し、ターゲットターボ積符号を取得するステップと、をさらに含む。
【００４９】
誤り訂正処理が実行された前記ターボ積符号に対して、設定された第２の反復回数の反復復号を実行する前記ステップは、誤り訂正処理が実行された前記ターボ積符号に対して、設定された行及び列反復順序の第１の反復回数の反復復号を実行するステップを含む。前記行及び列反復順序は、行列反復順序であってもよいし、列行反復順序であってもよい。前記第１の反復回数が偶数である場合、前記受信コードワードに対して先に行反復復号を実行すると、誤り訂正処理が実行された前記ターボ積符号に対しても先に行反復復号を実行し、前記受信コードワードに対して先に列反復復号を実行すると、誤り訂正処理が実行された前記ターボ積符号に対しても先に列反復復号を実行する。
【００５０】
前記第１の反復回数が奇数である場合、前記受信コードワードに対して先に行反復復号を実行すると、誤り訂正処理が実行された前記ターボ積符号に対して先に行列反復復号を実行し、前記受信コードワードに対して先に列反復復号を実行すると、誤り訂正処理が実行された前記ターボ積符号に対して先に行反復復号を実行する。ここで、前記第２の反復回数は、実際のニーズに応じて設定されてもよく、例えば３回又は４回などに設定されてもよい。通常、前記第２の反復回数は、前記第１の反復回数よりも小さく設定されてもよい。前記第２の復号判定ルールは、実際のニーズに応じて設定されてもよく、例えば、前記第２の復号判定ルールは、前記第１の復号判定ルールの一部であってもよい。
【００５１】
このように、誤り訂正処理が実行された前記ターボ積符号に対して、設定された第２の反復回数の反復復号を実行することにより、誤り訂正処理後の前記ターボ積符号内の存在する可能性がある誤りシンボルに対して誤り訂正を実行し、復号の精度が向上する。
【００５２】
１つの選択可能な実施例では、第２の復号判定ルールに従って前記第２の反復回数の反復復号の復号結果を判断する前記ステップは、第２の復号判定ルールに従って前記第２の反復回数の反復復号の復号結果を判断するステップであって、前記第２の復号ルールが、前記コードパターンに応じて、受信コードワードが短縮コードであり、かつ復号後の前記受信コードワードの補足位置でのシンボルがすべて０ではないすべてが０であることでないと判断すると、前記受信コードワードの復号が失敗したと判断すること、前記コードパターンに応じて、前記受信コードワードが拡張コードであり、かつ前記受信コードワードの元のチェックビットが復号後の前記受信コードワードのチェックビットと異なると判断すると、前記受信コードワードの復号が失敗したと判断すること、復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しいと判断すると、前記受信コードワードの復号が成功したと判断することのうちの少なくとも１つを含むステップを含む。
【００５３】
ここで、前記受信コードワードは、誤り訂正処理が実行されたターボ積符号のすべてのコードワードである。
【００５４】
このように、第２の復号ルールにより受信コードワードに対して第２の反復回数の反復復号の復号結果を判断し、復号の精度を向上させる。
【００５５】
上記の方法を実現するために、本発明の実施例に対応してターボ積符号の復号装置を提供する。図２に示すように、前記ターボ積符号の復号装置は、ターボ積符号の受信コードワードを取得するように構成される取得モジュール１０と、前記受信コードワードに対して、設定された第１の反復回数の反復復号を実行し、第１の復号ルールに従って前記第１の反復回数の反復復号の復号結果を判断し、復号結果を表すための復号識別子を取得する順方向反復復号モジュール２０と、前記復号識別子に応じて、前記第１の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行するように構成されるデッドロック訂正モジュール３０と、を含む。
【００５６】
上述したように、上記の実施例によって提供されるターボ積符号の復号装置では、第１の復号ルールに従って前記第１の反復回数の反復復号の復号結果を判断して復号識別子を取得し、復号識別子により第１の反復回数の反復復号プロセスでの識別シンボルを記録することができ、それによって反復復号により取得された復号識別子に応じて、反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行することにより、前記ターボ積符号のデッドロック又はデッドロックのような構造を破って、ビットエラーフロアを効果的に回避することができる。
【００５７】
１つの選択可能な実施例では、前記取得モジュール１０は、さらに前記ターボ積符号を構成するブロックコードのコードパターンを取得するように構成され、前記コードパターンには誤り訂正可能なシンボルの最大数が含まれ、前記順方向反復復号モジュール２０は、具体的には、第１の復号ルールに従って前記第１の反復回数の反復復号の復号結果を判断し、前記第１の復号ルールが、前記コードパターンに応じて、前記受信コードワードが短縮コードであり、かつ復号後の前記受信コードワードの補足位置でのシンボルがすべて０ではないすべてが０であることでないと判断すると、前記受信コードワードの復号が失敗したと判断すること、前記コードパターンに応じて、前記受信コードワードが拡張コードであり、かつ前記受信コードワードの元のチェックビットが復号後の前記受信コードワードのチェックビットと異なると判断すると、前記受信コードワードの復号が失敗したと判断すること、復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、現在の反復復号回数が設定された反復復号回数閾値に等しく、かつ前回の反復復号プロセスで復号が失敗したコードワードの数が設定された閾値未満であると判断し、又は復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、かつ前記現在の反復復号回数が前記反復復号回数閾値に等しくないと判断すると、前記受信コードワードの復号が失敗したと判断することのうちの少なくとも１つを含み、判断結果に基づいて前記受信コードワードに対応する復号結果の復号識別子を確定するように構成される。
【００５８】
このように、設定された第１の復号ルールにより受信コードワードに対して第１の反復回数の反復復号の復号結果を判断し、判断結果に基づいて前記受信コードワードに対応する復号結果の復号識別子を確定し、それによって前記復号識別子に基づいて後の誤り訂正処理のための参照を提供して、誤り訂正の精度を向上させる。
【００５９】
１つの選択可能な実施例では、前記順方向反復復号モジュール２０は、具体的には、前記ターボ積符号のサイズに等しい復号識別子マトリックスを初期化し、判断結果に基づいて前記受信コードワードの各シンボルの前記復号識別子マトリックスにおける対応する位置での復号識別子を更新するように構成される。
【００６０】
このように、反復プロセスでの各シンボルの復号結果を知ることができるため、分析により、復号プロセスにデッドロック又はデッドロックのような構造が現れるか否かを知ることができ、後の誤り訂正処理のための参照を提供する。
【００６１】
１つの選択可能な実施例では、前記第１の復号ルールは、前記受信コードワードのシンボルに対して誤り訂正を実行し、かつ前記復号識別子マトリックスにおける前記シンボルに対応する復号識別子が、前記シンボルが正しく復号されたことを表すと、前記シンボルの復号が失敗したと判断することをさらに含む。
【００６２】
このように、シンボルの履歴復号結果により、シンボルの現在の復号結果を確定し、それによって復号結果の精度が向上する。
【００６３】
１つの選択可能な実施例では、前記デッドロック訂正モジュール３０は、具体的には、前記復号識別子に応じて、前記第１の反復回数に対応する最後の行反復復号を実行するときに復号が失敗した行数と最後の列反復復号を実行するときに復号が失敗した列数とを取得し、前記行数が設定された第１の数閾値以上であり、かつ前記列数が設定された第２の数閾値以上であると判断する場合、前記第１の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したコードワードに対して反転操作を実行するように構成される。
【００６４】
このように、前記第１の反復回数に対応する最後の反復復号を実行するときに復号が失敗した行数及び列数がそれぞれ対応する数閾値より大きいと判断する場合、前記第１の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したコードワードに対して反転操作を実行し、それによってデッドロック又はデッドロックのような構造をさらに正確に破り、復号の精度が向上する。
【００６５】
１つの選択可能な実施例では、前記デッドロック訂正モジュール３０は、具体的には、前記復号識別子マトリックスに従って、復号が失敗したシンボルの数を取得し、前記数と設定された第３の数閾値との間の関係に応じて、前記第１の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したシンボルに対して反転操作を実行するように構成される。
【００６６】
このように、前記復号識別子マトリックスに従って、復号が失敗したシンボルの数を取得し、前記数と設定された第３の数閾値との間の関係に応じて、前記第１の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したシンボルに対して反転操作を実行する。
【００６７】
１つの選択可能な実施例では、前記ターボ積符号の復号装置は、誤り訂正処理が実行された前記ターボ積符号に対して、設定された第２の反復回数の反復復号を実行し、第２の復号判定ルールに従って前記第２の反復回数の反復復号の復号結果を判断し、ターゲットターボ積符号を取得するように構成される逆方向反復復号モジュール４０をさらに含む。
【００６８】
このように、誤り訂正処理が実行された前記ターボ積符号に対して、設定された第２の反復回数の反復復号を実行することにより、誤り訂正処理が実行された前記ターボ積符号内の存在する可能性がある誤りシンボルに対して誤り訂正を実行し、復号の精度が向上する。
【００６９】
１つの選択可能な実施例では、前記逆方向反復復号モジュール４０は、具体的には、第２の復号判定ルールに従って前記第２の反復回数の反復復号の復号結果を判断するように構成され、前記第２の復号ルールは、前記コードパターンに応じて、受信コードワードが短縮コードであり、かつ復号後の前記受信コードワードの補足位置でのシンボルがすべて０ではないすべてが０であることでないと判断すると、前記受信コードワードの復号が失敗したと判断すること、前記コードパターンに応じて、前記受信コードワードが拡張コードであり、かつ前記受信コードワードの元のチェックビットが復号後の前記受信コードワードのチェックビットと異なると判断すると、前記受信コードワードの復号が失敗したと判断すること、復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しいと判断すると、前記受信コードワードの復号が成功したと判断することのうちの少なくとも１つを含む。
【００７０】
このように、第２の復号ルールにより受信コードワードに対して第２の反復回数の反復復号の復号結果を判断し、復号の精度を向上させる。
【００７１】
１つの選択可能な実施例では、前記デコーダーは、前記ターゲットターボ積符号を出力するように構成される復号結果出力モジュール５０をさらに含む。
【００７２】
上記の実施例によって提供されるターボ積符号の復号装置は、ターボ積符号の復号方法を実現するときに、上記の各プログラムモジュールの区分のみを例として説明するが、実際の応用において、上記の処理割り当ては、ニーズに応じて異なるプログラムモジュールによって完了されてもよく、即ち上記の処理のすべて又は一部は、ターボ積符号の復号装置の内部構造を異なるプログラムモジュールに分けて完了されてもよい。
【００７３】
なお、上記実施例によって提供されるターボ積符号の復号装置は、対応するターボ積符号の復号方法の実施例と同じ概念に属し、その具体的な実現プロセスについては、方法の実施例を参照するため、ここでは説明を省略する。
【００７４】
別の実施例では、本発明の実施例は、デコーダーをさらに提供する。図３に示すように、このデコーダーは、プロセッサ３１０と、プロセッサ３１０で実行可能なコンピュータプログラムを記憶するように構成されるメモリ３１１とを含み、ここで、図３に示すプロセッサ３１０は、プロセッサ３１０の数が１つであることを指すためのものではなく、他のデバイスに対するプロセッサ３１０の位置関係を指すためのものだけであり、実際の応用では、プロセッサ３１０の数は、１つ又は複数であってもよく、同様に、図３に示すメモリ３１１も同様の意味を有し、即ち他のデバイスに対するメモリ３１１の位置関係を指すためのものだけであり、実際の応用では、メモリ３１１の数は、１つ又は複数であってもよい。
【００７５】
前記プロセッサ３１０は、前記コンピュータプログラムを実行するとき、ターボ積符号の受信コードワードを取得し、前記受信コードワードに対して、設定された第１の反復回数の反復復号を実行するステップと、第１の復号ルールに従って前記第１の反復回数の反復復号の復号結果を判断し、復号結果を表すための復号識別子を取得するステップと、前記復号識別子に応じて、前記第１の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行するステップとを、実行するように構成される。
【００７６】
１つの選択可能な実施例では、前記プロセッサ３１０は、さらに、前記コンピュータプログラムを実行するとき、前記ターボ積符号を構成するブロックコードのコードパターンを取得するステップであって、前記コードパターンには誤り訂正可能なシンボルの最大数が含まれているステップと、第１の復号ルールに従って前記第１の反復回数の反復復号の復号結果を判断するステップであって、前記第１の復号ルールが、前記コードパターンに応じて、前記受信コードワードが短縮コードであり、かつ復号後の前記受信コードワードの補足位置でのシンボルがすべて０ではないすべてが０であることでないと判断すると、前記受信コードワードの復号が失敗したと判断すること、前記コードパターンに応じて、前記受信コードワードが拡張コードであり、かつ前記受信コードワードの元のチェックビットが復号後の前記受信コードワードのチェックビットと異なると判断すると、前記受信コードワードの復号が失敗したと判断すること、復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、現在の反復復号回数が設定された反復復号回数閾値に等しく、かつ前回の反復復号プロセスで復号が失敗したコードワードの数が設定された閾値未満であると判断し、又は復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、かつ前記現在の反復復号回数が前記反復復号回数閾値に等しくないと判断すると、前記受信コードワードの復号が失敗したと判断することのうちの少なくとも１つを含むステップと、判断結果に基づいて前記受信コードワードに対応する復号結果の復号識別子を確定するステップと、を実行するように構成される。
【００７７】
１つの選択可能な実施例では、前記プロセッサ３１０はさらに、前記コンピュータプログラムを実行するとき、前記ターボ積符号のサイズに等しい復号識別子マトリックスを初期化するステップと、判断結果に基づいて前記受信コードワードの各シンボルの前記復号識別子マトリックスにおける対応する位置での復号識別子を更新するステップを実行するように構成される。
【００７８】
１つの選択可能な実施例では、前記プロセッサ３１０はさらに、前記コンピュータプログラムを実行するとき、前記復号識別子に応じて、前記第１の反復回数に対応する最後の行反復復号を実行するときに復号が失敗した行数と最後の列反復復号を実行するときに復号が失敗した列数とを取得するステップと、前記行数が設定された第１の数閾値以上であり、かつ前記列数が設定された第２の数閾値以上であると判断する場合、前記第１の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したコードワードに対して反転操作を実行するステップと、を実行するように構成される。
【００７９】
１つの選択可能な実施例では、前記プロセッサ３１０は、さらに、前記コンピュータプログラムを実行するとき、前記復号識別子マトリックスに従って、復号が失敗したシンボルの数を取得するステップと、前記数と設定された第３の数閾値との間の関係に応じて、前記第１の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したシンボルに対して反転操作を実行するステップとを、実行するように構成される。
【００８０】
１つの選択可能な実施例では、前記プロセッサ３１０は、さらに、前記コンピュータプログラムを実行するとき、誤り訂正処理が実行された前記ターボ積符号に対して、設定された第２の反復回数の反復復号を実行するステップと、設定された第２の復号判定ルールに従って前記第２の反復回数の反復復号の復号結果を判断し、ターゲットターボ積符号を取得するステップと、を実行するように構成される。
【００８１】
１つの選択可能な実施例では、前記プロセッサ３１０はさらに、前記コンピュータプログラムを実行するとき、第２の復号判定ルールに従って前記第２の反復回数の反復復号の復号結果を判断するステップであって、前記第２の復号ルールが、前記コードパターンに応じて、受信コードワードが短縮コードであり、かつ復号後の前記受信コードワードの補足位置でのシンボルがすべて０ではないすべてが０であることでないと判断すると、前記受信コードワードの復号が失敗したと判断すること、前記コードパターンに応じて、前記受信コードワードが拡張コードであり、かつ前記受信コードワードの元のチェックビットが復号後の前記受信コードワードのチェックビットと異なると判断すると、前記受信コードワードの復号が失敗したと判断すること、復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しいと判断すると、前記受信コードワードの復号が成功したと判断することのうちの少なくとも１つを含むステップを実行するように構成される。
【００８２】
このデコーダーは、少なくとも１つの少なくとも１つのネットワークインターフェース３１２をさらに含む。このデコーダーでの各部材は、バスシステム３１３を介して結合される。バスシステム３１３はこれらの部材間の接続通信を実現するために使用されることが理解できる。バスシステム３１３は、データバスに加えて、電源バス、制御バスと状態信号バスを含む。しかしながら、説明を明確にするために、図３では様々なバスシステムは、バスシステム３１３としてマーキングされる。
【００８３】
ここで、メモリ３１１は、揮発性メモリ又は不揮発性メモリであってもよく、揮発性メモリ及び不揮発性メモリの両方を含むこともできる。ここで、不揮発性メモリは、読み取り専用メモリ（ＲＯＭ：Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、プログラマブル読み取り専用メモリ（ＰＲＯＭ：Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭ：Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、電気的消去可能プログラマブル読み取り専用メモリ（ＥＥＰＲＯＭ：Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、磁気ランダムアクセスメモリ（ＦＲＡＭ：ｆｅｒｒｏｍａｇｎｅｔｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、フラッシュメモリ（Ｆｌａｓｈ  Ｍｅｍｏｒｙ）、磁気表面メモリ、光ディスク、又は読み取り専用光ディスク（ＣＤ−ＲＯＭ：Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）であってもよく、磁気表面メモリは、磁気ディスクメモリ又は磁気テープメモリであってもよい。
【００８４】
揮発性記憶装置は、外部キャッシュメモリとして機能するランダムアクセスメモリ（ＲＡＭ：Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）であってもよい。制限的でなく例示的な説明により、多くの形態のＲＡＭは、利用可能であり、例えばスタティックランダムアクセスメモリ（ＳＲＡＭ：Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、同期静的ランダムアクセスメモリ（ＳＳＲＡＭ：Ｓｙｎｃｈｒｏｎｏｕｓ  Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、動的ランダムアクセスメモリ（ＤＲＡＭ：Ｓｙｎｃｈｒｏｎｏｕｓ  Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、同期動的ランダムアクセスメモリ（ＳＤＲＡＭ：Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ダブルデータレート同期動的ランダムアクセスメモリ（ＤＤＲＳＤＲＡＭ：Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ  Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、強化型同期動的ランダムアクセスメモリ（ＥＳＤＲＡＭ：Ｅｎｈａｎｃｅｄ  Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、同期リンク動的ランダムアクセスメモリ（ＳＬＤＲＡＭ：ＳｙｎｃＬｉｎｋ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、直接ラムバスランダムアクセスメモリ（ＤＲＲＡＭ：Ｄｉｒｅｃｔ  Ｒａｍｂｕｓ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）であってもよい。
【００８５】
本発明の実施例に記載されるメモリ３１１は、これらと任意の他の適切なタイプのメモリを含むことを図るがこれらに限定されない。
【００８６】
本発明の実施例におけるメモリ３１１は、様々なタイプのデータを記憶してこのデコーダーの動作をサポートするように構成される。これらのデータの例は、オペレーティングシステムやアプリケーションなどのこのデコーダーで動作するためのコンピュータプログラム、連絡先データ、電話帳データ、メッセージ、ピクチャー、ビデオなどを含む。ここで、オペレーティングシステムは、様々なシステムプログラム、例えばフレームワークレイヤー、コアライブラリレイヤー、ドライバーレイヤーなどを含み、様々な基本サービスの実現、及びハードウェアに基づくタスクの処理に使用される。アプリケーションプログラムは、例えばメディアプレーヤー（Ｍｅｄｉａ  Ｐｌａｙｅｒ）、ブラウザ（Ｂｒｏｗｓｅｒ）などの様々なアプリケーションプログラムを含むことができ、様々なアプリケーションサービスを実現するために使用される。
【００８７】
ここで、本発明の実施例の方法を実現するためのプログラムは、アプリケーションプログラムに含まれてもよい。
【００８８】
本実施例はさらにコンピュータ記憶媒体を提供する。前記コンピュータ記憶媒体にはコンピュータプログラムが記憶され、前記コンピュータ記憶媒体は、磁気ランダムアクセスメモリ（ＦＲＡＭ：ｆｅｒｒｏｍａｇｎｅｔｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、読み取り専用メモリ（ＲＯＭ：Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、プログラマブル読み取り専用メモリ（ＰＲＯＭ：Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭ：Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、電気的消去可能プログラマブル読み取り専用メモリ（ＥＥＰＲＯＭ：Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ（Ｆｌａｓｈ  Ｍｅｍｏｒｙ）、磁気表面メモリ、光ディスク、又は読み取り専用光ディスク（ＣＤ−ＲＯＭ：Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）などのメモリであってもよいし、携帯電話、コンピュータ、タブレットデバイス、パーソナルデジタルアシスタントなどの、上記メモリの１つの又は任意の組み合わせを含む様々なデバイスであってもよい。
【００８９】
コンピュータ記憶媒体であって、前記コンピュータ記憶媒体にはコンピュータプログラムが記憶され、前記コンピュータプログラムがプロセッサに実行されるとき、ターボ積符号の受信コードワードを取得し、前記受信コードワードに対して、設定された第１の反復回数の反復復号を実行するステップと、第１の復号ルールに従って前記第１の反復回数の反復復号の復号結果を判断し、復号結果を表すための復号識別子を取得するステップと、前記復号識別子に応じて、前記第１の反復回数の反復復号が実行された前記ターボ積符号に対して誤り訂正処理を実行するステップと、を実行する。
【００９０】
１つの選択可能な実施例では、前記コンピュータプログラムがプロセッサに実行されるとき、前記ターボ積符号を構成するブロックコードのコードパターンを取得するステップであって、前記コードパターンには誤り訂正可能なシンボルの最大数が含まれるステップと、第１の復号ルールに従って前記第１の反復回数の反復復号の復号結果を判断するステップであって、前記第１の復号ルールが、前記コードパターンに応じて、前記受信コードワードが短縮コードであり、かつ復号後の前記受信コードワードの補足位置でのシンボルがすべて０ではないすべてが０であることでないと判断すると、前記受信コードワードの復号が失敗したと判断すること、前記コードパターンに応じて、前記受信コードワードが拡張コードであり、かつ前記受信コードワードの元のチェックビットが復号後の前記受信コードワードのチェックビットと異なると判断すると、前記受信コードワードの復号が失敗したと判断すること、復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、現在の反復復号回数が設定された反復復号回数閾値に等しく、かつ前回の反復復号プロセスで復号が失敗したコードワードの数が設定された閾値未満であると判断し、又は復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しく、かつ前記現在の反復復号回数が前記反復復号回数閾値に等しくないと判断すると、前記受信コードワードの復号が失敗したと判断することのうちの少なくとも１つを含むステップと、判断結果に基づいて前記受信コードワードに対応する復号結果の復号識別子を確定するステップをさらに実行する。
【００９１】
１つの選択可能な実施例では、前記コンピュータプログラムがプロセッサに実行されるとき、前記ターボ積符号のサイズに等しい復号識別子マトリックスを初期化するステップと、判断結果に基づいて前記受信コードワードの各シンボルの前記復号識別子マトリックスにおける対応する位置での復号識別子を更新するステップとをさらに実行する。
【００９２】
１つの選択可能な実施例では、前記コンピュータプログラムがプロセッサに実行されるとき、前記復号識別子に応じて、前記第１の反復回数に対応する最後の行反復復号を実行するときに復号が失敗した行数と最後の列反復復号を実行するときに復号が失敗した列数とを取得するステップと、前記行数が設定された第１の数閾値以上であり、かつ前記列数が設定された第２の数閾値以上であると判断する場合、前記第１の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したコードワードに対して反転操作を実行するステップと、をさらに実行する。
【００９３】
１つの選択可能な実施例では、前記コンピュータプログラムがプロセッサに実行されるとき、前記復号識別子マトリックスに従って、復号が失敗したシンボルの数を取得するステップと、前記数と設定された第３の数閾値との間の関係に応じて、前記第１の反復回数の反復復号が実行された前記ターボ積符号のうち、復号が失敗したシンボルに対して反転操作を実行するステップを、さらに実行する。
【００９４】
１つの選択可能な実施例では、前記コンピュータプログラムがプロセッサに実行されるとき、誤り訂正処理が実行された前記ターボ積符号に対して、設定された第２の反復回数の反復復号を実行するステップと、第２の復号判定ルールに従って前記第２の反復回数の反復復号の復号結果を判断し、ターゲットターボ積符号を取得するステップと、をさらに実行する。
【００９５】
１つの選択可能な実施例では、前記コンピュータプログラムがプロセッサに実行されるとき、第２の復号判定ルールに従って前記第２の反復回数の反復復号の復号結果を判断するステップであって、前記第２の復号ルールが、前記コードパターンに応じて、受信コードワードが短縮コードであり、かつ復号後の前記受信コードワードの補足位置でのシンボルがすべて０ではないすべてが０であることでないと判断すると、前記受信コードワードの復号が失敗したと判断すること、前記コードパターンに応じて、前記受信コードワードが拡張コードであり、かつ前記受信コードワードの元のチェックビットが復号後の前記受信コードワードのチェックビットと異なると判断すると、前記受信コードワードの復号が失敗したと判断すること、復号後の前記受信コードワードの誤り訂正シンボルの数が前記受信コードワードの誤り訂正可能なシンボルの最大数に等しいと判断すると、前記受信コードワードの復号が成功したと判断することのうちの少なくとも１つを含むステップを、さらに実行する。
【００９６】
以下に本発明の実施例を具体的な例でさらに詳しく説明する。図４を参照すると、本発明の１つの選択可能な具体的実施例によって提供されるターボ積符号の復号方法は、ステップ２０１〜２０４を含む。
【００９７】
ステップＳ２０１において、ターボ積符号の受信コードワード及びコードパターン、反復パラメータを取得する。ここで、ターボ積符号は、２組以上のブロックコードのコードワードを１つの２次元又は多次元のマトリックスに配列することにより、サブコードが最小距離特性を持つ積符号を構成する。ターボ積符号のコードパターンは、（１２８，１２０）×（１２８，１２０）、（１２８，１２７）×（１２８，１２７）、（６４，５７）×（６４，５７）、（３２，２６）×（１６，１５）×（８，７）などを含む。送信側で情報を送信する場合、ターボ積符号は、行毎にビット単位でシリアルに送信され、受信側では、受信されたシリアルシーケンスは、２次元マトリックス形態に変換され、次にマトリックス構造によって復号される。
【００９８】
ターボ積符号の複雑さ及び復号の遅延は、サブコードのパターンに依存し、サブコードの構成の複雑さ及び復号の複雑さの増加とともに線形的に増加する。受信コードワードに基づいて前記受信コードワードのコードパターンを判別することができないことから、後の復号のために、受信コードワードｒ＿ｉｎとコードパターンを同時に取得し、順方向反復復号回数と逆方向反復復号回数を設定する必要がある。本実施例では、ターボ積符号の行列反復復号に使用されるコードパターンは、（ｎ1，ｋ1，ｔ1）と（ｎ2，ｋ2，ｔ2）であり、ここで、ｎiがコード長であり、ｋiが情報長であり、ｔiが誤り訂正能力であり、ｉがセット｛１，２｝に属する。前記反復パラメータは、順次方向反復復号回数ｍ１と逆方向反復復号回数ｍ２を含む。
【００９９】
ステップＳ２０２において、反復パラメータに基づいて受信コードワードに対して順方向反復復号を実行し、パラメータ記録を実行し、復号識別子マトリックスがある場合、まず復号識別子マトリックスを初期化し、即ちターボ積符号のコードブロックのサイズに従ってビットデータごとに復号識別子を記憶し、前記復号識別子マトリックスのサイズがターボ積符号のサイズであり、初期値がすべて０に付与される。
【０１００】
受信コードワードｒ＿ｉｎに対して順方向反復復号回数ｍ1の順方向反復復号を実行し、かつ順方向反復復号が行反復復号と列反復復号の交互復号である場合、判断条件は、次のことを含む。
【０１０１】
１）コードワードのコードパターンが短縮コードであると、復号後の前記コードワードの補足位置がすべて０であるか否かを判断し、すべて０ではないすべてが０であることでない場合、復号が失敗したことを示す。
【０１０２】
２）コードワードのコードパターンが拡張コードである場合、復号後の前記コードワードに対してＸＯＲ計算を実行して得られたチェックビットが復号前の前記コードワードの元のチェックビットと同じであるか否かを判断し、同じではない場合、復号が失敗したことを示す。
【０１０３】
３）復号識別子マトリックスがあり、かつあるコードワードを復号する場合、前記復号識別子マトリックス内の誤り訂正されたシンボルの復号識別子が１であると、復号が失敗したと認められる。
【０１０４】
４）あるコードワードを復号する場合、誤り訂正されたシンボルの数がこのコードワード復号の誤り訂正能力限界であると、復号が失敗したと判断し、しかし、現在の反復復号回数が設定された反復復号回数閾値に等しくかつ現在の反復復号の前回の反復復号プロセスでの復号が誤った行数又は列数が大きいと、現在の反復復号では誤り訂正されたシンボルの数がコードワード復号化の誤り訂正能力限界であるという復号状況は、復号が成功したと認められる。
【０１０５】
このように、前方反復復号により誤りシンボルの数を減らすことができる。
【０１０６】
ステップＳ２０３において、記録されたパラメータを使用してデッドロック構造又はデッドロックのような構造を反転させる。復号識別子マトリックスがある場合、復号識別子マトリックス内の０の個数を判断し、復号識別子マトリックスにおける０の個数が設定された閾値ｎｕｍ1よりも大きい場合、復号が誤った前の（ｔ1＋１）＊（ｔ2＋１）個のシンボルに対して反転操作を行い、復号識別子マトリックスにおける０の個数が設定された閾値ｎｕｍ1よりも小さい場合、復号識別子マトリックスにおける０の位置に対応するデータ、即ち復号が誤ったシンボルをすべて反転する。
【０１０７】
復号識別子マトリックスがない場合、順方向反復復号の最後の行反復復号と最後の列反復復号を実行するときに、復号誤りに対応する行番号及び列番号をそれぞれ記録し、復号が誤った行番号がｔ1＋１以上であり、かつ復号が誤った列番号がｔ2＋１以上であると、誤ったコードワードの前のｔ1＋１行とｔ2＋１列のデータを反転し、又は一部のデータを選択して反転し、それによってデッドロック構造を破る。
【０１０８】
ステップＳ２０４において、反転された受信コードワードに対して反復復号を実行する。反転された受信コードワードに対して逆方向反復回数ｍ２の逆方向反復復号を実行するとき、判断条件は、次のことを含む。
【０１０９】
５）コードワードのコードパターンが短縮コードであると、復号後の前記コードワードの補足位置がすべて０であるか否かを判断し、すべて０ではないすべてが０であることでない場合、復号が失敗したことを示す。
【０１１０】
６）コードワードのコードパターンが拡張コードである場合、復号後の前記コードワードに対してＸＯＲ計算を実行して得られたチェックビットが復号前の前記コードワードの元のチェックビットと同じであるか否かを判断し、同じではない場合、復号が失敗したことを示す。
【０１１１】
７）あるコードワードを復号するとき、誤り訂正されたシンボルの数がこのコードワード復号の誤り訂正能力限界であると、復号が成功したと認められる。最後に、反復復号が完了された後、更新されたｒ＿ｉｎを出力する。
【０１１２】
このように、逆方向反復復号により、順方向反復復号後に存在する可能性がある誤りシンボルに対して誤り訂正を実行し、これにより、復号の不十分な部分が除去される。
【０１１３】
１つの例示的な実施例では、図５を参照すると、本実施例が基づく応用シーンは、復号識別子マトリックスが存在することである。前記反復パラメータに基づいて受信コードワードに対して順方向反復復号を実行し、パラメータ記録を実行する前記ステップは、次のステップＳ２０２１〜Ｓ２０２８を含む。ステップＳ２０２１において、受信コードワードを取得し、短縮コードであるか否か、補足ビットが０であるか否かを判断し、そうである場合、ステップＳ２０２２を実行し、そうでない場合、ステップＳ２０２７を実行し、ここで、順方向反復復号の順序に従ってターボ積符号から受信コードワードを順次取得し、このコードワードのコードパターンが短縮コードであるか否かを判断し、このコードワードのコードパターンが短縮コードである場合、復号後のこのコードワードの補足ビットがすべて０であるか否かを判断し、すべて０ではないすべてが０であることでない場合、復号が失敗したことを示す。
【０１１４】
ステップＳ２０２２において、拡張コードであるか否か、かつチェックビットが元のチェックビットと同じであるか否かを判断し、そうである場合、ステップＳ２０２３を実行し、そうでない場合、ステップＳ２０２７を実行し、ここで、このコードワードのコードパターンが拡張コードであるか否かを判断し、このコードワードのコードパターンが拡張コードである場合、復号後のこのコードワードに対してＸＯＲ計算を実行して得られたチェックビットが復号前のこのコードワードの元のチェックビットと同じであるか否かを判断し、同じではない場合、復号が失敗したことを示す。
【０１１５】
ステップＳ２０２３において、誤り訂正シンボルの数が誤り訂正可能なシンボルの最大数に等しいか否かを判断し、そうである場合、ステップＳ２０２４を実行し、そうでない場合、ステップＳ２０２５を実行し、具体的には、このコードワードが復号された後の誤り訂正シンボルの数がこのコードワードの誤り訂正可能なシンボルの最大数に等しいか否かを判断し、等しい場合、ステップＳ２０２４を実行し、そうでない場合、ステップＳ２０２５を実行する。
【０１１６】
ステップＳ２０２４において、現在の反復回数が設定された回数閾値であるか否か、前回の反復復号プロセスで復号が失敗したコードワードの数が設定された閾値よりも大きいか否かを判断し、そうである場合、ステップＳ２０２５を実行し、そうでない場合、ステップＳ２０２７を実行し、ここで、前記回数閾値は、実際のニューズに応じて設定されてもよく、反復復号を開始するたびに、対応する反復回数を記録する。前記閾値は、実際のニーズに応じて設定されてもよく、例えば５つ又は６つなどに設定されてもよい。
【０１１７】
ステップＳ２０２５において、誤り訂正シンボルの数が誤り訂正可能なシンボルの最大数に等しいか否かを判断し、そうである場合、ステップＳ２０２５を実行し、そうでない場合、ステップＳ２０２７を実行し、具体的には、このコードワードが復号された後の誤り訂正シンボルの数がこのコードワードの誤り訂正可能なシンボルの最大数に等しいか否かを判断し、等しい場合、ステップＳ２０２５を実行し、そうでない場合、ステップＳ２０２７を実行する。
【０１１８】
ステップＳ２０２５において、誤り訂正位置の元の復号識別子が１であるか否かを判断し、そうでない場合、ステップＳ２０２６を実行し、そうでない場合、ステップＳ２０２７を実行する。ここで、このコードワードを復号した後、このコードワードにおける現在の誤りが訂正されたシンボル即ち誤り訂正位置の前記復号識別子マトリックスにおける復号識別子が１であると、このコードワードの復号が失敗したと認められる。
【０１１９】
ステップＳ２０２６において、受信されたターボ積符号を更新し、具体的には、正しく復号された行番号又は列番号に対応する復号結果をｒ＿ｉｎに対応する値に更新し、それによって受信されたターボ積符号の更新を完了する。順方向反復復号の最後の行反復復号を実行するときに、正しく復号された行番号Ｋ＿ｉｄ１を記録し、最後の列反復復号を実行するときに、正しく復号された列番号Ｋ＿ｉｄ２を記録する。
【０１２０】
ステップＳ２０２７において、復号識別子マトリックスを更新し、具体的には、復号結果に基づいて復号識別子マトリックスを更新する。コードワードの復号が成功した場合、復号識別子マトリックスにおけるこのコードワードの所在する行又は列をすべて１に設定し、コードワードの復号が失敗した場合、復号識別子マトリックスにおけるこのコードワードの所在する行又は列をすべて０に設定する。
【０１２１】
ステップＳ２０２８において、現在の反復復号回数が順方向反復復号回数よりも小さいか否かを判断し、そうである場合、ステップＳ２０２１に戻り、そうでない場合、終了する。
【０１２２】
復号識別子マトリックスがある場合、デッドロック構造の反転は以下の条件に応じて実行されてもよいことが説明すべきである。
【０１２３】
１）Ｋ＿ｉｄ１が全行番号であるか、Ｋ＿ｉｄ２が全列番号である場合、復号結果をｒ＿ｉｎに更新し、後復号反復を実行する。
【０１２４】
２）復号識別子マトリックスにおける０の個数を判断し、前記個数が設定された閾値ｎｕｍ１よりも大きい場合、前記復号識別子マトリックスにおける前の（ｔ1＋１）＊（ｔ2＋１）個の０に対応する位置のｒ＿ｉｎをビットで反転し、そうでない場合、すべての０に対応する位置のｒ＿ｉｎを反転する。
【０１２５】
この実施例では、復号識別子マトリックスを追加することにより、復号が成功したか否かを判断し、コードワードが元々正しいが、他のコードワードの影響により繰り返し変更するという問題を解決する。
【０１２６】
１つの例示的な実施例では、図６を参照すると、本実施例が基づく応用シーンは、復号識別子マトリックスが存在しないことである。前記反復パラメータに基づいて受信コードワードに対して順方向反復復号を実行し、パラメータ記録を実行する前記ステップは、次のステップＳ３０２１〜Ｓ３０２６を含む。ステップＳ３０２１において、受信コードワードを取得し、短縮コードであるか否か、補足ビットが０であるか否かを判断し、そうである場合、ステップＳ３０２２を実行し、そうでない場合、ステップＳ３０２６を実行し、ここで、順方向反復復号の順序に従ってターボ積符号から受信コードワードを順次取得し、このコードワードのコードパターンが短縮コードであるか否かを判断し、このコードワードのコードパターンが短縮コードであると、復号後のこのコードワードの補足位置がすべて０であるか否かを判断し、すべて０ではないすべてが０であることでない場合、復号が失敗したことを示す。
【０１２７】
ステップＳ３０２２において、拡張コードであるか否か、かつチェックビットが元のチェックビットと同じであるか否かを判断し、そうである場合、ステップＳ３０２３を実行し、そうでない場合、ステップＳ３０２６を実行し、ここで、このコードワードのコードパターンが拡張コードであるか否かを判断し、このコードワードのコードパターンが拡張コードである場合、復号後のこのコードワードに対してＸＯＲ計算を実行して得られたチェックビットが復号前のこのコードワードの元のチェックビットと同じであるか否かを判断し、同じではない場合、復号が失敗したことを示す。
【０１２８】
ステップＳ３０２３において、誤り訂正シンボルの数が誤り訂正可能なシンボルの最大数に等しいか否かを判断し、そうである場合、ステップＳ３０２４を実行し、そうでない場合、ステップＳ３０２５を実行し、具体的には、このコードワードが復号された後の誤り訂正シンボルの数がこのコードワードの誤り訂正可能なシンボルの最大数に等しいか否かを判断し、等しい場合、ステップＳ３０２４を実行し、そうでない場合、ステップＳ３０２５を実行する。
【０１２９】
ステップＳ３０２４において、現在の反復回数が設定された回数閾値であるか否か、前回の反復復号プロセスで復号が失敗したコードワードの数が設定された閾値よりも大きいか否かを判断し、そうである場合、ステップＳ３０２５を実行し、そうでない場合、ステップＳ３０２６を実行し、ここで、前記回数閾値は、実際のニューズに応じて設定されてもよく、反復復号を開始するたびに、対応する反復回数を記録する。前記閾値は、実際のニーズに応じて設定されてもよく、例えば５つ又は６つなどに設定されてもよい。
【０１３０】
ステップＳ３０２５において、受信されたターボ積符号を更新し、具体的には、正しく復号された行番号又は列番号に対応する復号結果をｒ＿ｉｎに対応する値に更新し、それによって受信されたターボ積符号の更新を完了する。順方向反復復号の最後の行反復復号を実行するときに正しく復号された行番号Ｋ＿ｉｄ１を記録し、最後の列反復復号を実行するときに正しく復号された列番号Ｋ＿ｉｄ２を記録する。
【０１３１】
ステップＳ３０２６において、現在の反復復号回数が順方向反復復号回数よりも小さいか否かを判断し、そうである場合、ステップＳ３０２１に戻り、そうでない場合、終了する。
【０１３２】
この実施例では、復号識別子マトリックスは省略され、誤り訂正限界の状況は、デッドロック訂正結果又はデッドロックのような構造の前に変更しないように維持され、より多くの誤りの増加を防止する。誤りが多い場合、誤り訂正限界の状況は、復号が成功したと見なされ、復号はより柔軟になる。
【０１３３】
１つの例示的な実施例では、図７を参照すると、反転された受信コードワードに対して逆方向反復復号を実行する前記ステップは、次のステップＳ４０２１〜Ｓ４０２５を含む。ステップＳ４０２１において、受信コードワードを取得し、ここで、逆方向反復復号の順序に従って、更新されたターボ積符号から受信コードワードを順次取得する。
【０１３４】
ステップＳ４０２２において、短縮コードであるか否か、補足ビットが０であるか否かを判断し、そうである場合、ステップＳ４０２２を実行し、そうでない場合、ステップＳ４０２５を実行し、ここで、このコードワードのコードパターンが短縮コードであるか否かを判断し、このコードワードのコードパターンが短縮コードであると、復号後のこのコードワードの補足ビットがすべて０であるか否かを判断し、すべて０ではないすべてが０であることでない場合、復号が失敗したことを示す。
【０１３５】
ステップＳ４０２３において、拡張コードであるか否か、かつチェックビットが元のチェックビットと同じであるか否かを判断し、そうである場合、ステップＳ４０２４を実行し、そうでない場合、ステップＳ４０２５を実行し、ここで、コードワードのコードパターンが拡張コードであるか否かを判断し、コードワードのコードパターンが拡張コードである場合、復号後のこのコードワードに対してＸＯＲ計算を実行して得られたチェックビットが復号前の前記コードワードの元のチェックビットと同じであるか否かを判断し、同じではない場合、復号が失敗したことを示す。
【０１３６】
ステップＳ４０２４において、受信されたターボ積符号を更新し、ここで、コードワードの復号が成功したと判断した後、復号結果に基づいて、受信されたターボ積符号を更新する。
【０１３７】
ステップＳ４０２５において、現在の反復復号回数が逆方向反復復号回数よりも小さいか否かを判断し、そうである場合、ステップＳ４０２１に戻り、そうでない場合、終了する。
【０１３８】
ここで、反復復号を開始するたびに、現在の反復復号回数を更新する。
【０１３９】
上記の方法を実現するために、図２を再度参照すると、本発明の１つの選択可能な具体的実施例に係るターボ積符号の復号装置は、ターボ積符号の受信コードワード及びコードパターン、反復パラメータを取得するように構成される取得モジュール１０と、復号識別子マトリックスを確立し、受信コードワードに対して硬判定を実行して復号コードワードを取得し、コードパターン及び判定条件に応じて、復号が成功したか否かを判定し、復号識別子マトリックスを更新するように構成される順方向反復復号モジュール２０と、復号識別子マトリックスに従って、誤る可能性があるビットを反転するように構成されるデッドロック訂正モジュール３０と、前記受信コードワードに対して逆方向反復復号を実行し、与えられた判断条件に応じて復号が成功したか否かを判断するように構成される逆方向反復復号モジュール４０と、前記受信コードワードの復号結果を出力するように構成される復号結果出力モジュール５０とを含む。
【０１４０】
ここで、前記コードパターンは、コード長、情報長及び誤り訂正能力を含む。前記デッドロック訂正モジュール３０は、復号識別子マトリックスに従って誤る可能性があるビットを反転し、コードブロックに含まれる誤りの数に基づいてそれを閾値と比較し、それが閾値より大きいと、反転された誤り位置の数は（ｔ1＋１）＊（ｔ2＋１）つであってもよく、ｔ1、ｔ2がそれぞれ誤り訂正能力である。逆方向反復復号モジュール４０の逆方向反復復号プロセスにより、デッドロック訂正結果後の残りの誤りビットを除去する。
【０１４１】
以上は、本発明の具体的な実施形態だけであるが、本発明の保護範囲は、これに制限されず、当業者が本発明に開示された技術範囲内で容易に想到し得る変化又は入れ替わりがすべて本発明の保護範囲以内に含まれるべきである。本発明の保護範囲は、前記特許請求の保護範囲に準拠するべきである。
【図１】
2022500918.tif 000003
【図２】
2022500918.tif 000004
【図３】
2022500918.tif 000005
【図４】
2022500918.tif 000006
【図５】
2022500918.tif 000007
【図６】
2022500918.tif 000008
【図７】
2022500918.tif 000009
【国際調査報告】
2022500918.tif 000010
2022500918.tif 000011
2022500918.tif 000012
2022500918.tif 000013