(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-03
(45)【発行日】2022-10-12
(54)【発明の名称】LDPCコードを符号化および復号化するための方法および装置
(51)【国際特許分類】
H03M 13/19 20060101AFI20221004BHJP
【FI】
H03M13/19
(21)【出願番号】P 2019522735
(86)(22)【出願日】2017-05-25
(86)【国際出願番号】 CN2017086017
(87)【国際公開番号】W WO2018082290
(87)【国際公開日】2018-05-11
【審査請求日】2019-06-06
【審判番号】
【審判請求日】2021-09-30
(31)【優先権主張番号】PCT/RU2016/000746
(32)【優先日】2016-11-03
(33)【優先権主張国・地域又は機関】RU
(73)【特許権者】
【識別番号】504161984
【氏名又は名称】ホアウェイ・テクノロジーズ・カンパニー・リミテッド
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133569
【氏名又は名称】野村 進
(72)【発明者】
【氏名】ユーリー・セルゲーヴィッチ・シャットキン
(72)【発明者】
【氏名】パヴェル・アナトレイヴィッチ・パンテレーエフ
(72)【発明者】
【氏名】アレクセイ・アレクサンドロヴィッチ・レトゥノヴスキー
(72)【発明者】
【氏名】エルヤー・エルダロヴィッチ・ガサノフ
(72)【発明者】
【氏名】グレブ・ヴャチェスラヴォヴィッチ・カラチェフ
(72)【発明者】
【氏名】イヴァン・レオニードヴィッチ・マズレンコ
【合議体】
【審判長】土居 仁士
【審判官】角田 慎治
【審判官】丸山 高政
(56)【参考文献】
【文献】米国特許出願公開第2009/0204868(US,A1)
【文献】Nokia,Alcatel-Lucent Shanghai Bell,LDPC design for eMBB,3GPP TSG RAN WG1 #89 R1-1708829,2017年5月6日
【文献】Hua Li et al.,Efficient Puncturing Scheme for Irregular LDPC Codes Based on Serial Schedules,IEEE Communications Letters,2015年7月8日,Vol.19,No.9,pp.1508-1511
(58)【調査した分野】(Int.Cl.,DB名)
H03M13/19
(57)【特許請求の範囲】
【請求項1】
無線通信のための方法であって、
符号化されるべき情報ビットのシーケンスを取得するステップと、
非正則準巡回低密度パリティ検査行列の基本行列に基づいて、情報ビットの前記シーケンスを符号化するステップとを含み、
前記基本行列は複数の行および列を有し、
前記複数の列のうち、最初の列がパンクチャド列であるかまたは最初の2つの列がパンクチャド列であり、前記パンクチャド列以外の列が非パンクチャド列であり、前記パンクチャド列の各々は、前記非パンクチャド列よりも高い重みを有し、
前記複数の行は行の第1のセットおよび行の第2のセットに
重みによって分割され、前記第1のセットの行は
二重対角サブ行列を含み、
前記第2のセットの行は少なくとも1つのグループを含み、前記少なくとも1つのグループの各々は少なくとも2つの連続する行を含み、前記少なくとも2つの連続する行は第1の部分および第2の部分から成り、
前記第1の部分は前記パンクチャド
列であり、前記第1の部分の行は非直交であり、
前記第2の部分は前記非パンクチャド
列であり、前記第2の部分の行は直交している、方法。
【請求項2】
前記少なくとも1つのグループは2つ以上のグループを含み、前記2つ以上のグループは連続している、請求項1に記載の方法。
【請求項3】
前記第2のセットにおける前記非パンクチャド列のための各隣接する2つの行は直交している、請求項
1または2に記載の方法。
【請求項4】
前記基本行列は46行68列を含む、請求項1乃至
3のいずれか1項に記載の方法。
【請求項5】
前記基本行列に基づいて、情報ビットの前記シーケンスに対応する符号語を決定するステップと、
前記少なくとも1つのパンクチャド列に対応する情報ビットを除いて前記符号語を送信するステップとをさらに含む、請求項1乃至
4のいずれか1項に記載の方法。
【請求項6】
装置であって、
非正則準巡回低密度パリティ検査行列の基本行列に基づいて、情報ビットのシーケンスを符号化するように構成されるエンコーダを含み、
前記基本行列は複数の行および複数の列を有し、前記複数の列のうち、最初の列がパンクチャド列であるかまたは最初の2つの列がパンクチャド列であり、前記パンクチャド列以外の列が非パンクチャド列であり、前記パンクチャド列の各々は、前記非パンクチャド列よりも高い重みを有し、
前記複数の行は行の第1のセットおよび行の第2のセットに
重みによって分割され、前記第1のセットの行は
二重対角サブ行列を含み、
前記第2のセットの行は少なくとも1つのグループを含み、前記少なくとも1つのグループの各々は少なくとも2つの連続する行を含み、前記少なくとも2つの連続する行は第1の部分および第2の部分から成り、
前記第1の部分は前記パンクチャド
列であり、前記第1の部分の行は非直交であり、
前記第2の部分は前記非パンクチャド
列であり、前記第2の部分の行は直交している、装置。
【請求項7】
請求項1乃至
5のいずれか1項に記載の前記方法を実行するように構成されることによって特徴付けられる、請求項
6に記載の装置。
【請求項8】
前記基本行列に関連付けられたパラメータを記憶するように構成されるメモリをさらに含む、請求項
6または
7に記載の装置。
【請求項9】
無線通信のための方法であって、
符号化されるべき情報ビットのシーケンスを取得するステップと、
非正則準巡回低密度パリティ検査行列の基本行列に基づいて、情報ビットの
前記シーケンスを符号化するステップとを含み、
前記基本行列は複数のエントリを含み、各エントリはシフトされた巡回行列またはゼロ行列のいずれかを表し、
前記基本行列は複数の行および複数の列を含み、前記複数の
列のうち、最初の列がパンクチャド列であるかまたは最初の2つの列がパンクチャド列であり、前記パンクチャド列以外の列が非パンクチャド列であり、前記パンクチャド列の各々は、前記非パンクチャド列よりも高い重みを有し、
前記複数の行は行の第1のセットおよび行の第2のセットに
重みによって分割され、前記第1のセットの行は
二重対角サブ行列を含み、
前記第2のセットの行は少なくとも1つのグループを含み、前記少なくとも1つのグループの各々における各非パンクチャド列は前記シフトされた巡回行列を表す多くて1つのエントリを有し、前記少なくとも1つのグループの各々におけるパンクチャド列は、前記シフトされた巡回行列を表す少なくとも2つのエントリを有する、方法。
【請求項10】
前記少なくとも1つのグループは2つ以上のグループであり、前記2つ以上のグループは連続している、請求項
9に記載の方法。
【請求項11】
前記シフトされた巡回行列は、数回右に循環シフトされた単位行列を表し、前記回数はシフト値によって与えられる、請求項
9または10に記載の方法。
【請求項12】
前記基本行列は、第1の行から開始する複数の行を有するコア基本行列を含み、行の前記第1のセットは、前記第1の行から開始し、行の前記第2のセットは、前記第1のセットの最後の行の次の行から開始する、請求項
9乃至
11のいずれか1項に記載の方法。
【請求項13】
非パンクチャド列および前記第2のセットの行によって形成されるサブ行列の各隣接する2つの行は直交している、請求項
9乃至
12のいずれか1項に記載の方法。
【請求項14】
前記第2のセットの前記行によって形成される前記行列の列のサブセットから成る行列は、三角構造または単位行列構造を有する、請求項
9乃至
13のいずれか1項に記載の方法。
【請求項15】
前記基本行列に基づいて、情報ビットの前記シーケンスに対応する符号語を決定するステップと、
前記少なくとも1つのパンクチャド列に対応する情報ビットを除いて前記符号語を送信するステップとをさらに含む、請求項
9乃至
14のいずれか1項に記載の方法。
【請求項16】
装置であって、
非正則準巡回低密度パリティ検査行列の基本行列に基づいて、情報ビットのシーケンスを符号化するように構成されるエンコーダを含み、
前記基本行列は複数のエントリを含み、各エントリはシフトされた巡回行列またはゼロ行列のいずれかを表し、
前記基本行列は複数の行および複数の列を含み、前記複数の列のうち、最初の列がパンクチャド列であるかまたは最初の2つの列がパンクチャド列であり、前記パンクチャド列以外の列が非パンクチャド列であり、前記パンクチャド列の各々は、前記非パンクチャド列よりも高い重みを有し、
前記複数の行は行の第1のセットおよび行の第2のセットに
重みによって分割され、前記第1のセットの行は
二重対角サブ行列を含み、
前記第2のセットの行は少なくとも1つのグループを含み、前記少なくとも1つのグループの各々における各非パンクチャド列は前記シフトされた巡回行列を表す多くて1つのエントリを有し、前記少なくとも1つのグループの各々におけるパンクチャド列は、前記シフトされた巡回行列を表す少なくとも2つのエントリを有する、装置。
【請求項17】
請求項
9乃至
15のいずれか1項に記載の前記方法を実行するように構成されることによって特徴付けられる、請求項
16に記載の装置。
【請求項18】
前記基本行列に関連付けられたパラメータを記憶するように構成されるメモリをさらに含む、請求項
16または
17に記載の装置。
【請求項19】
装置であって、
非正則準巡回低密度パリティ検査行列の基本行列に基づいて、情報ビットのシーケンスを復号化するように構成されるデコーダを含み、
前記基本行列は複数の行および複数の列を有し、前記複数の列のうち、最初の列がパンクチャド列であるかまたは最初の2つの列がパンクチャド列であり、複数の非パンクチャド列とを含み、前記パンクチャド列の各々は、前記非パンクチャド列よりも高い重みを有し、
前記複数の行は行の第1のセットおよび行の第2のセットに
重みによって分割され、前記第1のセットの行は
二重対角サブ行列を含み、
前記第2のセットの行は少なくとも1つのグループを含み、前記少なくとも1つのグループの各々は少なくとも2つの連続する行を含み、前記少なくとも2つの連続する行は第1の部分および第2の部分から成り、
前記第1の部分は前記パンクチャド
列であり、前記第1の部分の行は非直交であり、
前記第2の部分は前記非パンクチャド
列であり、前記第2の部分の行は直交している、装置。
【請求項20】
装置であって、
非正則準巡回低密度パリティ検査行列の基本行列に基づいて、情報ビットのシーケンスを復号化するように構成されるデコーダを含み、
前記基本行列は複数のエントリを含み、各エントリはシフトされた巡回行列またはゼロ行列のいずれかを表し、
前記基本行列は複数の行および複数の列を含み、前記複数の列のうち、最初の列がパンクチャド列であるかまたは最初の2つの列がパンクチャド列であり、前記パンクチャド列以外の列が非パンクチャド列であり、前記パンクチャド列は、前記非パンクチャド列よりも高い重みを有し、
前記複数の行は行の第1のセットおよび行の第2のセットに
重みによって分割され、前記第1のセットの行は
二重対角サブ行列を含み、
前記第2のセットの行は少なくとも1つのグループを含み、前記少なくとも1つのグループの各々における各非パンクチャド列は前記シフトされた巡回行列を表す多くて1つのエントリを有し、前記少なくとも1つのグループの各々におけるパンクチャド列は、前記シフトされた巡回行列を表す少なくとも2つのエントリを有する、装置。
【請求項21】
請求項
1または請求項
9のいずれか1項において定義される前記基本行列に基づいて、情報ビットの前記シーケンスを復号化するように構成されることによって特徴付けられる、
請求項1を引用する請求項
19または
請求項9を引用する請求項20に記載の装置。
【請求項22】
前記デコーダは、前記少なくとも1つのパンクチャド列に対応する変数ノードに対するフラッディング復号化プロセスおよび前記非パンクチャド列に対応するノードに対する階層復号化プロセスに基づいて情報ビットの前記シーケンスを復号化するように構成される、請求項
21に記載の装置。
【請求項23】
送信側の装置と、受信側の装置とを含む通信システムであって、
前記送信側の前記装置は、基本行列に基づいて情報ビットのシーケンスを符号化し、少なくとも1つのパンクチャド列に対応する情報ビットを除いて情報ビットの符号化シーケンスを送信するように構成され、
前記受信側の前記装置は、少なくとも1つのパンクチャド列に対応する情報ビットを除いて情報ビットの前記符号化シーケンスを含む信号を受信し、前記基本行列に基づいて、前記受信された信号を復号化するように構成され、
前記送信側の前記装置は、請求項
6乃至
8、
16乃至
18のいずれか1項に記載の装置であり、前記受信側の前記装置は、請求項
19または20のいずれか1項に記載の装置である、通信システム。
【請求項24】
無線通信のための方法であって、
復号化されるべき情報ビットのシーケンスを取得するステップと、
非正則準巡回低密度パリティ検査行列の基本行列に基づいて、情報ビットの前記シーケンスを復号化するステップとを含み、
前記基本行列は複数の行および列を有し、前記複数の列のうち、最初の列がパンクチャド列であるかまたは最初の2つの列がパンクチャド列であり、前記パンクチャド列以外の列が非パンクチャド列であり、前記パンクチャド列の各々は、前記非パンクチャド列よりも高い重みを有し、
前記複数の行は行の第1のセットおよび行の第2のセットに
重みによって分割され、前記第1のセットの行は
二重対角サブ行列を含み、
前記第2のセットの行は少なくとも1つのグループを含み、前記少なくとも1つのグループの各々は少なくとも2つの連続する行を含み、前記少なくとも2つの連続する行は第1の部分および第2の部分から成り、
前記第1の部分は前記パンクチャド
列であり、前記第1の部分の行は非直交であり、
前記第2の部分は前記非パンクチャド
列であり、前記第2の部分の行は直交している、方法。
【請求項25】
前記基本行列は、請求項
1で定義されている前記基本行列である、請求項
24に記載の方法。
【請求項26】
無線通信のための方法であって、
復号化されるべき情報ビットのシーケンスを取得するステップと、
非正則準巡回低密度パリティ検査行列の基本行列に基づいて、情報ビットのシーケンスを復号化するステップとを含み、
前記基本行列は複数のエントリを含み、各エントリはシフトされた巡回行列またはゼロ行列のいずれかを表し、
前記基本行列は複数の行および複数の列を含み、前記複数の列のうち、最初の列がパンクチャド列であるかまたは最初の2つの列がパンクチャド列であり、前記パンクチャド列以外の列が非パンクチャド列であり、前記パンクチャド列の各々は、前記非パンクチャド列よりも高い重みを有し、
前記複数の行は行の第1のセットおよび行の第2のセットに
重みによって分割され、前記第1のセットの行は
二重対角サブ行列を含み、
前記第2のセットの行は少なくとも1つのグループを含み、前記少なくとも1つのグループの各々における各非パンクチャド列は前記シフトされた巡回行列を表す多くて1つのエントリを有し、前記少なくとも1つのグループの各々におけるパンクチャド列は、前記シフトされた巡回行列を表す少なくとも2つのエントリを有する、方法。
【請求項27】
前記基本行列は、請求項
9で定義されている前記基本行列である、請求項
26に記載の方法。
【請求項28】
コンピュータ上で実行すると、請求項
1、請求項
9、請求項
24、請求項25、請求項
26、または請求項27のいずれか1項に記載の前記方法を前記コンピュータに実行させる命令を含む、コンピュータ可読
記憶媒体。
【請求項29】
コンピュータ上で実行すると、請求項
1、請求項
9、請求項
24、請求項25、請求項26、または請求項27のいずれか1項に記載の前記方法を前記コンピュータに実行させる命令を含む、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は通信分野に関し、詳細には、データを符号化および復号化するための技術に関する。
【背景技術】
【0002】
低密度パリティ検査(LDPC)コードは、前方エラー訂正(FEC)スキームにおいて使用されるチャネルコードである。LDPCコードは、その優れた性能でよく知られており、近年では大きな注目を受けてきた。これは、シャノン限界に近いパフォーマンスを達成するその能力、ハードウェアにおける高い並列化を達成するコードを設計する能力およびその高いデータレートのサポートによるものである。結果として、現在アクティブな電気通信規格の多くは、それらの物理層FECスキームにおいてLDPCコードを有する。LDPCコードは、次世代の通信システム符号化規格であると考えられている。
【0003】
準巡回低密度パリティ検査(QC-LDPC)コードは、非正則QC-LDPC行列の基本行列に基づいており、基本行列は列と行によって形成されており、列はパンクチャド変数ノード(すなわち、エンコーダによって使用されるが、デコーダに送信されないか、デコーダによって受信されないとして有効に扱われない情報ビットに対応する変数ノード)に対応する1つまたは複数の列および非パンクチャド変数ノードに対応する列に分割可能であり、行は高密度行(すなわち、第1の重みを上回る重みを有する行)および低密度行(すなわち、第2の重みを下回る重みを有する行であって、第2の重みは第1の重み以下である)に分割可能である。
【0004】
チャネル符号化に対する既知のアプローチは多種多様なシナリオに対して良好に実行することが証明されている一方で、適切な符号化/復号化リソースによって高データスループットを達成する洗練された解決手段を提供するための進行中の研究が依然として存在する。
【発明の概要】
【課題を解決するための手段】
【0005】
本発明の第1の態様によると、方法が提供され、方法は、情報ビットのシーケンスを符号化または復号化するための非正則QC-LDPCコードの基本行列のエントリを提供するステップであって、エントリは非正則QC-LDPC行列のブロックを表し、各ブロックはシフトされた巡回行列またはゼロ行列を表す、ステップと、基本行列の行を第1のセットおよび第2のセットに分割するステップであって、第1のセットの行は第2のセットの行よりも高い重みを有する、ステップと、第2のセットの行によって形成される行列のいくつかの列を選択するステップであって、選択された列によって形成されるサブ行列の行は異なるグループに分割され、各グループは最大数の直交行から成り、選択はいくつかの異なるグループに基づく、ステップと、選択されていない列に対応する情報ビットをパンクチャドとして示すステップとを含む。
【0006】
非正則QC-LDPC行列の1つまたは複数の高重み列に対応する情報ビットをパンクチャリングすることは、高重み列に関するフラッディング復号化と組み合わせて、「残りの」直交サブ行(または行ベクトル)の異なるグループに関して階層復号化を可能にし、それによって、高品質コードを維持しながら、復号中に高度の並列性を達成する。従って、パンクチャドにならない列を選択することは、あまりに多くの列(例えば、閾値によって与えられるものを超える)に対応する情報ビットがパンクチャされることを回避しながら、直交サブ行(または行ベクトル)の異なるグループの数を可能な限り高く保つことに努める。
【0007】
これに関して、本明細書および特許請求の範囲を通して使用される「巡回行列」という用語はN×Nサイズの二次行列、例えば単位行列を特に指し、ここで、各行ベクトルは前の行ベクトルに対して1要素右にシフトすることは留意される。さらに、「巡回サイズ」という用語は、巡回のサイズNを指す。さらに、本明細書および特許請求の範囲を通して使用される「基本行列」という用語は、シフト値でラベル付けされたアレイを特に指す。基本行列の各シフト値は、巡回の行、例えば、単位行列が基本行列によって定義されるQC-LDPC行列の対応するサブ行列を生成するために巡回的に(右に)シフトされるべき回数を与える。
【0008】
さらに、QC-LDPCコードおよびLDPCコードがしばしば交互に使用されることは留意されるが、当業者はこれらの意味を理解することができる。本明細書および特許請求の範囲を通して使用される「重み」という用語は、シフト値でラベル付けされた基本行列の行または列におけるエントリ、すなわち、ゼロ行列を表さない基本行列の行または列におけるエントリの数を特に指し、これは、QC-LDPC行列の対応する行および列における「1」の数に等しい。これに関して、本明細書および特許請求の範囲を通して使用される「重み」という用語は、同じまたは同様の意味を有する「節度」または「密度」という用語によって交換可能であることは留意される。さらに、情報ビット(または対応する変数ノードまたは対応する列)に関して本明細書および特許請求の範囲を通して使用される「パンクチャド」という用語は、情報ビットが、エンコーダによってのみ使用されるが、デコーダに送信されないか、デコーダによって受信されないとして有効に扱われないことを特に示す。さらに、列、ノードおよび情報ビットに関して、本明細書および特許請求の範囲を通して使用される「対応する」という用語は、QC-LDPC行列のタナーグラフ表現に関する、列と変数ノード/情報ビットとの間のマッピングを特に指す。
【0009】
さらに、「行列」を形成する値は必ずしも物理的に格納される必要も、行列(またはアレイ)形式で表される必要もなく、行列を含むプロセスを通して行列代数で使用される必要もないことは留意されるべきである。むしろ、本明細書および特許請求の範囲を通して使用される「行列」という用語は、割り当てられた行および列のインデックスを有する(整数)値のセットを等しく指してもよく、(論理)メモリアレイに格納された(整数)値のセットを等しく指してもよい。さらに、行列代数を含まない場合、または、それぞれの行列代数ルーチンが適切に再定義されている場合、行および列の観念は変更されても、または自由に選択されることさえできる。しかしながら、本明細書および特許請求の範囲を通して、これは当技術分野で通常使用される数学的概念および表記法に準拠しており、それらは同等の数学的概念および表記法を包含するものとして理解されるべきである。
【0010】
第1の態様に係る方法の第1の可能な実施形態では、選択されていない列の数は1または2である。
【0011】
従って、比較的少数の選択されていない列があってよく、これらはしかしながら、比較的高い重み(例えば、選択された列の平均重みの2倍または3倍よりも大きい)を有し、それによって、残りの(選択された)サブ行(または行ベクトル)のグループ内で直交性を実現するために「分離」(または非重複セットまたはグループに分割)されなければいけない比較的少数の列により、復号中に高度の並列性を効果的に可能にしながら、直交サブ行(または行ベクトル)のグループの良好な「連結性」を提供する。
【0012】
第1の態様自身に係る、または第1の態様の第1の実施形態に係る方法の第2の可能な実施形態では、第2のセットの行によって形成される行列のいくつかの列を選択するステップは、第2のセットの行によって形成される行列の列を、重みによって順序付けまたはグループ分けし、閾値未満の重みを有する列を選択するステップ含む。
【0013】
従って、多数の直交サブ行(または行ベクトル)を有するグループが達成されることができ、これは、復号中のより高度の並列性を可能にする。
【0014】
第1の態様自身に係る、または第1の態様の第1または第2の実施形態に係る方法の第3の可能な実施形態では、第1のセットの行によって形成される行列の列のサブセットから成る行列は、二重対角または三角構造を有する。
【0015】
従って、非正則QC-LDPC行列の高密度部分は、二重対角または三角構造を有するパリティ部分を有することによって符号化を容易にする。これはまた、低密度部分から削除された行数(および、例えば、行の削除が空の列を残す場合、対応する列)は、しかしながら、高密度部分の符号化/復号化特性には有効に触れずに、コードのレートを変更することを可能にするため、レート適応性に対するコードの感受性を高める。これに関して、方法はまた、非正則QC-LDPC行列の第2のセットのいくつかの行(および対応する列)を削除して、非正則QC-LDPCコードのレートに適合させることを含んでよい。
【0016】
第1の態様自身に係る、または第1の態様の第1乃至第3の実施形態のいずれか1つに係る方法の第4の可能な実施形態では、第2のセットの行によって形成される行列の列のセブセットから成る行列は、三角行列または単位行列構造を有する。
【0017】
従って、符号化は、高密度部分のサブ列(または列ベクトル)に基づいて入力シーケンスを符号化することおよび低密度部分のサブ列(または列ベクトル)に基づいて符号化された出力シーケンスを符号化することを含む2ステップ手順で実行されてよく、それによって、ラプターのような符号化プロセスを利用する。
【0018】
第1の態様自身に係る、または第1の態様の第1乃至第4の実施形態のいずれか1つに係る方法の第5の可能な実施形態では、非パンクチャド情報ビットに対応する第1のセットの行によって形成される行列の列によって形成される行列の行は、各グループが直交行から成る、異なるグループに分割される。
【0019】
従って、直交サブ行(または行ベクトル)のグループ(またはサブセット)は、高密度セットおよび低密度セットで形成されることができ、これは、復号中のさらにより高度の並列性を可能にする。
【0020】
第1の態様自身に係る、または第1の態様の第1乃至第5の実施形態のいずれか1つに係る方法の第6の可能な実施形態では、方法は、基本行列の提供されたエントリに基づいて、情報ビットのシーケンスに対応する符号語を決定するステップと、パンクチャドとして示されている情報ビットを除いて符号語を送信するステップとをさらに含む。
【0021】
従って、QC-LDPCコードのレートが高くなることができる。
【0022】
第1の態様自身に係る、または第1の態様の第1乃至第6の実施形態のいずれか1つに係る方法の第7の可能な実施形態では、方法は、基本行列の提供されたエントリと、どの情報ビットがパンクチャドであるかに関する情報とに基づいて、情報ビットの受信されたシーケンスを復号化し、復号は、フラッディングおよび階層復号化操作を含み、層は異なるグループに対応するステップをさらに含む。
【0023】
従って、復号化プロセスの高い並列性を維持しながら、復号の収束性が改善されることができる。これに関して、本明細書および特許請求の範囲を通して使用される「階層復号化」という用語は、層の行は並列に処理されるが、層は(実質的に)連続的に処理される復号化プロセスを特に指すことは留意される。
【0024】
本発明の第2の態様によると、デコーダが提供され、デコーダは、非正則QC-LDPCコードの基本行列のエントリを記憶する非一時的メモリであって、基本行列の列は第1のセットおよび第2のセットに分割され、第1のセットは1つまたは複数の列を含み、第2のセットの列は直交行のグループを含む行列を形成する、非一時的メモリを含み、デコーダは、第1のセットの1つまたは複数の列に対応する変数ノードのためのフラッディング復号化プロセスと、第2のセットの列に対応するノードのための階層復号化プロセスとに基づいて、情報ビットの受信されたシーケンスを復号化するように構成される。
【0025】
従って、コード品質および復号化プロセスの高い並列性を維持することを可能にしながら、復号の収束性が改善されることができ、それによって、低い誤り率で高スループットを可能にする。
【0026】
第2の態様に係るデコーダの第1の可能な実施形態では、第1のセットの1つまたは複数の列に対応する変数ノードは、パンクチャドとして示される。
【0027】
従って、非正則QC-LDPCコードのレートは高くなることができる。
【0028】
第2の態様自身に係る、または第2の態様の第1の実施形態に係るデコーダの第2の可能な実施形態では、第1のセット内の列の数は1または2である。
【0029】
従って、第1のセット内の比較的少数の列があってよく、これはしかしながら、比較的高い重み(例えば、第2のセットの列の平均重みの2倍または3倍よりも大きい)を有してよく、それによって、層の「連結性」を改善する。
【0030】
第2の態様自身に係る、または第2の態様の第1または第2の実施形態に係るデコーダの第3の可能な実施形態では、基本行列の行は第1のセットおよび第2のセットに分割され、第1のセットの行は第2のセットの行よりも高い重みを有する。
【0031】
これは、コードの品質を実質的に低下させることなく、第2のセットの行(および第2のセットの対応する列)を削除(または無視)することによって、コードをレートの適応性に対してさらにより感受性を強くさせる。
【0032】
第2の態様の第3の実施形態に係るデコーダの第4の可能な実施形態では、第1のセットの行によって形成される行列の列のサブセットから成る行列は、二重対角または三角構造を有する。
【0033】
従って、非正則QC-LDPC行列の高密度部分は、二重対角または三角構造を有するパリティ部分を有することによって、符号化を容易にする。
【0034】
第2の態様の第3または第4の実施形態に係るデコーダの第5の可能な実施形態では、第2のセットの行によって形成される行列の列のセブセットから成る行列は、三角行列または単位行列構造を有する。
【0035】
従って、符号化は、デコーダによる再送信を要求するための必要性を低減または排除するラプターのような符号化プロセスを利用して実行されてよい。
【0036】
第2の態様の第3乃至第5の実施形態のいずれか1つに係るデコーダの第6の可能な実施形態では、第2のセットの列と第1のセットの行の重複エントリよって形成される行列の行は、各グループが直交行から成る異なるグループに分割される。
【0037】
従って、復号中のより高度の並列性が達成されることができる。
【0038】
本発明の第3の態様によると、命令を記憶する非一時的コンピュータ可読媒体が提供され、命令は、コンピュータによって実行されると、非正則QC-LDPC行列の基本行列をコンピュータに提供させ、基本行列は列と行によって形成されており、列はパンクチャド変数ノードに対応する1つまたは複数の列および非パンクチャド変数ノードに対応する列に分割可能であり、行は第1の重みを上回る重みを有する第1の行および第2の重みを下回る重みを有する第2の行に分割可能であり、第2の重みは第1の重み以下であり、第2の行と非パンクチャド変数ノードに対応する列との重複は直交行ベクトルのグループに分割可能である。
【0039】
非正則QC-LDPC行列の基本行列の1つまたは複数の高重み列に対応する変数ノードをパンクチャリングすることは、高重み列に関するフラッディング復号化と組み合わせて、「残りの」直交サブ行(または行ベクトル)の異なるグループに関して階層復号化を可能にし、それによって、高品質コードを維持しながら、復号中に高度の並列性を達成する。
【図面の簡単な説明】
【0040】
【
図1】
図1は、本発明に係る、可能な適用シナリオの概略図を示す。
【
図2】
図2は、デジタル通信システムの概略例を示す。
【
図3】
図3は、情報ビットのシーケンスを符号化または復号化するための非正則QC-LDPCコードを提供するプロセスのフローチャートを示す。
【
図4】
図4は、非正則QC-LDPCコードの基本行列の構造を示す。
【
図5】
図5は、非正則QC-LDPCコードの基本行列を示す。
【
図5a】
図5aは、非正則QC-LDPCコードの別の基本行列を示す。
【
図8】
図8は、復号化プロセスのフローチャートの第1の部分を示す。
【
図9】
図9は、復号化プロセスのフローチャートの第2の部分を示す。
【
図10】
図10は、復号化プロセスのフローチャートの第3の部分を示す。
【
図11】
図11は、復号化プロセスの第1のハードウェア実装のスケジュールを示す。
【
図12】
図12は、復号化プロセスの第2のハードウェア実装のスケジュールを示す。
【発明を実施するための形態】
【0041】
図1は、本開示に係る可能な適用シナリオを示す。
図1に示されるように、端末(ユーザ機器、略してUE等)のうちの少なくとも1つは、無線アクセスネットワーク(略してRAN)およびコアネットワーク(略してCN)に接続される。本開示で説明される技術は、5G通信システム、または、様々な無線アクセス技術を使用する他の無線通信システム、例えば、符号分割多元接続、周波数分割多元接続、時分割多元接続、直交周波数分割多元接続、シングルキャリア周波数分割多元接続および他の無線アクセス技術を使用するシステムに適用されてよい。加えて、本開示で説明される技術は、進化型通信システムにさらに適用されてよい。可能な実施では、端末は、無線アクセスネットワークおよびコアネットワークを介して、IPマルチメディアサブシステムネットワークに接続することができる。
【0042】
本発明に含まれる「端末」という用語は、ハンドデバイス、車載型デバイス、ウェアラブルデバイス、コンピューティングデバイスまたは無線モデムに接続される別の処理デバイスを含んでよく、ここで、デバイスは無線通信機能と、様々な形態のユーザ機器(User Equipment, 略してUE)、モバイル局(Mobile station, 略してMS)、端末(terminal)、端末機器(Terminal Equipment)等を有する。
【0043】
無線アクセスネットワークは少なくとも1つの基地局を含む。基地局(base station, 略してBS)は、無線アクセスネットワークに配置され、UEのための無線通信機能を提供するように構成される装置である。基地局は、様々な形態のマクロ基地局、マイクロ基地局、中継局、アクセスポイント等を含んでよい。異なる無線アクセス技術に関しては、基地局の機能を有するデバイスの名前は異なることがある。
【0044】
図2は、本開示のプロセスが実施され得るデジタル通信システム10を例示するブロック図を示す。デジタル通信システム10は、エンコーダ12を含む送信側およびデコーダ14を含む受信側を含む。エンコーダまたはデコーダは、少なくとも1つのプロセッサによって実施されてよく、例えば、チップセットによって実施されてよい。少なくとも1つのプロセッサまたはチップセットは、基地局または端末に設置されることができる。送信側のエンコーダ12の入力は、例えば、エンコーダ12によって実行される符号化操作においてrビットの冗長シーケンスが追加されるkビットの情報シーケンスIS
1であり、それによって、変調器16に転送され得るk+r=nビットの符号化情報シーケンスIS
2を生成する。
【0045】
変調器16は、符号化シーケンスIS2を有線または無線チャネル18、例えば、導電性ワイヤ、光ファイバ、無線チャネル、マイクロ波チャネルまたは赤外線チャネル等を介して順番に送信される変調された信号ベクトルCH_INに変換することができる。チャネル18は通常ノイズの多い外乱に影響されやすいため、チャネル出力CH_OUTはチャネル入力CH_INとは異なり得る。
【0046】
受信側では、チャネル出力ベクトルCH_OUTはある尤度比を生成する復調器20によって処理され得る。デコーダ14は、デコーダ14によって実行される復号化操作において受信された情報シーケンスIS3における冗長性を利用して、受信された情報シーケンスIS3におけるエラーを訂正して、復号化情報シーケンスIS4を生成することができる(M. P. C. Fossorierら、“Reduced Complexity Iterative Decoding of Low-Density Parity Check Codes Based on Belief Propagation”、IEEE TRANSACTIONS ON COMMUNICATIONS、1999年5月、第47巻、第5号、673-680ページ、およびJ. Chenら、“Improved min-sum decoding algorithms for irregular LDPC codes”、PROCEEDINGS OF THE 2005 IEEE INTERNATIONAL SYMPOSIUM ON INFORMATION THEORY、449-453ページ、2005年9月を参照されたい)。復号化情報シーケンスIS4は情報シーケンスIS1(の推定値)が抽出されることができる符号化情報シーケンスIS2の推定値である。
【0047】
符号化操作および復号化操作は、LDPCコードによって管理され得る。チャネル符号化の一般的な定式化においては、LDPCコードは、エンコーダ12によって実行される符号化操作のために生成行列Gを採用してよく、デコーダ14によって実行される復号化操作のためにパリティ検査行列Hを採用してよい。サイズ1×kの情報シーケンスIS1、サイズ1×nの符号語IS2およびr=(n-k)ビットの冗長(パリティ)シーケンスを持つLDPCコードについては、生成行列Gはk×nのサイズを有し、パリティ検査行列Hはr×n=(n-k)×nのサイズを有する。
【0048】
パリティ検査行列Hr×nおよび生成行列Gk×nは直交特性を享受し、これは、k個の線形独立行を有するいかなる生成行列Gk×nに関しても、r=(n-k)個の線形独立行を有するパリティ検査行列Hr×nが存在することを述べる。従って、以下の式が満たされるように、生成行列Gk×nのいかなる行もパリティ検査行列Hr×nの行に対して直交している:
【0049】
【0050】
符号化操作は、情報シーケンスIS1と生成行列Gk×nとの間の乗算によって実行されることができ、乗算の結果は符号化情報シーケンスIS2である:
IS2 = IS1・Gk×n ・・・・・・・・・・・・・(2)
【0051】
受信側では、生成行列Gk×nとパリティ検査行列Hr×nとの間の直交特性により、以下の式が満たされるべきである:
【0052】
【0053】
ここで、IS4はサイズ1×nの復号された受信された情報シーケンスである。上記の式が検証された場合、情報シーケンス推定値IS4は正しいと推測されることができる。
【0054】
パリティ検査行列Hr×nが生成されると、生成行列Gk×nの取得が可能になり、その逆も同様である。従って、パリティ検査行列Hr×nを決定するいかなるプロセスも、生成行列Gk×nを取得する同等のプロセスにマッピングされることができ、その逆も同様であり、その結果、パリティ検査行列Hr×nを決定することに関する本明細書および特許請求の範囲を通して開示されるいかなるプロセスも、生成行列Gk×nを取得する同等のプロセスを包含しており、その逆も同様であると理解されるべきである。
【0055】
さらに、特定の構造のパリティ検査行列Hr×n、例えば、二重対角構造のパリティ部分を有するパリティ検査行列Hr×n等を有するLDPCコードは、情報シーケンスIS1の符号化がパリティ検査行列Hr×n(のみ)を使用することを可能にし、その結果、生成行列Gk×nを取得することは必要とされない場合がある(T. J. RichardsonおよびR. L. Urbanke, “Efficient encoding of low-density parity-check codes”, IEEE TRANSACTIONS ON INFORMATION THEORY, 第47巻, 第2号, 638-656ページ, 2002年8月を参照されたい)。
【0056】
パリティ検査行列Hr×nの特定の形態は、二次サブ行列I(pj,l)、すなわち、巡回行列(または略して「巡回」)に分割されることができる正則QC-LDPC行列
【0057】
【0058】
であり、これは、例えば、N×N単位行列I(0)をpj,l位置巡回右シフトすることから取得されることができる:
【0059】
【0060】
ここで、N=n/Lである(M. P. C. Fossorier, “Quasi-Cyclic Low-Density Parity-Check Codes from Circulant Permutation Matrices”, IEEE TRANSACTIONS ON INFORMATION THEORY, 第50巻, 第8号, 1788-1793ページ, 2004年8月を参照されたい)。従って、正則QC-LDPC行列
【0061】
【0062】
は、
【0063】
【0064】
を満たす基本行列Bによって定義されることができる。
【0065】
さらに、非正則QC-LDPC行列
【0066】
【0067】
の基本行列Bは、
【0068】
【0069】
によって取得されることができ、ここで、“c”はアダマール積を示し、
【0070】
【0071】
は、
【0072】
【0073】
を有するマスク行列を示す。あるいは、非正則QC-LDPC行列
【0074】
【0075】
の基本行列Bは、サイズN×Nのゼロ行列を表すラベル付けされていないエントリ(これらは時には「-1」の値、またはアスタリスク「*」によって表される)を有するシフト値
【0076】
【0077】
を有する基本行列Bを部分的にラベル付けすること(のみ)によって取得されることができる。
【0078】
従って、エンコーダ12およびデコーダ14においてQC-LDPCコードを採用するために、エンコーダ12およびデコーダ14は巡回、シフト値、すなわち、基本行列Bのラベル付けされたエントリに対応する値および(任意で)マスク行列Mmaskを提供されることができる。例えば、QC-LDPC行列
【0079】
【0080】
を決定するためにシフト値を選択するように構成される装置は、エンコーダ12および/またはデコーダ14にシフト値を提供してよい。さらに、エンコーダ12およびデコーダ14はまた、1つまたは複数の非正則QC-LDPC行列
【0081】
【0082】
を生成するために、マスク行列M maskを提供されることができる。
【0083】
さらに、QC-LDPC行列HQC(およびさらに一般的な任意のLDPCコード)はまた、その等価二部グラフ(「タナーグラフ」)によって記載されることもでき、タナーグラフの各辺は複数の検査ノードのうちの1つの検査ノードに複数の変数ノードのうちの1つの変数ノードを接続することは留意されるべきである。例えば、r行n列のQC-LDPC行列
【0084】
【0085】
は、QC-LDPC行列
【0086】
【0087】
内に対応する「1」がある場合に、検査ノードと変数ノードとの間に辺を有する、r個の検査ノードとn個の変数ノードを有するその等価二部グラフによって表されることができる(R. Tanner, “A Recursive Approach to Low Complexity Codes”, IEEE TRANSACTIONS IN INFORMATION THEORY, 第27巻, 第5号, 533-547ページ, 1981年9月を参照されたい)。これに関して、変数ノードは符号語ビットを表し、検査ノードはパリティ検査式を表すことは留意されるべきである。
【0088】
図3は、それぞれが情報シーケンスIS
1およびIS
3等の、情報ビットのシーケンスを符号化または復号化するために非正則QC-LDPCコードを提供するプロセス22のフローチャートを示す。プロセス22は、例えば、コンピュータで実施されることができる。例えば、プロセス22は、コンピュータによって実行されると、コンピュータにプロセス22を実行させる、永続的に記憶されたコンピュータ可読命令によって実施されることができる。非正則QC-LDPCコードの提供された基本行列Bは、例えば、デジタル通信システム10のエンコーダ12およびデコーダ14に提供されてよく、エンコーダ12およびデコーダ14によって実行される符号化または復号化操作、すなわち、情報ビットのシーケンスを符号化または復号化するためにそれぞれ使用されてよい。
【0089】
情報ビットのシーケンスを符号化または復号化するための非正則QC-LDPCコードを提供するプロセス22は、非正則QC-LDPCコードの基本行列Bのエントリを提供することによるステップ24で開始してよく、エントリは非正則QC-LDPC行列のブロックを表し、各ブロックはシフトされた巡回行列またはゼロ行列を表す。基本行列Bの可能な構造が
図4に示される。これは高密度部分(
図4の左上に灰色で示されている)における「コア」基本行列を含む。コア基本行列は、符号化を容易にするために二重対角構造を有するパリティ部分を有する。最高のレートが必要とされる場合、情報シーケンスは、コア基本行列のシフト値のみを使用して符号化される。より低いレートが許容される場合は、追加の行および列が基本行列に追加されることができる。
図4に示されるように、追加の行と列との間の重なりは、下三角形もまた可能であるが、単位行列を形成してよい。追加の行は、典型的には、コア基本行列の行よりも低い重みを有し、送信される符号語における追加のパリティビットを(追加された「対応する」列と組み合わせて)提供する。
【0090】
基本行列Bはm行n列の行列であり、ここで、mおよびnは整数であることは留意されるべきである。基本行列Bはより多くの列および行を含むことによって拡張されることができる。例えば、基本行列Bは46行68列の行列であり、または、基本行列Bは90行112列の行列である、等々である。本開示は、基本行列のサイズを限定しない。
【0091】
拡張部分は、拡張部分の全ての他の列よりも実質的に高い重みを通常有する1、2、3、またはそれ以上の高重み列を含む。例えば、1、2または全ての高重み列は、空のセル、すなわち、ゼロ行列を表すエントリを持たないことがある。
図4に示されるように、2つの高重み列に対応する変数ノードはパンクチャドとして示され、「残りの」サブ行は、直交サブ行(または行ベクトル)の(非重複)層に分類される。
【0092】
図5は、サイズ19×35(19行35列)の基本行列Bの提供されたエントリの数値例を示し、基本行列Bのラベル付けされたエントリ(セル)は対応するシフト値によって示され、ラベル付けされていないエントリ(ゼロ行列に対応する)は空白のままにされる。
図5に示されるように、基本行列Bの行は17を上回る重みを有する上位部分と9を下回る重み、すなわち、上位部分の行の重みの半分未満を有する下位部分とに分割されることができる。従って、
図5に示される基本行列Bは、
図3に示されるプロセス22のステップ26において示されるように、行1~3を含む高密度部分と、行4~19を含む低密度部分に分割されることができる。
【0093】
さらに、
図5に示されるように、列2~35と低密度部分との重なりによって形成されるサブ行列の行は、直交行の層(またはグループ)に分割されることができ、各層はほぼ同じ数のセルを含む。さらに、高密度部分は、高密度部分の非ゼロ列に基づいて、情報ビットのシーケンスを容易に符号化することを可能にする二重対角サブ行列を含む。さらに、低密度部分は、符号語の容易な符号化を可能にする下三角形を有するパリティ部分を有するラプターのような拡張を提供する。
【0094】
図5aは、サイズ46×68(46行68列)の基本行列Bの提供されたエントリの数値例を示す。
図5aでは、列1および2はパンクチャドである。行9から開始する列3~68については、複数グループの直交行がある。直交行は列の視点からは重複しない行である。例えば、行9および10は直交しており、行11および12は直交している。
【0095】
図6および
図7は、基本行列の基本グラフの異なる設計を示す。本開示の「基本グラフ」という用語は、各正方形ボックスが基本パリティ検査行列内の要素を表す、いくつかの正方形ボックスを含む。基本パリティ検査行列の各非ゼロ要素はマークされたボックスによって表される。各マークされたボックスは、基本行列におけるシフト値に関連付けられている。
図6および7においては、列1および2はパンクチャド列である。パンクチャド列は、1つまたは複数の列であることができることは留意されるべきである。
【0096】
具体的には、
図6は、14行36列の基本行列の基本グラフの例を示す。行7から開始する、すなわち、行7から行14までの、非パンクチャド列(すなわち、列1および2以外)については、このような行は衝突しない準行直交である。特に、行7から開始して、行の各グループ(例えば、各2つの隣接行)は、衝突しない準行直交である。
図6からわかるように、マークされたボックスは重複していない。例えば、行7および8は直交しており、行9および10は直交しており、行11および12は直交しており、行13および14は直交している。これらの行、行(7, 8)、(9, 10)および(11, 12)は直交行と呼ばれる。直交行については、各行のマークされたボックスは、列の視点からは重複していない。グループはまた、直交グループとも呼ばれることができる。
【0097】
本実施形態では、第1のセットの行は行1から行6までであり、第2のセットの行は行7から開始して行14までである。この設計では、行1~6がコア基本行列の行とみなされ、行7~14が拡張部分の行とみなされる場合、拡張部分の全ての行は衝突しない準行直交である。行1~5がコア基本行列の行とみなされ、行6~14が拡張部分の行とみなされる場合、コア基本行列から離れた拡張部分のほとんどの行は衝突しない準行直交である。
【0098】
図6における直交グループは2つの行を含むことは留意されるべきである。直交グループはまた、2よりも多くの行を含むことができる。異なる直交グループは、同数の行を有しても異なる数の行を有してもよい。
【0099】
図7は13行35列の基本行列の基本グラフを示す。
図7においては、行の直交グループは行8から始まって拡張している。例えば、行8および9は直交しており、行10および11は直交しており、行12および13は直交している。
図7における直交グループは、隣接する2つの直交行、すなわち、行8および9、行10および11、および行12および13を含む。本実施形態では、各グループは2つの直交行を有する。各グループが異なる数の行を有するように、例えば、3個の直交行、または4個の直交行等々を有するように修正されることもできる。
【0100】
図3に例示されるプロセス22のステップ28にさらに示されるように、基本行列Bの列1はパンクチャドである。基本行列Bの提供されたエントリに基づいてエンコーダ12によって情報ビットのシーケンスを符号化し、チャネル18を介してデコーダ14に対応する符号語(パンクチャドノードに対応する情報ビットを除く)を送信した後、エンコーダ14は、
図8、
図9および
図10のステップA、BおよびCによって示されるようなフラッディングおよび階層復号化ステップを結合した正規化された最小和復号化プロセスを使用して受信された情報ビットを繰り返し復号化してよい。さらに、復号化プロセスにおいては、行列の拡張部分(
図5において濃い灰色で示されている)に対応するパンクチャド列のシフト値は、行および列シフト操作を使用して、ゼロに設定されることができるという事実が利用され得る。さらに、階層復号化ステップが適用される密度部分(すなわち、非パンクチャド列に対応する部分)の部分に直交行のグループを提供することによって、復号化操作の並列性が向上され得る。
【0101】
図8に示されるステップAによって示されるように、パンクチャド列の対数尤度比(llr-s)は、長さNのベクトルであるllr、sg0
j、sg
j、min
j、submin
j、col
j、v2c
j、csg
j、c2v
j、nsg0
j、сmin
j、psg
j、pmin
j、psubmin
j、pcol
j、nsg
j、nmin
j、nsubmin
j、ncol
jおよびnc2v
jおよび正規化された最小和復号化プロセスのスケールパラメータを示すalphaを有する以下の式を使用して計算される:
・llrはパンクチャドノードのllr-sのベクトルを示し、これは、特定用途向け集積回路(ASIC)レジスタに格納されることができる。
・sg0
jはパンクチャドノードのメッセージ(v2c)とグループ内の第j行をチェックするための変数の符号を示し、これは、ランダムアクセスメモリ(RAM)に格納されることができる。
・sg
j、min
j、submin
j、col
jは1<=j<=nの所与の直交グループの第j行における符号、最小値、サブ最小値およびゼロベースのargMinimumの乗算を示す。これらの値は全て、復号化プロセスを開始する前に計算されて、メモリに格納されてよい。
・psg
j、pmin
j、psubmin
j、pcol
jは現在の直交性グループの第j行における符号、最小値、サブ最小値およびargMinimumの更新された乗算を示す。これらの値は、パンクチャド列以外の各列に対して決定される。
【0102】
第1に、csgj、|c2vj|およびc2vは、
・csgj = sgj * sg0j、
・|c2vj|= (colj ==0)? subminj: minj、および、
・c2v=csg*|c2v|
によって、1<=j<=nのために計算される。
【0103】
次いで、nsg0j、cminjおよびv2cjは、
・nsg0j = sign(v2cj)、
・cminj = | v2cj |* alpha、
・v2cj = llr - c2vj
によって計算される。
【0104】
ここで、
図9に示されるステップBによって示されるように、新しい最小値、サブ最小値およびargMinimum、ならびに現在の直交性グループの各行におけるパンクチャド列の符号は、
・sg0
j = nsg0
j
・nsg
j = nsg0
j * psg
j、
・ncol
j = (cmin
j > pmin
j) ? pcol
j : 0、
・nmin
j = (cmin
j > pmin
j) ? pmin
j : cmin
j、および
・nsubmin
j = (cmin
j > pmin
j) ? ((cmin
j > psubmin
j) ? psubmin
j: cmin
j) : pmin
j
によって1<=j<=nのために計算される。
【0105】
これらの値はメモリに格納され、ここで、sgj、minj、subminj、coljおよびsg0jは次の復号化の繰返しのために現在格納されている値を置き換える。
【0106】
最後に、パンクチャドノードのpsum、c2vsumおよび新しいllr-sは、
・psum = psg
1 * pmin
1 +...+ psg
n * pmin
n、
・c2vsum = c2v
1 +...+ c2v
nおよび、
・llr = llr - c2vsum + psum
によって
図10に示されるステップCによって示されるように計算される。
【0107】
さらに、提案される方式は、直交行の各グループが3クロックサイクルで処理され、全てのllr-sがレジスタに格納され、利用可能なプロセッサの数がQC-LDPC行列の列の数と等しく、sgj、minj、subminj、coljが第1のクロックサイクルが始まる前にレジスタにロードされる例から明らかになるように、ハードウェアで効率的に実施されることができる。
【0108】
非パンクチャド列の処理は同じ方式を使用して行われ、パンクチャド列の処理は上述の式に従って行われる:
【0109】
クロックサイクル1。パンクチャド列以外の全ての列に対して、c2vメッセージが計算される。計算されたc2vメッセージはllr-sから減算され、その結果、llr-sが格納された同じレジスタに格納されるv2cメッセージが取得される。取得されたv2cメッセージは部分最小値を決定するために使用されるnsg0およびcminを決定するために使用される。また、クロックサイクル1では、前のグループのパンクチャド列のllr-sは従って取得される。その後、これらのllr-sはシフトされてレジスタに格納される。結果として、パンクチャド列のllr-sは、他の列のllr-sよりも1クロックサイクル後に計算されるが、これらはまた、1クロックサイクル後に(第2クロックサイクルで)使用される。
【0110】
クロックサイクル2。最小値(すなわち、psgj、pminj、psubminj、pcolj)は部分最小値から計算される。また、nsg0、cminおよびc2vはパンクチャド列のために計算される。その後、nsgj、nminj、nsubminj、ncoljの値が計算されてメモリに格納される。
【0111】
クロックサイクル3。パンクチャド列以外の全ての列に関するnsgj、nminj、nsubminj、ncoljの取得された値から、新しいc2vメッセージが計算されることができる。その後、これらの値はv2c-メッセージと加算されて、全ての非パンクチャド列のllr-sが取得される。取得されたllr-sはその後レジスタに格納される。また、このクロックサイクルでは、psumおよびc2vsumが計算される。
【0112】
基本行列の1よりも多い列がパンクチャドとして示される場合、上記修正された最小和復号化プロセスは、それに応じて拡張されるべきである。例えば、2つのパンクチャド列の処理は、以下の方式に従って行われることができる:
【0113】
クロックサイクル1a)全ての非パンクチャド列について、c2vメッセージが計算される。c2vメッセージは、llr-sから減算される。結果として、llr-sとして同じレジスタに格納されることができるv2cメッセージが取得される。これらのv2cメッセージは、nsg0およびcminの値を取得するために使用されることができる。これらの値は、部分最小値を取得するために使用される。
【0114】
クロックサイクル1b)また、第1のクロックサイクルにおいても、2つのパンクチャド列のllr-sは、前の直交性グループに対して取得されることができる。その後、これらのllr-sはシフトされてレジスタに格納されることができる。結果として、パンクチャド列に対するllr-sは1クロック後に取得されることができるが、これらは1クロック後に必要とされるため何ら問題を引き起こさない。
【0115】
クロックサイクル2a)最小値は部分最小値から収集され、すなわち、psgj、pminj、psubminj、およびpcoljのための値が取得される。
【0116】
クロックサイクル2b)このクロックサイクルにおいては、nsg0、cminおよびc2vが2つのパンクチャド列のために計算される。その後、nsgj、nminj、nsubminj、およびncoljの値が計算されてメモリに格納される。
【0117】
クロックサイクル3a)nsgj、nminj、nsubminj、ncoljの取得された値から、非パンクチャド列全てに対して、メッセージc2vが計算され、これはv2cメッセージと加算された後、全ての非パンクチャド列のllr-sが与えられる。llr-sはシフトされてレジスタに格納される。
【0118】
クロックサイクル3b)。このクロックサイクルにおいては、メッセージnc2vおよび合計c2vsumおよびnc2vsumが計算される。
【0119】
上述の方式を使用した場合、ステップ1a)、2a)、3a)のためにパンクチャノードのための特別なプロセッサが必要とされる場合があり、さらに操作1b)、2b)、3b)を実行する各非パンクチャド列のためにプロセッサが必要とされる場合がある。QC-LDPC行列がmグループの直交サブ行を有する場合、繰返し毎に3*mクロックが必要とされ得る。各サブプロセッサ1а)、2а)、3а)、1b)、2b)、3b)は3つの利用可能なものから2クロックの間ストールを有する。
【0120】
別のさらに多くのメモリ効率方式がプロセッサ毎に4クロックで、より少ないプロセッサで使用されてよい(パンクチャド列のために1プロセッサおよび4つの非パンクチャド列のために1つのプロセッサ)。
【0121】
クロックIa) 1a)からの計算は非パンクチャド列の第1の4分の1に対して実行される。
【0122】
クロックIb) 前のグループの第1の行のパンクチャド列のllr-sが計算される、その後、llr-sはシフトされてレジスタに格納される。
【0123】
クロックIIa) 2a)の動作は、非パンクチャド列に対して実行され、1a)の動作は非パンクチャド列の第2の4分の1に対して実行される。
【0124】
クロックIIb) nsg0、cminおよびc2vはパンクチャド列に対して計算され、nsgj、nminj、nsubminj、およびncoljが取得されてレジスタに格納される。
【0125】
クロックIIIa) 3a)の動作は非パンクチャドの第1の4分の1に対して実行される。2a)の動作は、非パンクチャド列の第2の4分の1に対して実行される。1a)の動作は非パンクチャド列の第3の4分の1に対して実行される。
【0126】
クロックIIIb) nsgj、nminj、nsubminj、およびncoljの値は決定されてメモリに格納される。また、c2vsumの合計が計算される。
【0127】
クロックIVa) 3a)の動作は、非パンクチャド列の第2の4分の1に対して実行される。2a)の動作は、非パンクチャド列の第3の4分の1に対して実行される。1a)の動作は非パンクチャド列の第4の4分の1に対して実行される。
【0128】
クロックIVb) メッセージnc2vおよび合計nc2vsumが計算される。
【0129】
例えば、プロセッサの数が減少し、スループットが対応して減少する場合、この手法の一般化は可能である。
【0130】
処理ステップを文字A~I:
・A-非パンクチャドノードのためにc2vを計算する。v2cを決定してllr-sを置き換えるレジスタに記憶する。nsg0およびcminを計算する。部分最小値を計算する。
・B-部分最小値、すなわち、psg
j、pmin
j、psubmin
j、pcol
jから最小値を取得する。
・C- 全ての非パンクチャドノードに対してnsg
j、nmin
j、nsubmin
j、ncol
jから新しいc2vを計算し、これらの列のllr-sを取得するためにこれらをv2cと加算し、これらをシフトしてレジスタに格納する。
・D- パンクチャドノードに対してnsg0、cminおよびc2vを計算する。
・E- nsg
j、nmin
j、nsubmin
j、およびncol
jを決定する。
・F- c2vsumを計算する。
・G- nc2vsumを計算する。
・H- nc2vを計算する。
・I- パンクチャド列のIIr-sを計算する。それらをシフトしてレジスタに格納する。
で示し、例えば、
・1-2 - 第1グループ
・3-4 - 第2グループ
・5-6 - 第3グループ
として示される2つの直交行を各々が含む(高密度および低密度部分における)直交サブ行の3つのグループと、
・j.1 - 第j行における空でないセルの第1の2分の1、1 <= j <= 6および
・j.2 - 第j行の空でないセルの第2の2分の1、1 <= j <= 6
を有する12個の非パンクチャド列を有し、
動作A、BおよびCは非パンクチャド列に対して実行され、動作D、E、F、G、HおよびIはパンクチャド列に対して実行される場合、
図11および
図12は、3クロックサイクル方式のためのスケジュールと、4クロックサイクル方式のためのスケジュールとを示す。
図11および12からわかるように、高い並列性が達成されることができる。
【0131】
さらに、エンコーダ12およびデコーダ14が、提供された基本行列Bに基づいて符号化および復号化操作を実行することを可能にすることに加えて、エンコーダ12およびデコーダ14はまた、異なる送信シナリオ、例えば、チャネル品質および/またはスループット要件の観点から互いに異なる送信シナリオに従って、例えば、提供された基本行列Bの低密度部分の行および/またはパリティ部分の列を削除(または無視)することによって、異なるレートの非正則QC-LDPC子コードを導出するために提供された基本行列Bを使用してもよいことは留意されるべきである。
【0132】
本発明における、エンコーダまたはデコーダ、または基地局、端末、またはコアネットワーク装置の機能を実行するように構成される少なくとも1つのプロセッサは、中央処理装置(CPU)、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)または別のプログラマブル論理デバイス、トランジスタ論理デバイス、ハードウェアコンポーネントまたはこれらの任意の組合せであってよい。コントローラ/プロセッサは、本発明で開示された内容を参照して説明された様々な例示的な論理ブロック、モジュールおよび回路を実装または実行してよい。あるいは、プロセッサは、計算機能を実施するプロセッサの組合せ、例えば、1つまたは複数のマイクロプロセッサの組合せ、または、DSPとマイクロプロセッサの組合せであってよい。
【0133】
本発明で開示された内容を参照して説明された方法またはアルゴリズムのステップは、ハードウェアを使用して、プロセッサによって実行されるソフトウェアモジュールを使用して、またはこれらの組合せを使用して直接実施されてよい。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、ポータブルディスク、CD-ROMまたは当該技術分野において既知の任意の他の形態の記憶媒体に配置されてよい。例えば、記憶媒体はプロセッサに結合され、その結果、プロセッサは、記憶媒体から情報を読み出すことができ、または、記憶媒体に情報を書き込むことができる。確かに、記憶媒体はまた、プロセッサのコンポーネントであってもよい。プロセッサおよび記憶媒体は、ASICに配置されてよい。加えて、ASICはユーザ機器に配置されてよい。確かに、プロセッサおよび記憶媒体は、離散したコンポーネントとしてユーザ機器内に存在してよい。
【0134】
基本行列に関連するパラメータ、基本行列または基本行列に基づいて拡張された行列はメモリに記憶されることができる。メモリは、少なくとも1つのプロセッサと独立することができる。メモリはまた、少なくとも1つのプロセッサに統合されることもできる。メモリは、コンピュータ可読記憶媒体の一種である。
【0135】
前述の実施形態の全てまたは一部は、ソフトウェア、ハードウェア、ファームウェアまたはそれらの任意の組合せによって実施されてよい。ソフトウェアプログラムが実施形態を実施するために使用される場合、実施形態は、コンピュータプログラム製品の形態で完全にまたは部分的に実施されてよい。コンピュータプログラム製品は1つまたは複数のコンピュータ命令を含む。コンピュータプログラム命令が、コンピュータにロードされて、実行されると、本発明の実施形態に係る手順または機能は全てまたは部分的に生成される。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワークまたは他のプログラム可能な装置であり得る。コンピュータ命令は、コンピュータ可読記憶媒体に記憶されてよく、または、コンピュータ可読記憶媒体から別のコンピュータ可読記憶媒体に送信されてもよい。例えば、コンピュータ命令は、ウェブサイト、コンピュータ、サーバまたはデータセンタから別のウェブサイト、コンピュータ、サーバまたはデータセンタに有線方式で(例えば、同軸ケーブル、光ファイバまたはデジタル加入者回線(DSL))、または無線方式で(例えば、赤外線、ラジオ、マイクロ波等)送信されてよい。コンピュータ可読記憶媒体は、コンピュータによってアクセス可能な任意の使用可能媒体、または、1つまたは複数の使用可能メディアを統合する、サーバまたはデータセンタ等のデータ記憶デバイスであってよい。使用可能媒体は、磁気媒体(例えば、ソフトディスク、ハードディスクまたは磁気テープ)、光学媒体(例えば、デジタル多用途ディスク(DVD))、半導体媒体(例えば、ソリッドステートディスク(SSD))等であってよい。
【0136】
本開示のこれまでの説明は、いかなる当業者も、本開示を作成または使用することを可能にするために提供されている。本開示への様々な修正は、当業者には容易に明らかであり、本明細書で定義された一般的な原理は、本開示の精神または範囲を逸脱することなく他の変形に対して適用され得る。従って、本開示は、本明細書で説明される例および設計に限定するようには意図されず、本明細書で開示された原理および新規な特徴と一貫した最も広い範囲を与えられるべきである。