(57)【要約】【課題】ＬＤＰＣコードを用いた符号化または復号化方法に必要なパリティ検査行列を保存するためのメモリ、符号化または復号化に必要な計算量及び複雑度を減少できるＬＤＰＣコードを用いた符号化または復号化方法を提供する。また、パリティ検査行列Ｈの４−サイクルや６−サイクルを最小化することで、性能が改善されたＬＤＰＣコードを用いた符号化及び復号化方法を提供する。【解決手段】入力データを、Ｈ＝［Ｈｄ｜Ｈｐ］（Ｈｄは、（ｎ−ｋ）×ｋで、Ｈｐは、（ｎ−ｋ）×（ｎ−ｋ）次元で、ｋは、入力データのビット数で、ｎは、コードワードのビット数である）の構成を有するパリティ検査行列Ｈを用いて符号化する段階を含み、前記Ｈｄが多数のサブ行列で構成された場合、各サブ行列は、行及び列の重みにおいて一定の規則性を有することを特徴とするＬＤＰＣコードを用いた符号化方法を構成する。【選択図】図１
2008508776.tif 000002
【特許請求の範囲】
【請求項１】
ＬＤＰＣ（Ｌｏｗ  Ｄｅｎｓｉｔｙ  Ｐａｒｉｔｙ  Ｃｈｅｃｋ）コードを用いた符号化方法において、
入力データを、Ｈ＝［Ｈｄ｜Ｈｐ］（Ｈｄは、（ｎ−ｋ）×ｋで、Ｈｐは、（ｎ−ｋ）×（ｎ−ｋ）次元で、ｋは、入力データのビット数で、ｎは、コードワードのビット数である）の構成を有するパリティ検査行列Ｈを用いて符号化する段階を含み、
前記Ｈｄが多数のサブ行列で構成された場合、各サブ行列は、行及び列の重みにおいて一定の規則性を有することを特徴とするＬＤＰＣコードを用いた符号化方法。
【請求項２】
前記Ｈｄが（ｎ−ｋ）／ｍ×ｋ次元を有するｍ個のサブ行列で構成された場合、前記ｍ個のサブ行列のうち一つの特定のサブ行列のｊ番目行は、前記特定のサブ行列の全ての列の重みが１との条件下で、Ｗｊ個の連続的な１を有することを特徴とする請求項１に記載のＬＤＰＣコードを用いた符号化方法。
【請求項３】
前記Ｗｊは、前記特定のサブ行列の全ての行に対して同一であることを特徴とする請求項２に記載の符号化方法。
【請求項４】
前記Ｗｊは、前記特定のサブ行列の全ての行に対して不規則的に増加または減少することを特徴とする請求項２に記載のＬＤＰＣコードを用いた符号化方法。
【請求項５】
前記Ｈｄが（ｎ−ｋ）／ｍ×（ｎ−ｋ）／ｍ次元を有する多数のサブ行列で構成された場合、前記Ｈｄを構成する任意のサブ行列の行及び列の重みは、１であることを特徴とする請求項１に記載のＬＤＰＣコードを用いた符号化方法。
【請求項６】
前記Ｈｄ全体の任意の何れか二つの行は、二つ以上の列で同時に１を持たないことを特徴とする請求項１乃至５のうち何れか１項に記載のＬＤＰＣコードを用いた符号化方法。
【請求項７】
前記Ｈｄ全体の任意の三つの行から選択された全ての組み合わせ可能な二つの行が同一地点で１を有する場合、既に設定された臨界値（Ｃｍａｘ）以下であることを特徴とする請求項６に記載のＬＤＰＣコードを用いた符号化方法。
【請求項８】
前記パリティ検査行列Ｈ全体の任意の何れか二つの行は、二つ以上の列で同時に１を持たないことを特徴とする請求項１乃至５のうち何れか１項に記載のＬＤＰＣコードを用いた符号化方法。
【請求項９】
前記パリティ検査行列Ｈの任意の三つの行から選択された全ての組み合わせ可能な二つの行が同一地点で１を有する場合、既に設定された臨界値（Ｃｍａｘ）以下であることを特徴とする請求項８に記載のＬＤＰＣコードを用いた符号化方法。
【請求項１０】
前記臨界値（Ｃｍａｘ）は、１０〜１００の範囲内の任意の値であることを特徴とする請求項７または９に記載のＬＤＰＣコードを用いた符号化方法。
【請求項１１】
前記Ｈｐは、二重対角行列であることを特徴とする請求項６に記載のＬＤＰＣコードを用いた符号化方法。
【請求項１２】
入力データをパリティ検査行列Ｈを用いて復号化する方法において、
前記パリティ検査行列Ｈは、Ｈ＝［Ｈｄ｜Ｈｐ］（Ｈｄは、（ｎ−ｋ）×ｋで、Ｈｐは、（ｎ−ｋ）×（ｎ−ｋ）次元で、ｋは、入力データのビット数で、ｎは、コードワードのビット数である）の構成を有し、
前記Ｈｄが多数のサブ行列で構成された場合、各サブ行列は、行及び列の重みにおいて一定の規則性を有することを特徴とするＬＤＰＣコードを用いた復号化方法。
【請求項１３】
前記Ｈｄが（ｎ−ｋ）／ｍ×ｋ次元を有するｍ個のサブ行列で構成された場合、前記ｍ個のサブ行列のうち一つの特定のサブ行列のｊ番目行は、前記特定のサブ行列の全ての列の重みが１との条件下で、Ｗｊ個の連続的な１を有することを特徴とする請求項１２に記載のＬＤＰＣコードを用いた復号化方法。
【請求項１４】
前記Ｗｊは、前記特定のサブ行列の全ての行に対して同一であることを特徴とする請求項１３に記載の復号化方法。
【請求項１５】
前記Ｗｊは、前記特定のサブ行列の全ての行に対して不規則的に増加または減少することを特徴とする請求項１３に記載のＬＤＰＣコードを用いた復号化方法。
【請求項１６】
前記Ｈｄが（ｎ−ｋ）／ｍ×（ｎ−ｋ）／ｍ次元を有する多数のサブ行列で構成された場合、前記Ｈｄを構成する任意のサブ行列の行及び列の重みは、１であることを特徴とする請求項１２に記載のＬＤＰＣコードを用いた復号化方法。
【請求項１７】
前記Ｈｄ全体の任意の何れか二つの行は、二つ以上の地点で同時に１を持たないことを特徴とする請求項１２乃至１６のうち何れか１項に記載のＬＤＰＣコードを用いた復号化方法。
【請求項１８】
前記Ｈｄ全体の任意の三つの行から選択された全ての組み合わせ可能な二つの行が同一地点で１を有する場合、既に設定された臨界値（Ｃｍａｘ）以下であることを特徴とする請求項１７に記載のＬＤＰＣコードを用いた復号化方法。
【請求項１９】
前記パリティ検査行列Ｈ全体の任意の何れか二つの行は、二つ以上の列で同時に１を持たないことを特徴とする請求項１２乃至１５のうち何れか１項に記載のＬＤＰＣコードを用いた復号化方法。
【請求項２０】
前記パリティ検査行列Ｈの任意の三つの行から選択された全ての組み合わせ可能な二つの行が同一地点で１を有する場合、既に設定された臨界値（Ｃｍａｘ）以下であることを特徴とする請求項１９に記載のＬＤＰＣコードを用いた復号化方法。
【請求項２１】
前記臨界値（Ｃｍａｘ）は、１０〜１００の範囲内の任意の値であることを特徴とする請求項１８または２０に記載のＬＤＰＣコードを用いた復号化方法。
【請求項２２】
前記Ｈｐは、二重対角行列であることを特徴とする請求項１７に記載のＬＤＰＣコードを用いた復号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化及び復号化方法に関するもので、より具体的には、性能が改善された  低密度パリティ検査（Ｌｏｗ  Ｄｅｎｓｉｔｙ  Ｐａｒｉｔｙ  Ｃｈｅｃｋ：ＬＤＰＣ）コードを用いた符号化及び復号化方法に関するものである。  
【背景技術】
【０００２】
一般的に、符号化（ｅｎｃｏｄｉｎｇ）は、送信側から送信されたデータが通信チャネルを通して伝送される過程で発生する信号の歪み、損失などによるエラー発生にもかかわらず、受信側で元のデータを復元できるように送信側でデータを処理する過程を意味する。また、復号化（ｄｅｃｏｄｉｎｇ）は、符号化されて送信された信号を、受信側で元のデータに復元する過程である。
【０００３】
最近、ＬＤＰＣコードを用いた符号化方法が注目を浴びているが、ＬＤＰＣコードは、パリティ検査行列Ｈのほとんどの元素が‘０’である低密度の線形ブロック符号であり、１９６２年にＧａｌｌａｇｅｒによって提案された。ＬＤＰＣ符号は、非常に複雑であり、提案当時の技術では具現不可能であったが、１９９５年に再び発見され、その性能が非常に優秀であることが立証されて以来、それに対する研究が最近まで活発に行われている。（参考文献：非特許文献１、非特許文献２）
ＬＤＰＣコードのパリティ検査行列は、‘０’及び‘１’によって構成される２進行列である。ＬＤＰＣコードのパリティ検査行列において‘１’の個数が非常に少ないので、行列の大きさが非常に大きい場合も、反復復号を通して復号化が可能であり、行列の大きさが非常に大きくなると、ターボコードのように、シャノン（Ｓｈａｎｎｏｎ）のチャネル容量限界に近接する性能を示す。
【０００４】
ＬＤＰＣコードは、（ｎ−ｋ）×ｎ次元のパリティ検査行列Ｈによって説明される。前記パリティ検査行列Ｈに対応する生成行列Ｇは、次の数学式１によって求められる。
【０００５】
（数学式１）
Ｈ・Ｇ＝０
ＬＤＰＣコードを用いた符号化及び復号化方法において、送信側では、前記パリティ検査行列Ｈ及び前記生成行列Ｇを用いて、次の数学式２によって入力データを符号化する。
【０００６】
（数学式２）
ｃ＝Ｇ・ｕ（ここで、ｃは、コードワードであり、ｕは、データフレームである。）
しかしながら、最近は、前記生成行列Ｇによらず、前記パリティ検査行列Ｈを用いて入力データを符号化する方法が一般的に用いられている。したがって、上述したように、ＬＤＰＣコードを用いた符号化及び復号化方法では、前記パリティ検査行列Ｈが最も重要な要素といえる。前記パリティ検査行列Ｈは、その大きさが非常に大きいので、符号化及び復号化過程で多くの演算が要求され、その具現が非常に複雑であり、多くの保存空間が要求されるという問題点があった。
【０００７】
一般的に、‘０’及び‘１’によって構成される２進行列であるパリティ検査行列Ｈに多くの重み（ｗｅｉｇｈｔ）を付加すること（すなわち、‘１’の個数を増やすこと）は、パリティ検査方程式に多くの変数を付加することを意味するので、ＬＤＰＣコードを用いた符号化及び復号化方法において、一層良い性能を発揮することができる。しかしながら、パリティ検査行列Ｈに一層多くの重みを付加すると、パリティ検査行列全体に４−サイクルや６−サイクルを形成する場合が多くなり、その結果、ＬＤＰＣコードによる符号化及び復号化方法の性能が却って低下するという問題点があった。
【非特許文献１】Ｒｏｂｅｒｔ  Ｇ．Ｇａｌｌａｇｅｒ、「Ｌｏｗ−Ｄｅｎｓｉｔｙ  Ｐａｒｉｔｙ−Ｃｈｅｃｋ  Ｃｏｄｅｓ」、Ｔｈｅ  ＭＩＴ  Ｐｒｅｓｓ、Ｓｅｐｔｅｍｂｅｒ  １５、１９６３．
【非特許文献２】Ｄ．Ｊ．Ｃ．Ｍａｃｋａｙ、Ｇｏｏｄ  ｅｒｒｏｒ−ｃｏｒｒｅｃｔｉｎｇ  ｃｏｄｅｓ  ｂａｓｅｄ  ｏｎ  ｖｅｒｙ  ｓｐａｒｓｅ  ｍａｔｒｉｃｅｓ、ＩＥＥＥ  Ｔｒａｎｓ．Ｉｎｆｏｒｍ．Ｔｈｅｏｒｙ、（１９９９）ＩＴ−４５、ｐｐ．３９９−４３１
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、上記のような従来の問題点を解決するためになされたもので、その目的は、ＬＤＰＣコードを用いた符号化または復号化方法に必要なパリティ検査行列を保存するためのメモリ、符号化または復号化に必要な計算量及び複雑度を減少できるＬＤＰＣコードを用いた符号化または復号化方法を提供することにある。
【０００９】
本発明の他の目的は、パリティ検査行列Ｈの４−サイクルや６−サイクルを最小化することで、性能が改善されたＬＤＰＣコードを用いた符号化及び復号化方法を提供することにある。
【課題を解決するための手段】
【００１０】
本発明の一様相として、本発明に係るＬＤＰＣ（Ｌｏｗ  Ｄｅｎｓｉｔｙ  Ｐａｒｉｔｙ  Ｃｈｅｃｋ）コードを用いた符号化方法は、ＬＤＰＣコードを用いた符号化方法において、ソース入力データを、Ｈ＝［Ｈｄ｜Ｈｐ］（Ｈｄは、（ｎ−ｋ）×ｋで、Ｈｐは、（ｎ−ｋ）×（ｎ−ｋ）次元である）の構成を有するパリティ検査行列Ｈを用いて符号化する段階を含み、前記Ｈｄが多数のサブ行列で構成された場合、各サブ行列は、行及び列の重みにおいて一定の規則性を有することを特徴とする。
【００１１】
本発明の他の様相として、本発明に係るＬＤＰＣコードを用いた符号化方法は、入力データをパリティ検査行列Ｈを用いて復号化する方法において、前記パリティ検査行列Ｈは、Ｈ＝［Ｈｄ｜Ｈｐ］（Ｈｄは、（ｎ−ｋ）×ｋで、Ｈｐは、（ｎ−ｋ）×（ｎ−ｋ）次元で、ｋは、入力データのビット数で、ｎは、コードワードのビット数である）の構成を有し、前記Ｈｄが多数のサブ行列で構成された場合、各サブ行列は、行及び列の重みにおいて一定の規則性を有することを特徴とする。
【００１２】
本発明の細部的な特徴として、前記Ｈｄが（ｎ−ｋ）／ｍ×ｋ次元を有するｍ個のサブ行列で構成された場合、前記ｍ個のサブ行列のうち一つの特定のサブ行列のｊ番目行は、前記特定のサブ行列の全ての列の重みが１との条件下で、Ｗｊ（ｊ＝１、２、…（ｎ−ｋ）／ｍ）個の連続的な１を有することが好ましい。前記Ｗｊは、前記特定のサブ行列の全ての行に対して同一であるか、または、前記Ｗｊは、前記特定のサブ行列の全ての行に対して不規則的に増加または減少する。
【００１３】
本発明の他の細部的な特徴として、前記Ｈｄが（ｎ−ｋ）／ｍ×（ｎ−ｋ）／ｍ次元を有する多数のサブ行列で構成された場合、前記Ｈｄを構成する任意のサブ行列の行及び列の重みは、１であることが好ましい。また、前記Ｈｄ全体の任意の何れか二つの行は、二つ以上の地点に同時に１を持たないとともに、前記パリティ検査行列Ｈの任意の三つの行から選択された全ての組み合わせ可能な二つの行が同一地点で１を有する場合、既に設定された臨界値Ｃｍａｘ以下であることが好ましい。
【発明の効果】
【００１４】
本発明に係るＬＤＰＣコードを用いた符号化または復号化方法は、移動通信システムや携帯インターネットシステムなどの通信システムで応用されうる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明に係るＬＤＰＣコードを用いた符号化または復号化方法の好適な実施例について、添付の図面に基づいて詳細に説明する。
【００１６】
図１は、本発明の好適な一実施例を説明するための図で、本発明の技術的特徴が無線通信システムに適用された一例を示している。以下で説明する実施例は、本発明の特徴を説明するための例示に過ぎないもので、本発明の技術的特徴は、符号化及び復号化が必要な全ての分野に適用可能である。
【００１７】
図１に示すように、送信機１０及び受信機３０は、無線チャネル２０を介して通信を行う。前記送信機１０では、データソース１１から出力されたｋビットのソースデータｕが、ＬＤＰＣ符号器モジュール１３でのＬＤＰＣ符号化によってｎビットのコードワードｃになる。コードワードｃは、変調モジュール１５によって無線変調されてアンテナ１７を通して送信され、無線チャネル２０を通して前記受信機３０のアンテナ３１に受信される。前記受信機３０では、前記送信機１０で行った過程と逆の過程を経て元のデータを復元する。すなわち、復調モジュール３３によって復調され、ＬＤＰＣ復号化モジュール３５によって復号されることで、最終的にソースデータｕを得られる。
【００１８】
上述したデータ送受信過程は、本発明の特徴を説明するために必要な最小限の範囲内で示したもので、その他にも、データ伝送のために必要な多くの過程があり得る。
【００１９】
前記数学式１において、前記第１パリティ検査行列Ｈは、Ｈ＝［Ｈｄ｜Ｈｐ］（Ｈｄは、（ｎ−ｋ）×ｋ、Ｈｐは、（ｎ−ｋ）×（ｎ−ｋ）次元である）で表現される。図２は、Ｈ＝［Ｈｄ｜Ｈｐ］の関係を説明するための例示図である。ここで、前記ｋは、前記ＬＤＰＣ符号化モジュール１３に入力されるソースデータの長さ（ビット単位）を意味し、前記ｎは、符号化されたコードワードｃの長さ（ビット単位）を意味する。
【００２０】
前記数学式１及びＨ＝［Ｈｄ｜Ｈｐ］の関係によって、Ｇ＝［Ｉ｜（Ｈｐ−１Ｈｄ）ｔ］ｔであることを知ることができる。したがって、前記ＬＤＰＣ符号化モジュール１３は、前記数学式２によって入力ソースデータｕに前記Ｇ＝［Ｉ｜（Ｈｐ−１Ｈｄ）ｔ］ｔを掛け算することで符号化する。その結果、数学式２は、次の数学式３に取り替えられる。より具体的に説明すると、ｋビットの入力ソースデータｓ１×ｋは、数学式２によって符号化されてｎビットのコードワードｘ１×ｋになる。コードワードｘは、ｘ＝［ｓｐ］＝［ｓ０、ｓ１、…、ｓｋ−１、ｐ０、ｐ１、…、ｐｍ−１］の構成を有する（ここで、（ｐ０、ｐ１、…、ｐｍ−１）は、パリティ検査ビットで、（ｓ０、ｓ１、…、ｓｋ−１）は、システムビットである）。
【００２１】
（数学式３）
ｃ＝［Ｉ｜（Ｈｐ−１Ｈｄ）ｔ］ｔ・ｕ
しかしながら、前記生成行列Ｇを用いた符号化方法は、非常に複雑である。したがって、このような複雑度を減少させるために、前記生成行列Ｇによらず、パリティ検査行列Ｈを用いて入力ソースデータを直接符号化することが好ましい。すなわち、ｘ＝［ｓｐ］であるので、Ｈ・ｘ＝０である特性を用いるとＨ・ｘ＝Ｈ・［ｓｐ］＝０になる。そして、この式によってパリティ検査ビットｐを得られ、結果的にコードワードｘ＝［ｓｐ］を求めることができる。
【００２２】
前記Ｈｐとしては、（ｎ−ｋ）×（ｎ−ｋ）次元の二重対角行列を用いることが好ましい。二重対角行列は、主対角及びその主対角の直ぐ下側にある対角が１で、残りが全て０である行列を意味するもので、図３は、二重対角行列を説明するための一例を示している。
【００２３】
前記Ｈｄを多数のサブ行列に分割した場合、各サブ行列は、行及び列の重みにおいて一定の規則性を有することが好ましい。すなわち、前記各サブ行列の行及び列の重みに規則性を持たせると、前記Ｈｄまたは前記パリティ検査行列Ｈを保存するための保存空間を節約できるとともに、符号化または復号化過程における演算量や複雑度を減少させることができる。以下、行及び列の重みにおいて一定の規則性を有する前記Ｈｄの各実施例を説明する。
【００２４】
第１の実施例は、前記Ｈｄを（ｎ−ｋ）／ｍ×ｋ次元を有するｍ個のサブ行列に分割した場合、前記ｍ個のサブ行列のうち一つの特定のサブ行列のｊ番目行は、前記特定のサブ行列の全ての列の重みが１であるとの条件下で、Ｗｊ（ｊ＝１、２、…（ｎ−ｋ）／ｍ）個の連続的な１を有するＨｄである。前記Ｗｊは、前記特定のサブ行列の全ての行に対して同一である。また、前記Ｗｊは、前記特定のサブ行列の全ての行に対して不規則的に増加または減少する。
【００２５】
図４及び図５は、前記第１の実施例を具体的に説明するための図で、前記Ｈｄに含まれる前記特定のサブ行列の一例をそれぞれ示したものである。図４に示した前記特定のサブ行列は、７×２８次元を有する行列であるが、実際には、これより遥かに大きな規模の行列がＬＤＰＣ符号化に用いられる。図４に示すように、前記特定のサブ行列の各行は、連続的な４個の１を有し、残りは０の値を有する（すなわち、各行の重みが４である）。また、前記特定のサブ行列において、各列の重みは１である。また、図５において、前記特定のサブ行列の各行は、Ｗｊ個が連続的に１で、残りが０で、前記Ｗｊは、各行別に不規則的に変わる。この場合も、前記特定のサブ行列において、各列の重みは１である。
【００２６】
行及び列の重みにおいて一定の規則性を有する前記Ｈｄの第２の実施例は、前記Ｈｄが（ｎ−ｋ）×（ｎ−ｋ）次元を有するｒ／（１−ｒ）（ここで、ｒ＝ｋ／ｎ）個の行列Ｈ（ｉ）ｄ（ここで、ｉ＝１、２、…、ｒ／（１−ｒ））で構成され、任意のＨ（ｉ）ｄが（ｎ−ｋ）／ｍ×（ｎ−ｋ）ｍ次元を有するｍ×ｍ個のサブ行列で構成される場合、前記Ｈｄを構成する任意のサブ行列の行及び列の重みが１であるＨｄである。
【００２７】
前記Ｈｄは、コードレート（ｒ＝ｋ／ｎ）によって一つ以上のＨ（ｉ）ｄ（ここで、ｉ＝１、２、…、ｒ／（１−ｒ））で構成される。前記コードレートｒは、ソースデータの長さｋと前記符号化されたデータの長さｎとの比であり、一般的に、ｒ＝１／２、２／３、３／４、４／５などが用いられる。前記Ｈ（ｉ）ｄは、（ｎ−ｋ）×（ｎ−ｋ）次元を有する行列であり、Ｈｄ＝［Ｈ（１）ｄ｜Ｈ（２）ｄ｜・・・｜Ｈ（ｒ／（１−ｒ））ｄ］の関係を有する。
【００２８】
各Ｈ（ｉ）ｄは、（ｎ−ｋ）／ｍ×（ｎ−ｋ）／ｍ次元を有するｍ×ｍ個のサブ行列に分けたとき、前記Ｈｄを構成する任意のサブ行列の行及び列の重みが１であるという特徴を有する。前記ｍは、正の整数であり、前記Ｈｄの分析係数（ｒｅｓｏｌｕｔｉｏｎ  ｆａｃｔｏｒ）である。また、前記ｍは、４〜１２のうち、最も良い性能を発揮するものを選択して用いることが好ましい。
【００２９】
図６は、ｍ＝４である場合におけるＨ（ｉ）ｄの一例を示した図で、（１，１）、（１，２）、……、（４，４）の１６個のサブ行列で構成される。各サブ行列の行及び列の重みが１であることは、各サブ行列の任意の行及び列に１が一つだけあり、残りが全て０であることを意味する。
【００３０】
上記のような特徴を拡張することで、前記パリティ検査行列Ｈ全体が（ｎ−ｋ）／ｍ×（ｎ−ｋ）／ｍ次元を有する多数のサブ行列で構成される場合、前記Ｈを構成する任意のサブ行列の行及び列の重みを１にすることも可能である。すなわち、前記パリティ検査行列Ｈの一部構成であるＨｄに対してのみ、前記Ｈｄを構成するサブ行列の行及び列の重みが１であるとの規則性を持たせることもでき、前記パリティ検査行列Ｈ全体に対して、前記パリティ検査行列Ｈ全体を構成するサブ行列の行及び列の重みが１であるとの規則性を持たせることもできる。
【００３１】
ＬＤＰＣコードによる符号化または復号化方法において、前記Ｈｄまたは前記パリティ検査行列Ｈは、以下で説明する二つの特徴を備えることが好ましい。すなわち、ＬＤＰＣコードによる符号化または復号化方法は、前記Ｈｄまたは前記パリティ検査行列Ｈを構成する各行間のチャネル状況によって判断される確率的情報の反復的な交換によって行われるが、以下で説明する二つの特徴を備えていないパリティ検査行列Ｈにおいては、各行の確率的情報が他の行に伝達された後、充分な反復を経ずに戻るので、良い性能を発揮することができない。
【００３２】
前記Ｈｄまたは前記パリティ検査行列Ｈは、全体的に任意の何れか二つの行が二つ以上の地点で同時に１を持たないことが好ましい。前記Ｈｄの任意の何れか二つの行が二つ以上の地点で同時に１を持たないことは、Ｈｄ全体の任意の二つの行を比較したとき、１の存在する地点が二つ以上重ならないことを意味する。
【００３３】
図７は、前記パリティ検査行列Ｈの二つの行が二つの地点で同時に１を有する場合を示した例示図である。すなわち、図７は、ｉ番目行において円で囲んだ二つの地点と、ｊ番目行において円で囲んだ二つの地点が全て１である場合を示したもので、図７に示すような場合が前記Ｈｄまたは前記パリティ検査行列Ｈにないとき、ＬＤＰＣコードによる符号化及び復号化方法が良い性能を発揮する。図７に示すように、Ｈｄまたはパリティ検査行列Ｈの二つの行が二つの地点で同時に１を有する場合を４−サイクルという。したがって、前記Ｈｄまたは前記パリティ検査行列Ｈの任意の何れの二つの行が二つ以上の地点で同時に１を持たないことは、前記Ｈｄまたは前記パリティ検査行列Ｈ全体に対して４−サイクルを形成する場合がないことを意味する。
【００３４】
図８は、前記パリティ検査行列Ｈの任意の三つの行から選択された全ての組み合わせ可能な二つの行が同一の地点で１を有する場合を示した例示図で、ｉ、ｊ及びｋ行の三つの行から選択された全ての組み合わせ可能な二つの行、すなわち、ｉ番目行とｊ番目行、ｊ番目行とｋ番目行、及びｋ番目行とｉ番目行が同一の地点で１を有する場合を示している。図８の円で囲んだ６個の地点を連結してサイクルを形成し、これを６−サイクルという。図９は、前記パリティ検査行列Ｈの他の表現方法である二部グラフであり、６行９列のパリティ検査行列を意味する。図９の太い線で表示された部分が６−サイクルを形成する部分である。したがって、前記パリティ検査行列Ｈの任意の三つの行から選択された全ての組み合わせ可能な二つの行が同一の地点で１を有する場合が、既に設定された臨界値Ｃｍａｘ以下であることは、前記パリティ検査行列Ｈ全体に対して６−サイクルを形成する部分が前記臨界値Ｃｍａｘより小さいかそれと同一であることを意味する。
【００３５】
前記Ｈｄまたは前記パリティ検査行列Ｈの任意の三つの行から選択された全ての組み合わせ可能な二つの行が同一の地点で１を有する場合は、既に設定された臨界値Ｃｍａｘ以下であることが好ましい。前記臨界値Ｃｍａｘは、前記Ｈｄまたは前記パリティ検査行列Ｈに６−サイクルが存在する場合も、前記パリティ検査行列Ｈを用いた符号化及び復号化の性能低下が発生しない範囲で決定されることが好ましい。一層具体的に説明すると、前記臨界値Ｃｍａｘは、前記パリティ検査行列Ｈに存在する６−サイクルの減少による性能改善効果と、６−サイクルを減少させるために必要な計算量とを比較衡量し、合理的な範囲内で決定されることが好ましい。シミュレーションの結果、前記臨界値Ｃｍａｘが１０〜５００個程度の範囲で満足的な性能が導出され、１０〜１００個の範囲で一層良い性能を発揮した。ただし、臨界値は、上記の範囲に制限されるものではない。
【００３６】
図１０は、行及び列の重みにおいて一定の規則性を有する前記Ｈｄの前記第１の実施例（図４及び図５を参照）に係る、パリティ検査行列Ｈを生成する一つの過程を説明するための手順フローチャートである。以下で説明する方法は、一例に過ぎないもので、上記のような特徴を有するＨは、多様な方法によって生成することができる。
【００３７】
まず、前記Ｈｄの（ｎ−ｋ）／ｍ×ｋ次元を有する特定のサブ行列（第１のサブ行列）に対して、前記特定のサブ行列のｊ番目行は、前記特定のサブ行列の全ての列の重みが１であるとの条件下で、Ｗｊ（ｊ＝１、２、…（ｎ−ｋ）／ｍ）個の連続的な１を有するように構成する（Ｓ１１）。
【００３８】
Ｈｄの残りのサブ行列のうち他のサブ行列（第２のサブ行列）に対して、任意の何れか二つの行が二つ以上の地点で同時に１を持たないように列を再配列する（ｃｏｌｕｍｎ  ｐｅｒｍｕｔａｔｉｏｎ）する（Ｓ１２）。前記Ｓ１２過程を、残りのサブ行列に対して順次適用し、最後のサブ行列（第ｍのサブ行列）まで全てのサブ行列を構成する（Ｓ１３）。前記各サブ行列を結合してＨｄを生成する（Ｓ１４）。ＨｄとＨｐとを結合してＨを生成する（Ｓ１５）。
【００３９】
図１１は、４−サイクルを持たず、Ｃｍａｘ以下程度の６−サイクルのみを有するパリティ検査行列Ｈを生成する過程を説明するための手順フローチャートである。以下で説明する方法は、一例に過ぎないもので、上記のような特徴を有するパリティ検査行列Ｈは、多様な方法によって生成することができる。
【００４０】
図１１において、（ｎ−ｋ）×ｋパリティ検査行列Ｈ上で重みを有する元素の位置を決定し、パリティ検査行列Ｈを生成するために、ｉは、前記パリティ検査行列Ｈの任意の行のインデックスで、ｊは、任意の列のインデックスで、Ｃｗは、任意の列ｊの現在の重み数を意味する。まず、重みのない（Ｃｗ＝０）一番目列（ｊ＝１）に対して重みを付加しはじめる（Ｓ２１）。ここで、重みを付加することは、任意の列の任意の行に該当する元素を１にすることを意味する。
【００４１】
一番目列の任意のｉ番目の候補行に暫定的に重みを付加する（Ｓ２２）。暫定的に重みを付加することは、その行に対する重み付加が最終的なものでなく、次の手順によって変更されうることを意味する。その次に、前記パリティ検査行列Ｈ全体に対して４−サイクルが存在するかを判断し（Ｓ２３）、４−サイクルが存在する場合、前記ｉ番目行に対して重みを付加せず、他の行に重みを付加し（Ｓ２２）、その次の手順を再び進行し、４−サイクルが存在しない場合、前記パリティ検査行列Ｈ全体に対して６−サイクルが存在するかを判断する（Ｓ２４）。
【００４２】
前記パリティ検査行列Ｈ全体に対して６−サイクルが存在するかを判断した結果、６−サイクルが存在しない場合、前記ｉ番目行に最終的に重みを付加する。一方、６−サイクルが存在する場合、前記パリティ検査行列Ｈ全体の６−サイクル数が、既に設定された臨界値Ｃｍａｘ以下であるかを判断し（Ｓ２５）、臨界値Ｃｍａｘ以下である場合、前記ｉ番目行に最終的に重みを付加し、臨界値Ｃｍａｘ以下でない場合、前記ｉ番目行に重みを付加せずに、他の行に重みを付加し（Ｓ２２）、その次の手順を再び進行する。
【００４３】
前記ｉ番目行に重みを最終的に付加すると（Ｓ２６）、前記ｊ番目列の現在の重み数Ｃｗを１増加させ（Ｓ２７）、前記ｊ番目列の現在の重み数が前記ｊ番目列に許容可能な最大の重み数Ｃｊｍａｘと同一であるかを判断する（Ｓ２８）。前記ｊ番目列の現在の重み数が前記ｊ番目列に許容可能な最大の重み数Ｃｊｍａｘと同一である場合、前記ｊ番目列に対する重み付加を終了し、前記ｊがコードワード長さと同一であるかを判断する（Ｓ２９）。一方、前記ｊ番目列の現在の重み数が前記ｊ番目列に許容可能な最大の重み数Ｃｊｍａｘと同一でない場合、段階Ｓ２２に戻って前記ｊ番目列の他の行に暫定的に重みを付加し、その後続手順を継続的に行う。
【００４４】
前記ｊがコードワード長さと同一である場合、前記パリティ検査行列Ｈ全体に対して重み付加が終了する。そのため、それまでの重み付加結果によって、最終的に前記パリティ検査行列Ｈを生成することができる（Ｓ３１）。一方、前記ｊがコードワード長さと同一でない場合、重みを付加していない列が未だに存在するので、ｊに１を追加し（Ｓ３０）、その次の列に対して、段階Ｓ２２から上記の方法で重みを付加する。
【００４５】
上述したように、前記パリティ検査行列Ｈ全体を、上記の手順で生成することもできるが、［Ｈｄ｜Ｈｐ］の構造を有するパリティ検査行列Ｈにおいて、前記Ｈｄを上記の手順で生成し、前記Ｈｐを定型化された形態で用いることも可能である。
【００４６】
図１２は、行及び列の重みにおいて一定の規則性を有する前記Ｈｄの前記第２の実施例（図６を参照）に係る、前記パリティ検査行列ＨまたはＨｄを生成する一つの過程を説明するための手順フローチャートである。図１２の実施例は、図１１の実施例に比べると、前記Ｈｄを構成する（ｎ−ｋ）／ｍ×（ｎ−ｋ）／ｍ次元の各サブ行列の行及び列の重みが１であるべきとの条件をさらに付加したものである。以下で説明する方法は一例に過ぎないもので、上記のような特徴を有するパリティ検査行列Ｈは、多様な方法によって生成することができる。
【００４７】
図１２において、ｉは、前記パリティ検査行列Ｈの任意の行のインデックスで、ｊは、任意の列のインデックスで、Ｃｗは、任意の列ｊの現在の重み数を意味する。まず、重みのない（Ｃｗ＝０）一番目列（ｊ＝１）に対して重みを付加しはじめる（Ｓ４０）。ここで、重みを付加することは、任意の列の任意の行に該当する元素を１にすることを意味する。
【００４８】
一番目列の任意のｉ番目の候補行に暫定的に重みを付加する（Ｓ４１）。暫定的に重みを付加することは、その行に対する重み付加が最終的なものでなく、手順によって変更されうることを意味する。その次に、前記パリティ検査行列Ｈが（ｎ−ｋ）／ｍ×（ｎ−ｋ）／ｍ次元を有する多数のサブ行列で構成される場合、前記ｊ番目列のｉ番目行が属するサブ行列の各行及び各列のうち、重みが２以上の行または列が存在するかを検査する（Ｓ４２）。前記ｊ番目列のｉ番目行が属するサブ行列の各行及び各列のうち、重みが２以上の行または列が存在する場合、前記ｉ番目行に対して重みを付加せず、他の行に重みを付加し（Ｓ４１）、その次の手順を再び進行する。一方、前記ｊ番目列のｉ番目行が属するサブ行列の各行及び各列のうち、重みが２以上の行または列が存在しない場合、前記パリティ検査行列Ｈ全体に対して４−サイクルが存在するかを判断する（Ｓ４３）。
【００４９】
前記パリティ検査行列Ｈ全体に対して４−サイクルが存在するかを判断し（Ｓ４３）、４−サイクルが存在する場合、前記ｉ番目行に対して重みを付加せず、他の行に重みを付加し（Ｓ４２）、その次の手順を再び進行し、４−サイクルが存在しない場合、前記パリティ検査行列Ｈ全体に対して６−サイクルが存在するかを判断する（Ｓ４４）。
【００５０】
前記パリティ検査行列Ｈ全体に対して６−サイクルが存在するかを判断した結果、６−サイクルが存在しない場合、前記ｉ番目行に最終的に重みを付加する。一方、６−サイクルが存在する場合、前記パリティ検査行列Ｈ全体の６−サイクル数が、既に設定された臨界値Ｃｍａｘ以下であるかを判断し（Ｓ４５）、臨界値Ｃｍａｘ以下である場合、前記ｉ番目行に最終的に重みを付加し、臨界値Ｃｍａｘ以下でない場合、前記ｉ番目行に重みを付加せずに、他の行に重みを付加し（Ｓ４２）、その次の手順を再び進行する。
【００５１】
前記ｉ番目行に重みを最終的に付加すると（Ｓ４６）、前記ｊ番目列の現在の重み数Ｃｗを１増加させ（Ｓ４７）、前記ｊ番目列の現在の重み数が前記ｊ番目列に許容可能な最大の重み数Ｃｊｍａｘと同一であるかを判断する（Ｓ４８）。前記ｊ番目列の現在の重み数が前記ｊ番目列に許容可能な最大の重み数Ｃｊｍａｘと同一である場合、前記ｊ番目列に対する重み付加を終了し、前記ｊがコードワード長さと同一であるかを判断する（Ｓ４９）。一方、前記ｊ番目列の現在の重み数が前記ｊ番目列に許容可能な最大の重み数Ｃｊｍａｘと同一でない場合、段階Ｓ４２に戻って前記ｊ番目列の他の行に暫定的に重みを付加し、その後続手順を継続的に行う。
【００５２】
前記ｊがコードワード長さと同一である場合、前記パリティ検査行列Ｈ全体に対して重み付加が終了する。そのため、それまでの重み付加結果によって、最終的に前記パリティ検査行列Ｈを生成することができる（Ｓ５１）。前記ｊがコードワード長さと同一でない場合、重みを付加していない列が未だに存在するので、ｊに１を追加し（Ｓ５０）、その次の列に対して、段階Ｓ４２から上記の方法で重みを付加する。
【００５３】
上述したように、前記パリティ検査行列Ｈ全体を、上記の手順で生成することもできるが、［Ｈｄ｜Ｈｐ］の構造を有するパリティ検査行列Ｈにおいて、前記Ｈｄを上記の手順で生成し、前記Ｈｐを定型化された形態で用いることも可能である。前記Ｈｐとしては、（ｎ−ｋ）×（ｎ−ｋ）次元の二重対角行列を用いることが好ましい。
【００５４】
図１において、前記受信機３０が、上記の方法で符号化されたデータを受信して復号化するとき、次の数学式４を用いる。
【００５５】
（数学式４）
Ｈ・ｃ＝０
すなわち、符号化されたデータｃと前記パリティ検査行列Ｈとを掛け算して０になる場合、伝送エラーがないことを意味し、０にならない場合、伝送エラーが存在することを意味するので、これによってソースデータを分離することができる。
【００５６】
本発明の技術的思想は、前記各特徴を有するＨまたはＨｄのようなデータ構造及び前記各特徴を有するＨまたはＨｄを生成するためのプログラムが記録された、ＣＤ−ＲＯＭ、フロッピー（登録商標）ディスク、コンピュータメモリまたは移動通信用端末機のメモリなどのＣＰＵ（Ｃｏｎｔｒｏｌ  Ｐｒｏｃｅｓｓ  Ｕｎｉｔ）によって判読可能な記録媒体にも及ぼすことを理解すべきである。
【００５７】
本発明は、本発明の精神及び必須的な特徴から逸脱しない範囲で、他の特定の形態で具体化されることが当業者にとって明らかである。したがって、上述した詳細な説明は、全ての面で制限的に解析されてはならなく、例示的なものとして考慮されるべきである。本発明の範囲は、添付された特許請求の範囲の合理的な解析によって決定されるべきであり、本発明の等価的な範囲内での全ての変更は、本発明の範囲に含まれる。
【図面の簡単な説明】
【００５８】
【図１】本発明の好適な一実施例を説明するための通信システム構成図である。
【図２】Ｈ＝［Ｈｄ｜Ｈｐ］の関係を説明するための例示図である。
【図３】二重対角行列の一例を示した図である。
【図４】本発明の好適な一実施例に係るＨｄの特定のサブ行列を説明するための図である。
【図５】本発明の好適な他の実施例に係るＨｄの特定のサブ行列を説明するための図である。
【図６】本発明の特徴を説明するために、ｍ＝４である場合のＨ（ｉ）ｄの一例を示した図である。
【図７】本発明の一つの特徴として、パリティ検査行列Ｈの二つの行が二つの地点で同時に１を有する場合を例示した図である。
【図８】本発明の他の特徴として、パリティ検査行列Ｈの任意の三つの行から選択された全ての組み合わせ可能な二つの行が同一地点で１を有する場合を例示した図である。
【図９】パリティ検査行列Ｈの他の表現方法である二部グラフである。
【図１０】本発明に係るパリティ検査行列Ｈを生成する一つの過程を説明するための手順フローチャートである。
【図１１】本発明に係るパリティ検査行列Ｈを生成する他の過程を説明するための手順フローチャートである。
【図１２】本発明に係るパリティ検査行列Ｈを生成する更に他の過程を説明するための手順フローチャートである。
【符号の説明】
【００５９】
１０  送信機
１１  ソース
１３  ＬＤＰＣ符号化モジュール
１５  変調モジュール
１７  アンテナ
２０  無線チャネル
３０  受信機
３１  アンテナ
３３  復調モジュール
３５  ＬＤＰＣ復号化モジュール
【図１】
2008508776.tif 000003
【図２】
2008508776.tif 000004
【図３】
2008508776.tif 000005
【図４】
2008508776.tif 000006
【図５】
2008508776.tif 000007
【図６】
2008508776.tif 000008
【図７】
2008508776.tif 000009
【図８】
2008508776.tif 000010
【図９】
2008508776.tif 000011
【図１０】
2008508776.tif 000012
【図１１】
2008508776.tif 000013
【図１２】
2008508776.tif 000014
【国際調査報告】
2008508776.tif 000015
2008508776.tif 000016
2008508776.tif 000017