【文献】
Mediatek Inc.,On NR LDPC design and performance,3GPP TSG RAN WG1 adhoc_NR_AH_1706 R1-1711696,2017年 6月27日,pp.1-11
【文献】
Nokia, Alcatel-Lucent Shanghai Bell,LDPC design for eMBB,3GPP TSG RAN WG1 #88b R1-1705857,I,2017年 3月24日
【文献】
Huawei, HiSilicon,LDPC design for eMBB data,3GPP TSG RAN WG1 #88b R1-1704250,2017年 3月25日
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0072】
理解を容易にするために、本願で使用される幾つかの用語が以下に説明される。
【0073】
本願では、用語「ネットワーク」及び「システム」は通常同義的に使用され、用語「機器」及び「装置」も通常同義的に使用される。当業者は、用語の意味を理解できる。「通信機器」は(ベースバンドチップ、デジタル信号処理チップ、又は汎用チップのような)チップ、端末、基地局、又は別のネットワーク装置であってよい。端末は、通信機能を有する装置であり、ハンドヘルド装置、車内装置、ウェアラブル装置、コンピューティング装置、無線モデムに接続された別の処理装置、又は無線通信機能を有する同様のものを含み得る。端末は、異なるネットワークにおいて異なる名称、例えば、ユーザ機器、移動局、加入者ユニット、局、携帯電話機、パーソナルデジタルアシスタント、無線モデム、無線通信装置、ハンドヘルド装置、ラップトップコンピュータ、コードレス電話機、及び無線ローカルループ局、を有してよい。説明を容易にするために、本願では、これらの装置は簡単に端末と呼ばれる。基地局(base station,BS)は、基地局装置とも呼ばれ、無線通信機能を提供するために、無線アクセスネットワーク内に配置される装置である。基地局は、異なる無線アクセスシステムにおいて異なる名称を有してよい。例えば、ユニバーサルモバイルテレコミュニケーションシステム(Universal Mobile Telecommunications System,UMTS)ネットワークにおける基地局はNodeB(NodeB)と呼ばれ、LTEネットワークにおける基地局は進化型NodeB(evolved NodeB,eNB又はeNodeB)と呼ばれ、新無線(new radio,NR)ネットワークにおける基地局は送受信点(transmission reception point,TRP)若しくは次世代NodeB(generation nodeB,gNB)と呼ばれ、又は別の進化型ネットワークにおける基地局は別の名称を有してよい。これは、本願において限定されない。
【0074】
以下は、本願の実施形態における技術的ソリューションを本願の実施形態において添付の図面を参照して記載する。
【0075】
LDPCコードは、パリティチェック行列Hを用いて定めることができる。LDPCコードのパリティチェック行列Hは、基本グラフ(base graph)及びシフト(shift)値を用いて取得され得る。基本グラフは、通常、m×n個の行列エントリ(entry)を含んでよく、m行n列の行列を用いて表現され得る。行列要素の値は0又は1のいずれかである。値が0の要素は、時としてゼロ要素と呼ばれ、これはサイズZ×Zの全ゼロ行列(zero matrix)で置き換えられてよい。値が1の要素は、時として非ゼロ要素と呼ばれ、これはサイズZ×Zの循環置換行列(circular permutation matrix)で置き換えられてよい。言い換えると、各行列要素は、1つの全ゼロ行列又は1つの循環置換行列を表す。
図1は、m=5且つn=27でありQC構造を有するLDPCコードの基本グラフの例10aを示す。留意すべきことに、本明細書では、単に説明を容易にするために、基本グラフ及び行列の行インデックス及び列インデックスは、全て0から開始する番号を付される。例えば、列0は基本グラフ及び行列の1番目の列を表し、
列1は基本グラフ及び行列の2番目の列を表し、行0は基本グラフ及び行列の1番目の行を表し、行1は基本グラフ及び行列の2番目の行を表し、以下同様である。
【0076】
行インデックス及び列インデックスは、代替として、1から開始する番号を付されてよく、この場合、本明細書に示される行インデックス及び列インデックスは1だけ増大されて、対応する行インデックス及び列インデックスを得ることが理解され得る。例えば、行インデックス及び列インデックスが1から開始する番号を付される場合、列1は基本グラフ及び行列の1番目の列を表し、列2は基本グラフ及び行列の2番目の列を表し、行1は基本グラフ及び行列の1番目の行を表し、行2は基本グラフ及び行列の2番目の行を表し、以下同様である。
理解されるべきことに、基本グラフ又は基本行列の行及び列は異なる方法で番号を付されてよく、本願は任意の特定の番号付け方法に限定されない。
【0077】
基本グラフの行i及び列jにある要素の値が1であり、該要素のシフト値がP
i,jであり、P
i,jが0以上の整数である場合、これは、該要素がP
i,jに対応するサイズZ×Zの循環置換行列により置き換え可能であることを示す。循環置換行列は、サイズZ×Zの恒等行列を右へP
i,j回だけ循環シフトすることにより取得され得る。基本グラフの中で値が0の各要素は、サイズZ×Zの全ゼロ行列で置き換えられ、値が1の各要素は、該要素のシフト値に対応するサイズZ×Zの循環置換行列で置き換えられて、LDPCコードのパリティチェック行列を得ることが分かる。基本グラフは、シフト値の位置を示すために使用されてよく、基本グラフの中の各非ゼロ要素は、シフト値に対応する。Zは、正整数であり、リフティング(lifting)係数とも呼ばれてよく、又は時にはlifting size、lifting factor、等と呼ばれてよい。Zは、システムによりサポートされるコードブロックサイズ及び情報データのサイズに基づき決定されてよい。パリティチェック行列Hは(m×Z)*(n×Z)のサイズを有することが分かる。例えば、リフティング係数Zが4である場合、各ゼロ要素はサイズ4×4の全ゼロ行列11aで置き換えられる。P
2,3が2である場合、行2及び列3にある非ゼロ要素は4×4循環置換行列11dで置き換えられ、行列11dは、4×4恒等行列11bを右へ2回循環シフトすることにより取得される。P
2,4が0である場合、行2及び列4にある非ゼロ要素は恒等行列11bで置き換えられる。留意すべきことに、単なる例がここに記載され、該例は限定を構成しない。
【0078】
P
i,jの値はリフティング係数Zに依存してよく、
基本グラフの行i及び列jにある1の要素
(非ゼロ要素)について、P
i,jは、異なるリフティング係数Zについて異なってよい。実装を容易にするために、時にはパリティチェック行列(PCM)(parity check matrix)と呼ばれるm行n列の基本行列(base matrix)がシステム内で定められてよい。基本行列の中の要素は、基本グラフの中の要素と1対1対応にある。基本グラフの中のゼロ要素は基本行列の中の同じ位置を有する。行列の中で、ゼロ要素は、値−1又はヌル(null)値により表される。行i及び列jにある、基本グラフの中で値が1の非ゼロ要素は、基本行列の中の同じ位置にある非ゼロ要素に対応する。非ゼロ要素は値P
i,jにより表され、P
i,jは、プリセット又は特定リフティング係数Zに対して定められたシフト値であってよい。本願の実施形態では、基本行列は、時には基本グラフのシフト行列とも呼ばれる。
【0079】
図1に示すように、10bは基本グラフ10aに対応する基本行列である。
【0080】
概して、LDPCコードの基本グラフ又は基本行列は、ビルトインパンクチャ(built-in puncture)ビットに対応するp個の列を更に含んでよく、pは0〜2の範囲の整数であってよい。これらの列は、符号化において使用されてよいが、ビルトインパンクチャビットに対応する列を使用する符号化に対応するシステムビットは送信されない。LDPCコードの基本行列のコードレートは、R=(n−m)/(n−p)を満たす。基本グラフ10aを一例として用いると、ビルトインパンクチャビットに対応する2つの列がある場合、コードレートは(27−5)/(27−2)=0.88であり、8/9に近い。
【0081】
無線通信システムで使用されるLDPCコードは、QC−LDPCコードであり、QC−LDPCコードのパリティビットに対応する行列部分は、2重対角線構造又はraptor-like構造を有する。これは、符号化を簡略化し、インクリメンタルリダンダンシハイブリッド再送をサポートできる。QC−LDPCコードのためのデコーダでは、QC−LDPCシフトネットワーク(QC-LDPC shift network,QSN)、Banyanネットワーク、又はBenesネットワークが、情報の循環シフトを実施するために通常使用される。
【0082】
raptor-like構造を有するQC−LDPCコードの基本グラフは、m行n列の行列である。基本グラフは、5個の部分行列:A、B、C、D、及びEを含んでよい。ここで、行列の重みは、非ゼロ要素の数により決定され、行の重み(row weight)は行の中の非ゼロ要素の数を表し、列の重み(column weight)は列の中の非ゼロ要素の数を表す。
図2に200に示されるように:
【0083】
部分行列Aは、m
A行及びn
A列を含む行列であり、該部分行列Aのサイズはm
A×n
Aである。各列は、LDPCコードの中のZ個のシステムビットに対応し、システムビットは時には情報ビットと呼ばれる。
【0084】
部分行列Bは、m
A行及びm
A列を含む行列であり、該部分行列Bのサイズはm
A×m
Aである。各列は、LDPCコードの中のZ個のパリティビットに対応する。
図2の20aに示すように、部分行列Bは、2重対角線構造及び列重みが3である行列の列(重み3の列と略される)を有する部分行列B’を含み、重み3の列は部分行列B’の左側に位置してよい。部分行列Bは、列重みが1である1つ以上の行列の列(重み1の列と略される)を更に含んでよい。例えば、可能な実装は、
図2の20b又は20cに示される。
【0085】
通常、部分行列A及び部分行列Bに基づき生成される行列は、コア行列と呼ばれてよく、高コードレート符号化をサポートするために使用されてよい。
【0086】
部分行列Cは、全ゼロ行列であり、m
A×m
Dのサイズを有する。
【0087】
部分行列Eは、恒等行列であり、m
D×m
Dのサイズを有する。
【0088】
部分行列Dは、m
D×(n
A+m
A)のサイズを有し、通常、低コードレートのためにパリティビットを生成するために使用されてよい。
【0089】
基本グラフは数学的定義の観点から上述されたことが理解され得る。部分行列Cは全ゼロ行列であり、Eは恒等行列であるので、可能な実装では、部分行列A及び部分行列Bを含む行列、又は部分行列A、部分行列B、及び部分行列Dを含む行列は、符号化又は復号における行列の基本グラフを単に表すために使用されてよい。
【0090】
部分行列C及び部分行列Eは、比較的明確な構造を有するので、部分行列A、部分行列B、及び部分行列Dの構造は、LDPCコードの符号化及び復号性能に影響を与える要因のうちの1つである。
【0091】
raptor-like構造を有するLDPC行列が符号化のために使用されるとき、可能な実装では、部分行列A及び部分行列Bを含む行列、言い換えるとコア行列は、先ず符号化のために使用されてよく、部分行列Bに対応する1つ以上のパリティビットを取得し、次に行列全体が、符号化のために使用されて、部分行列Eに対応する1つ以上のパリティビットを取得する。部分行列Bは、2重対角線構造及び1つ以上の重み1の列を有する部分行列B’を含み得るので、符号化中、2重対角線構造に対応するパリティビットが先ず取得されてよく、次に、重み1の列に対応するパリティビットが取得されてよい。
【0092】
以下は、例示的な符号化実装を提供する。部分行列A及び部分行列Bを含むコア行列がH
coreであると仮定する。H
coreの中の最後の行及び最後の列は、H
coreから除去される。言い換えると、H
coreの中の重み1の列及び重み1の列の中の非ゼロ要素が位置する行は、H
coreから除去されて、行列H
core−dualを得る。H
core−dualのパリティビット部分は、H
e=[H
e1 H
e2]により表される。H
e1は重み3の列であり、H
e2は2重対角線構造を有する。LDPC行列の定義によると、H
core−dual・[S P
e]
T=0である。ここで、Sは入力シーケンスであり、情報ビットのベクトルにより表され、P
eはパリティビットを含むベクトルであり、[S P
e]
Tは入力シーケンスS及びP
eにより形成される転置された行列を表す。したがって、H
core−dualに対応するパリティビットは、先ず、入力シーケンスS及びH
core−dualに基づき計算されてよい。ここで、入力シーケンスSは全ての情報ビットを含む。次に、部分行列Bの中の1つ以上の重み1の列に対応するパリティビットが、H
core−dualに対応する取得したパリティビット及び入力シーケンスSに基づき計算される。この場合、部分行列Bに対応する全てのパリティビットが取得されてよい。次に、部分行列Eに対応するパリティビットは、部分行列Dを符号化することにより、及び入力シーケンスS及び部分行列Bに対応するパリティビットに基づき、取得される。したがって、全ての情報ビット及び全てのパリティビットが取得される。これらのビットは符号化シーケンス、言い換えるとLDPCコードワードを形成する。
【0093】
任意で、LDPCコード符号化は、短縮(shortening)操作及びパンクチャリング(puncturing)操作を更に含んでよい。短縮されたビット及びパンクチャリングされたビットは送信されない。
【0094】
短縮は、通常、情報ビットの最後のビットから開始して実行され、異なる方法で実行されてよい。例えば、短縮されたビットの数がs
0である場合、入力シーケンスSの中の最後のs
0個のビットは、既知ビットとして設定され、例えば0又はnull又は他の値に設定されよく、入力シーケンスS’を得る。次に、入力シーケンスS’はLDPC行列を用いて符号化される。別の例では、入力シーケンスSの中の最後の(s
0 mod Z)個のビットは、既知ビットとして設定され、例えば0又はnull又は他の値に設定されてよく、入力シーケンスS’を得る。部分行列Aの中の最後の
【数1】
個の列が削除されて、LDPC行列H’を得る。入力シーケンスS’はLDPC行列H’を用いて符号化され、又は部分行列Aの中の最後の
【数2】
個の列は入力シーケンスS’の符号化に加わらない。符号化の後、短縮されたビットは送信されない。
【0095】
パンクチャリングは、入力シーケンスの中のビルトインパンクチャビット又はパリティビットに対して実行されてよい。パリティビットのパンクチャリングは、通常、パリティビットの中の最後のビットから開始して実行される。代替として、パリティビットのパンクチャリングは、システムのプリセットパンクチャリング順序に従い実行されてよい。可能な実装では、入力シーケンスが先ず符号化され、次にパンクチャリングされる必要のあるビットの数pに基づき、パリティビットの中の最後のp個のビットが選択され、又はp個のビットがシステム内でプリセットされたパンクチャリングシーケンスに基づき選択され、ここで、p個のビットは送信されない。別の可能な実装では、行列の中のパンクチャリングされたビットに対応するp個の列及び該列の中の非ゼロ要素が位置するp個の行が決定されてよく、行及び列は符号化に加わらず、したがって、対応するパリティビットが生成されない。
【0096】
留意すべきことに、符号化の実装は、ここで単に一例として使用され、当業者に知られている別の符号化実装が、本願で提供される基本グラフ及び/又は基本行列に基づき使用されてよく、本願において限定は課されない。本願における復号は、複数の復号方法、例えばmin-sum(MS)復号方法又はbelief propagation復号方法を用いて実行されてよい。MS復号方法は、時にはFlood MS復号方法とも呼ばれる。例えば、入力シーケンスは初期化され、初期化入力シーケンスに対して反復が実行される。ハード決定検出が、反復の後に実行され、ハード決定結果がチェックされる。復号結果がパリティチェック式を満たす場合、復号は成功し、反復処理が終了し、決定結果が出力される。復号結果がパリティチェック式を満たさない場合、反復は最大反復回数により再び実行される。最大反復回数に達したときにチェックが依然として偽である場合、復号は失敗する。理解され得ることに、当業者は、MS復号の原理が従来知られていることを理解し得る。詳細はここに記載されない。
【0097】
留意すべきことに、復号方法は、ここで単に一例として使用され、当業者に知られている他の復号方法が、本願で提供される基本グラフ及び/又は基本行列に基づき使用されてよく、本願において限定は課されない。
【0098】
LDPCコードは、通常、基本グラフ又は基本行列の設計に基づき取得されてよい。例えば、LDPCコードの性能の上限は、基本グラフ又は基本行列に対して密度進化を実行することにより決定されてよく、LDPCコードのエラーフロアは、基本行列の中のシフト値に基づき決定される。符号化又は復号性能を向上すること、及びエラーフロアを低下させることは、基本グラフ及び基本行列を設計する幾つかの目的である。コード長は、無線通信システムの中で大幅に変えられる。例えば、コード長は、2560ビット、38400ビット、等であってよい。
図3Aは、LDPCコードの基本グラフ30aの一例を示す。
図3B−1〜
図3B−10は、基本グラフ30aの基本行列の例であり、種々のブロック長の性能要件が満たされ得る。説明及び理解を容易にするために、行インデックス及び列インデックスは、
図3A、及び
図3B−1〜3B−10の最も上側及び最も左側に別個に示される。
【0100】
図3Aは、LDPCコードの基本グラフ30aの一例を示す。図中、最も上の行の中の0〜67(つまり、列0〜列67)は列インデックスを示し、最も左の列の中の0〜45(つまり、行0〜行45)は行インデックスを示す。つまり、基本グラフは46行68列のサイズを有する。
【0101】
一実装では、部分行列A及び部分行列Bは、LDPCコードの基本グラフのコア行列として考えられてよく、高コードレート符号化のために使用されてよい。基本グラフ10aに示される5行及び27列を含む行列は、5行及び27列を含む行列である基本グラフのコア行列であってよい。
【0102】
一実装では、部分行列Aは、ビルトインパンクチャビットに対応する1つ以上の列を含んでよく、例えばビルトインパンクチャビットに対応する2個の列を含んでよい。パンクチャリングの後に、コア行列によりサポート可能なコードレートは0.88である。
【0103】
部分行列Bは、重み3の列を含んでよい。つまり、部分行列Bの列0(コア行列の列22)の列重みが3である。部分行列Bは、部分行列の列1〜列3(コア行列の列23〜列25)及び行0〜行3を含む2重対角線構造を有する。部分行列Bは、重み1の列(コア行列の列26)を更に含む。
【0104】
一実装では、部分行列Aは、システムビットに対応してよい。システムビットは、時には情報ビットと呼ばれる。部分行列Aは、m
A行及び22列のサイズを有し、m
A=5の場合、部分行列Aは、基本グラフ30aの中の行0〜行4及び列0〜列21にある要素を含む。
【0105】
一実装では、部分行列Bはパリティビットに対応してよく、部分行列Bはm
A行m
A列のサイズを有し、基本グラフ30aの中の行0〜行4及び列22〜列26にある要素を含む。
【0106】
柔軟なコードレートを得るために、対応するサイズの部分行列C、部分行列D、及び部分行列Eは、コア行列に基づき追加されてよく、異なるコードレートを得る。部分行列Cは全ゼロ行列である。部分行列
Eは恒等行列であり、行列のサイズはコードレートに従い決定され、行列の構造は比較的固定される。したがって、符号化性能及び復号性能は、主にコア行列及び部分行列Dにより影響される。行及び列は、コア行列に基づき追加されて、対応するC、D、及びEを形成する。その結果、異なるコードレートが取得できる。
【0107】
部分行列Dの列数m
Dは、部分行列Aの列数と部分行列Bの列数との和であり、部分行列Dの行数は、主にコードレートに関連する。基本グラフ30aが一例として用いられる。部分行列Dの列数は27列である。LDPCコードによりサポートされるコードレートがR
mである場合、LDPCコードの基本グラフ又は基本行列は、m行n列のサイズを有し、ここで、n=n
A/R
m+p、且つm=n−n
A=n
A/R
m+p−n
Aである。最小コードレートR
mが1/3であり、ビルトインパンクチャビットに対応する列数pが2である、基本グラフ30aの例でn=68、m=46の場合、部分行列Dの行数m
Dは、最大でm−m
A=46−5=41になってよく、0≦m
D≦41である。
【0108】
基本グラフ30aが一例として用いられる。部分行列Dは、基本グラフ30aの中の行5〜行41にあるm
D個の行を含んでよい。
【0109】
本願では、基本グラフの中の2個の隣接行について、最大で1個の非ゼロ要素が同じ列内にある場合、2個の行は相互に直交している。基本グラフの中の2個の隣接行について、幾つかの列と異なる他の列では、2個の隣接行について最大で1個の非ゼロ要素が他の列の同じ列内にある場合、2個の行は準直交である。例えば、2個の隣接行について、1個の非ゼロ要素のみが、ビルトインパンクチャビットに対応する列以外の列にある場合、2個の隣接行は準直交である。
【0110】
基本グラフ30aの中の行5〜行41は、準直交構造を有する複数の行、及び直交構造を有する少なくとも2個の行を含んでよい。例えば、基本グラフ30aの中の行5〜行41は、準直交構造を満たす少なくとも15個の行を含む。15個の行のうちの任意の2個の隣接行の中で、ビルトインパンクチャビットに対応する列以外の列の中の同じ列内に最大で1個の非ゼロ要素がある。基本グラフ30aの中の行5〜行41は、直交構造を満たす10〜26個の行を更に含んでよい。言い換えると、これらの行では、任意の2個の隣接行について、同じ列内に最大で1個の非ゼロ要素がある。言い換えると、ビルトインパンクチャビットに対応する列内に最大で1個の非ゼロ要素もある。
【0111】
m
D=15の場合、LDPCコードの基本グラフの中の部分行列Dは、15行27列のサイズを有する。部分行列Dは、基本グラフ30aの中の行5〜行19及び列0〜列26により構成される行列であってよい。LDPCコードによりサポートされる対応するコードレートは、22/40=0.55である。このコードレートで、LDPCコードの基本グラフは、基本グラフ30aの中の行0〜行19及び列0〜列41により構成される行列に対応する。部分行列Eは15行15列の恒等行列であり、部分行列Cは5行15列の全ゼロ行列である。
【0112】
m
D=19の場合、LDPCコードの基本グラフの中の部分行列Dは、19行27列のサイズを有する。部分行列Dは、基本グラフ30aの中の行5〜行23及び列0〜列26により構成される行列であってよい。LDPCコードによりサポートされる対応するコードレートは、22/44=1/2である。このコードレートで、LDPCコードの基本グラフは、基本グラフ30aの中の行0〜行23及び列0〜列45により形成される行列に対応する。部分行列Eは19行19列の恒等行列であり、部分行列Cは5行19列の全ゼロ行列である。
【0113】
m
Dが他の値の場合も同じであり、詳細は記載されない。
【0114】
一設計では、行/列置換は、基本グラフ及び/又は基本行列に対して実行されてよい。言い換えると、行置換、又は列置換、又は行置換及び列置換が実行されてよい。行/列置換の動作は、行重み又は列重みを変えず、非ゼロ要素の数も変えない。したがって、行/列置換により取得される基本グラフ及び/又は基本行列は、システム性能に対して限られた影響しか有しない。全体として、行/列置換によるシステム性能への影響は、許容可能であり、許容範囲内である。例えば、幾つかのシナリオ又は幾つかの範囲では、性能は許容範囲内で低下され、一方で幾つかのシナリオ又は幾つかの範囲では、性能は向上される。全体で、及び全体性能は、大きく影響されない。
【0115】
例えば、基本グラフ30aの中の行34及び行36は交換可能であってよく、列44及び列45は交換可能であってよい。別の例では、部分行列Dは行列Fの中のm
D個の行を含み、行置換はm
D個の行に対して実行されなくてよく、又は行置換は、m
D個の行のうちの1つ以上の行に対して実行されてよく、部分行列Eは依然として対角線構造を有し、行置換及び列置換は部分行列Eに対して実行されない。例えば、行列Fの中の行27及び行29は、交換可能であり、部分行列Dは部分行列Fの中のm
D個の行を含み、部分行列Eは依然として対角線構造を有する。基本グラフ又は基本行列が部分行列Dを含む場合、列交換がコア行列の中の列に対して実行されるとき、列交換は、対応して部分行列Dに対して実行される必要がある。
【0116】
図3B−1〜
図3B−10に示す行列30b−10〜30b−80は、それぞれ、基本グラフ30aの複数の基本行列の設計である。行i及び列jにある非ゼロ要素の位置は、基本グラフ30aの中で、行列30b−10〜30b−80の各々の中で、変更されない。行列の各々の中の行i及び列jにある非ゼロ要素の値は、シフト値V
i,jであり、ゼロ要素は、基本行列の中で−1又はnullにより表される。基本行列の中の部分行列Dの対応する部分は、基本行列のうちの任意の1つの行5〜行45の中のm
D個の行を含んでよく、m
Dの値は、異なるコードレートに基づき選択されてよい。基本グラフが、基本グラフ30aに対して行/列変換を実行することにより取得された行列である場合、基本行列も、行列30b−10〜30b−80のうちの任意の1つに対して行/列変換を実行することにより取得された行列であることが理解され得る。
【0117】
可能な設計では、LDPCコードの基本行列は、
図3B−1〜
図3B−10に示す行列30b−10〜30b−80のうちの任意の1つの中の行0〜行4及び列0〜列26を含んでよい。この場合、
図3B−1〜
図3B−10に示す行列の行0〜行4及び列0〜列26を含む行列は、基本行列のコア行列部分として用いられてよい。この設計では、LDPCコードの基本行列の他の部分、例えば行列C、行列D、又は行列Eの構造は限定されない。例えば、
図3B−1〜
図3B−10に示す任意の構造が使用されてよく、又は他の行列設計が使用されてよい。
【0118】
別の可能な設計では、LDPCコードの基本行列は、
図3B−1〜
図3B−10に示す行列30b−10〜30b−80のうちの任意の1つの中の行0〜行(m−1)及び列0〜列(n−1)を含む行列を含んでよい。ここで、5≦m≦46、mは整数であり、27≦n≦68、且つnは整数である。
【0119】
この設計では、LDPCコードの基本行列の他の部分の構造は限定されない。例えば、
図3B−1〜
図3B−10に示す任意の構造が使用されてよく、又は他の行列設計が使用されてよい。
【0120】
別の可能な設計では、LDPCコードの基本行列は、
図3B−1〜
図3B−10に示す行列30b−10〜30b−80のうちの任意の1つの中の行0〜行4及び列0〜列26の一部を含んでよい。例えば、短縮(shortening)及び/又はパンクチャリング(puncturing)は、
図3B−1〜
図3B−10に示す行列のコア行列部分(行0〜行4及び列0〜列26)に対して実行されてよい。一実装では、LDPCコードの基本行列は、短縮された及び/又はパンクチャリングされたビットに対応する列を含まなくてよい。
【0121】
この設計では、LDPCコードの基本行列の他の部分は限定されない。例えば、
図3B−1〜
図3B−10に示す構造が参照されてよく、又は他の構造が使用されてよい。
【0122】
別の可能な設計では、LDPCコードの基本行列は、
図3B−1〜
図3B−10に示す行列30b−10〜30b−80のうちの任意の1つの中の行0〜行(m−1)及び列0〜列(n−1)のうちの一部を含む行列を含んでよい。ここで、5≦m≦46、mは整数であり、27≦n≦68、且つnは整数である。例えば、短縮(shortening)及び/又はパンクチャリング(puncturing)が、
図3B−1〜
図3B−10に示す行列30b−10〜30b−80のうちの任意の1つの中の行0〜行(m−1)及び列0〜列(n−1)に対して実行されてよい。一実装では、LDPCコードの基本行列は、短縮された及び/又はパンクチャリングされたビットに対応する列を含まなくてよい。この設計では、LDPCコードの基本行列の別の部分は限定されない。例えば、
図3B−1〜
図3B−10に示す構造が参照されてよく、又は他の構造が使用されてよい。
【0123】
一実装では、短縮の動作は、情報ビットに対して実行されてよい。例えば、
図3B−1〜
図3B−10に示す任意の行列が一例として使用される。列0〜列21のうちの1つ以上の列が短縮された場合、LDPCコードの基本行列は
図3B−1〜
図3B−10に示す行列の1つ以上の短縮された列を含まなくてよい。例えば、列21が短縮された場合、LDPCコードの基本行列は、行列30b−10〜30b−80のうちの任意の1つの中の列0〜列20及び列22〜列26を含んでよい。行列30b−10〜30b−80のうちの任意の1つの中の行0〜行4、列0〜列20、及び列22〜列26を含む行列では、この場合に行列によりサポートされるコードレートは7/8である。
【0124】
別の実装では、パンクチャリングは、パリティビットに対して実行されてよい。例えば、
図3B−1〜
図3B−10に示す任意の行列が一例として使用され、列22〜列26のうちの1つ以上の列がパンクチャリングされる。LDPCコードの基本行列は、
図3B−1〜
図3B−10に示す行列の中のパンクチャリングされた1つ以上の列を含まなくてよい。例えば、列26がパンクチャリングされた場合、LDPCコードの基本行列は、行列30b−10〜30b−80のうちの任意の1つの中の列0〜列25を含んでよい。
【0125】
異なるリフティング係数ZがLDPCコードのために設計されて、異なる長さの情報ビットシーケンスをサポートする。可能な設計では、異なる基本行列が、異なるリフティング係数に対して使用されてよく、比較的高い性能を得る。例えば、リフティング係数Z=a×2
jであり、ここで0≦j<7、且つa∈{2,3,5,7,9,11,13,15}である。表1は、サポートされる可能性のあるリフティング係数セット{2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,20,22,24,26,28,30,32,36,40,44,48,52,56,60,64,72,80,88,96,104,112,120,128,144,160,176,192,208,224,240,256,288,320,352,384}である。最も上の行及び最も左の列を除くセルの各々は、対応するa及びjの値に対応するZの値を表す。例えば、a=2である列及びj=1である行では、Z=4である。別の例では、a=11及びj=3では、Z=88である。同様に、詳細は記載されない。
[表1]
【表1】
【0126】
基本グラフによりサポートされるリフティング係数セットは、表1中のリフティング係数のうちの全部又は一部であってよく、例えば、{24,26,28,30,32,36,40,44,48,52,56,60,64,72,80,88,96,104,112,120,128,144,160,176,192,208,224,240,256,288,320,352,384}であってよく、Zは24以上である。別の例では、リフティング係数セットは、{2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,20,22}及び{24,26,28,30,32,36,40,44,48,52,56,60,64,72,80,88,96,104,112,120,128,144,160,176,192,208,224,240,256,288,320,352,384}のうちの1つ以上の和集合であってよい。ここで単なる例が提供されることに留意すべきである。基本グラフによりサポートされるリフティング係数セットは、aの値に基づき異なる部分集合に分割されてよい。例えば、a=2の場合、リフティング係数Zの部分集合は{2,4,8,16,32,64,128,256}のうちの1つ以上を含んでよい。別の例では、a=3の場合、リフティング係数Zの部分集合は{3,6,12,24,48,96,192,384}のうちの1つ以上を含んでよい、等である。
【0127】
基本グラフによりサポートされるリフティング係数セットは、aの異なる値に基づき分割されてよく、対応する基本行列が決定される。
【0128】
a=2、又はリフティング係数Zの値が{2,4,8,16,32,64,128,256}のうちの1つである場合、基本行列は、行列30b−10又は30b−11の中の行0〜行4及び列0〜列26を含んでよく、又は、基本行列は、行列30b−10又は30b−11の中の行0〜行(m−1)及び列0〜列(n−1)を含み、ここで、5≦m≦46、mは整数であり、27≦n≦68、及びnは整数であり、又は、基本行列は、行列30b−10又は30b−11の中の行0〜行(m−1)及び列0〜列(n−1)の一部を含み、ここで、5≦m≦46、mは整数であり、27≦n≦68、及びnは整数である。
【0129】
a=3、又はリフティング係数Zの値が{3,6,12,24,48,96,192,384}のうちの1つである場合、基本行列は、行列30b−20又は30b−21の中の行0〜行4及び列0〜列26を含んでよく、又は、基本行列は、行列30b−20又は30b−21の中の行0〜行(m−1)及び列0〜列(n−1)を含み、ここで、5≦m≦46、mは整数であり、27≦n≦68、及びnは整数であり、又は、基本行列は、行列30b−20又は30b−21の中の行0〜行(m−1)及び列0〜列(n−1)の一部を含み、ここで、5≦m≦46、mは整数であり、27≦n≦68、及びnは整数である。
【0130】
a=5、又はリフティング係数Zの値が{5,10,20,40,80,160,320}のうちの1つである場合、基本行列は、行列30b−30の中の行0〜行4及び列0〜列26を含んでよく、又は、基本行列は、行列30b−30の中の行0〜行(m−1)及び列0〜列(n−1)を含み、ここで、5≦m≦46、mは整数であり、27≦n≦68、及びnは整数であり、又は、基本行列は、行列30b−30の中の行0〜行(m−1)及び列0〜列(n−1)の一部を含み、ここで、5≦m≦46、mは整数であり、27≦n≦68、及びnは整数である。
【0131】
a=7、又はリフティング係数Zの値が{7,14,28,56,112,224}のうちの1つである場合、基本行列は、行列30b−40の中の行0〜行4及び列0〜列26を含んでよく、又は、基本行列は、行列30b−40の中の行0〜行(m−1)及び列0〜列(n−1)を含み、ここで、5≦m≦46、mは整数であり、27≦n≦68、及びnは整数であり、又は、基本行列は、行列30b−40の中の行0〜行(m−1)及び列0〜列(n−1)の一部を含み、ここで、5≦m≦46、mは整数であり、27≦n≦68、及びnは整数である。
【0132】
a=9、又はリフティング係数Zの値が{9,18,36,72,144,288}のうちの1つである場合、基本行列は、行列30b−50の中の行0〜行4及び列0〜列26を含んでよく、又は、基本行列は、行列30b−50の中の行0〜行(m−1)及び列0〜列(n−1)を含み、ここで、5≦m≦46、mは整数であり、27≦n≦68、及びnは整数であり、又は、基本行列は、行列30b−50の中の行0〜行(m−1)及び列0〜列(n−1)の一部を含み、ここで、5≦m≦46、mは整数であり、27≦n≦68、及びnは整数である。
【0133】
a=11、又はリフティング係数Zの値が{11,22,44,88,176,352}のうちの1つである場合、基本行列は、行列30b−60の中の行0〜行4及び列0〜列26を含んでよく、又は、基本行列は、行列30b−60の中の行0〜行(m−1)及び列0〜列(n−1)を含み、ここで、5≦m≦46、mは整数であり、27≦n≦68、及びnは整数であり、又は、基本行列は、行列30b−60の中の行0〜行(m−1)及び列0〜列(n−1)の一部を含み、ここで、5≦m≦46、mは整数であり、27≦n≦68、及びnは整数である。
【0134】
a=13、又はリフティング係数Zの値が{13,26,52,104,208}のうちの1つである場合、基本行列は、行列30b−70の中の行0〜行4及び列0〜列26を含んでよく、又は、基本行列は、行列30b−70の中の行0〜行(m−1)及び列0〜列(n−1)を含み、ここで、5≦m≦46、mは整数であり、27≦n≦68、及びnは整数であり、又は、基本行列は、行列30b−70の中の行0〜行(m−1)及び列0〜列(n−1)の一部を含み、ここで、5≦m≦46、mは整数であり、27≦n≦68、及びnは整数である。
【0135】
a=15、又はリフティング係数Zの値が{15,30,60,120,240}のうちの1つである場合、基本行列は、行列30b−80の中の行0〜行4及び列0〜列26を含んでよく、又は、基本行列は、行列30b−80の中の行0〜行(m−1)及び列0〜列(n−1)を含み、ここで、5≦m≦46、mは整数であり、27≦n≦68、及びnは整数であり、又は、基本行列は、行列30b−80の中の行0〜行(m−1)及び列0〜列(n−1)の一部を含み、ここで、5≦m≦46、mは整数であり、27≦n≦68、及びnは整数である。
【0136】
任意で、LDPCコードの基本行列では、行列の中の1つ以上の列の中の非ゼロ要素のシフト値は、システム性能に大きく影響を与えずに、オフセットOffset
sだけ増大又は減少されてよい。異なる列の中の非ゼロ要素のオフセットは、同じであってよく、又は異なってよい。例えば、行列の中の1つ以上の列を補うために、異なる列の補償値は同じであってよく又は異なってよい。これは、本願において限定されない。
【0137】
システム性能に大きく影響を与えないことは、システム性能に対する影響が許容可能であり全体として許容範囲内であることを意味する。例えば、性能は、幾つかのシナリオでは又は幾つかの範囲内では許容範囲内で低下する。しかしながら、幾つかのシナリオでは又は幾つかの範囲内では、性能はある程度まで向上する。全体性能は大きく影響されない。
【0138】
例えば、行列30b−10〜30b−80のうちの任意の1つの中の列sの中の0以上の各シフト値は、オフセットOffset
sだけ増大又は減少される。その結果、行列のオフセット行列Hsが取得され得る。ここで、Offset
sは0以上の整数であり、0≦s<23である。1つ以上の列のオフセットOffset
sは、同じであってよく、又は異なってよい。
【0139】
図4に示す性能図では、行列30b−10〜30b−80に基づき符号化されたLDPCコードの性能曲線が示される。水平座標は、情報ビットシーケンスの長さを表し、長さの単位はビットである。垂直座標は、対応するBLERに達するために必要なシンボル信号対雑音比(Es/N0)である。各コードレートの2本の線は、それぞれBLERが0.01及び0.0001である2つの場合に対応する。同じコードレートで、BLERが0.01の場合は上側の曲線に対応し、BLERが0.0001の場合は下側の曲線に対応する。各曲線が滑らかな場合、これは、異なるコード長の場合に、行列が比較的良好な性能を有することを示す。
【0140】
図1〜
図3A及び
図3B−1〜
図3B−10は、LDPCコードの基本グラフ及び基本行列の構造を示す。本願の実装における基本グラフ及び/又は基本行列の設計を説明するために、設計は、表2−10及び表2−11に更に記載され得る。
【0141】
一設計では、
図1の基本グラフ10aは5行27列の行列であり、関連パラメータは表2−10に表され得る。
[表2−10]
【表2-10】
【0142】
一設計では、
図1の10bに示す基本行列は5行27列の行列であり、関連パラメータは表2−11に表され得る。
[表2−11]
【表2-11】
【0143】
一設計では、
図3B−1の行列30b−10は、表3−10に表され得る。
[表3−10]
【表3-10】
【0144】
一設計では、
図3B−2の行列30b−11は、表3−11に表され得る。
[表3−11]
【表3-11】
【0145】
一設計では、
図3B−3の行列30b−20は、表3−20に表され得る。
[表3−20]
【表3-20】
【0146】
一設計では、
図3B−4の行列30b−21は、表3−21に表され得る。
[表3−21]
【表3-21】
【0147】
一設計では、
図3B−5の行列30b−30は、表3−30に表され得る。
[表3−30]
【表3-30】
【0148】
一設計では、
図3B−6の行列30b−40は、表3−40に表され得る。
[表3−40]
【表3-40】
【0149】
一設計では、
図3B−7の行列30b−50は、表3−50に表され得る。
[表3−50]
【表3-50】
【0150】
一設計では、
図3B−8の行列30b−60は、表3−60に表され得る。
[表3−60]
【表3-60】
【0151】
一設計では、
図3B−9の行列30b−70は、表3−70に表され得る。
[表3−70]
【表3-70】
【0152】
一設計では、
図3B−10の行列30b−80は、表3−80に表され得る。
[表3−80]
【表3-80】
【0153】
図1〜
図3A、
図3B−1〜
図3B−10、表2−10、表2−11、及び表3−10〜表3−80は、基本グラフ及び基本行列の設計を理解するのを助けるためであり、設計の表現形式は
図1〜
図3A、
図3B−1〜
図3B−10、又は表2−10、表2−11、及び表3−10〜表3−80に限定されないことが理解され得る。別の可能な変形が含まれてよい。
【0154】
一実装では、表2−10、表2−11、及び表3−10〜表3−80のパラメータ「行重み」は、代替として省略されてよい。行の中の非ゼロ要素の数は、該行の中の非ゼロ要素の列位置に従い分かってよい。したがって、行重みも分かる。
【0155】
一実装では、表2−10、表2−11、及び表3−10〜表3−80の「非ゼロ要素の列インデックス」のパラメータ値は、非ゼロ要素の列位置がパラメータ値を用いて検索可能ならば、昇順でソートされなくてよい。さらに、表2−10、表2−11、及び表3−10〜表3−80の「非ゼロ要素のシフト値」のパラメータ値は、「非ゼロ要素のシフト値」のパラメータ値が「非ゼロ要素の列インデックス」のパラメータ値と1対1対応にあるならば、列順序に基づきソートされなくてよい。
【0156】
一設計では、記憶空間を節約するために、基本グラフ又は基本行列の中の比較的明確な構造を有する一部にある非ゼロ要素の位置は、行位置又は列位置に基づき計算されてよく、格納されなくてよい。
【0157】
例えば、部分行列Eは、対角行列であり、行列の対角線上にのみ非ゼロ要素を含む。対角線上のこれらの非ゼロ要素のシフト値は0である。部分行列Eの中の非ゼロ要素の列インデックスは行インデックスに基づき計算されてよく、又は非ゼロ要素の行インデックスは列インデックスに基づき計算されてよい。
図3B−7の行列30b−50を一例として用いると、行m
eにある非ゼロ要素の列インデックスは列(m
e+K
b)である。ここで、m
e≧4、且つK
b=22である。例えば、行7にある非ゼロ要素の列インデックスは列29であり、非ゼロ要素のシフト値は0である。
【0158】
別の例では、部分行列Bの中の2重対角線構造B’は、行列30b−50の中の行0〜行3及び列23〜列25に位置する。2重対角線構造B’の中の非ゼロ要素の列インデックスは行インデックスに基づき計算されてよく、又は非ゼロ要素の行位置は列インデックスに基づき計算されてよい。行m
Bの中の非ゼロ要素の列インデックスは、列(m
B+K
b)及び列(m
B+K
b+1)を含み、ここで0<m
B<3である。行m
Bの中の非ゼロ要素の列インデックスは、列(m
B+K
b)を含み、ここでm
B=0又はm
B=3である。部分行列Bの2重対角線構造の中の非ゼロ要素のシフト値も0である。部分行列Dに属する列23〜列25を含む行列部分、行5〜行47の中の非ゼロ要素の列インデックスは固定されず、非ゼロ要素のシフト値は0ではなく、及び非ゼロ要素の位置及びシフト値は依然として格納される必要があることも分かる。
【0159】
別の例では、部分行列Bの中の重み1の列、言い換えると、行列30b−50の中の列26について、行m
Bの中の非ゼロ要素の列インデックスは、列(m
B+K
b)を含み、ここで、m
B=4であり、非ゼロ要素のシフト値も0である。
【0160】
表3−90は、行列30b−50の中の行に関連するパラメータを示す。列0〜列25の中の非ゼロ要素の列インデックスは格納されてよく、一方で、列26〜列68の中の非ゼロ要素の列インデックスは格納されない。言い換えると、部分行列E及び部分行列Bの中の重み1の列の中の非ゼロ要素の列インデックスは格納されない。
[表3−90]
【表3-90】
【0161】
表3−91は、行列30b−50の中の行に関連するパラメータを示す。列0〜列26の中の非ゼロ要素の列位置は格納されてよく、一方で、列27〜列68の中の非ゼロ要素の列位置は格納されない。言い換えると、部分行列Eの中の非ゼロ要素の列位置は格納されない。
[表3−91]
【表3-91】
【0162】
表3−10〜表3−91では、行重みは任意であり、非ゼロ要素の行インデックス及び列インデックスは、各行の中の非ゼロ要素の列位置を示し、これはLDPC行列の基本グラフに関する情報とも呼ばれる。一設計では、LDPC行列の基本グラフに関する情報及びシフト値は、表3−10〜表3−91の方法に基づき格納されてよい。
【0163】
別の設計では、LDPC行列の基本グラフ及びLDPC行列のシフト値は、別個に格納されてよい。LDPC行列のシフト値に関する情報は、表3−10〜表3−91の非ゼロ要素の行インデックス及びシフト値を用いて格納されてよい。LDPC行列の基本グラフは、複数の方法で格納されてよく、例えば
図3Aに示す基本グラフ30aの行列形式で格納されてよく、又は表3−10〜表3−91の非ゼロ要素の行インデックス及び位置に基づき格納されてよく、又は基本グラフの中の各行又は各列の中の1及び0が2進値と考えられ得る方法で格納されてよく、基本グラフは記憶空間を節約するために10進数又は16進数の形式で格納される。基本グラフ30aが一例として用いられる。各行で、最初の26列又は最初の27列の中の非ゼロ要素の位置は、4個の16進数で格納されてよい。例えば、行0の中の最初の26列は、11110110 01111101 10111111 00である場合、行0の中の非ゼロ要素の位置は0xF6、0x7D、0xBF、及び0x00として示されてよい。具体的に言うと、8列ごとに1つの16進数を形成する。0が最後の2又は3列にパディングされてよく、8桁を得る。その結果、対応する16進数が取得される。別の行も同じであり、詳細はここで再び記載されない。
【0164】
任意で、前述の種々の設計で、LDPCのシフト値は別の変換で格納されてよい。例えば、循環シフトの処理を助けるために、シフト値と該シフト値の位置する列の中の前のシフト値との間の差が格納されてよい。
図9は、変換後の行列3b−50の中の行0〜行4及び列0〜列26のシフト値を示す。
図9に示す例では、行0は開始行であり、行0の中のシフト値は変化しない。各行の中のゼロ要素は変化せず、各行の中の非ゼロ要素のシフト値は、行列30b−50の中の同じ位置にあるシフト値と該シフト値の位置する列の中の行列30b−50の中の前の非ゼロ要素との間の差である。シフト値の位置する行の前に、該シフト値の位置する列に、非ゼロ要素が存在しない場合、シフト値は変化しない。例えば、行列30b−50の行1及び列0にあるシフト値は179であり、並びに、
図9の行1及び列0にあるシフト値は、179と列0の中の前のシフト値211との間の差−32である。
図9の行0及び列4にある要素はゼロ要素なので、
図9の行1及び列4にあるシフト値は、行列30b−50の中の行1及び列4にあるシフト値と同じである。
図9の行2及び列3にある要素はゼロ要素であり、行1及び列3にある要素は非ゼロ要素である。したがって、行3及び列3にあるシフト値は、行列30b−50の中の行3及び列3にあるシフト値166と行1及び列3にあるシフト値223との間の差−57である、等である。限られた空間のために、行列30b−50の他の行は
図9に示されない。他の行も同じであり、詳細はここで再び記載されない。ここでシフト値の差が正数であるとき、右への循環シフトが恒等行列に対して実行される。差が負数であるとき、左への循環シフトが恒等行列に対して実行される。相応して、置換の後に取得されたシフト値、言い換えると、シフト値の差は、表3−10〜表3−91の中の「非ゼロ要素のシフト値」に格納されてよい。以上に単なる例が提供され、該例は限定を構成しない。
【0165】
図5は、データ処理プロセスの設計である。データ処理プロセスは、通信機器を用いて実施されてよい。通信機器は、基地局、端末、又は通信チップ若しくはエンコーダ/デコーダのような別のエンティティであってよい。
【0166】
パート501:入力シーケンスを取得する。
【0167】
一実装では、符号化のための入力シーケンスは、情報ビットシーケンスであってよい。情報ビットシーケンスは、時としてコードブロック(code block)と呼ばれ、例えば、コードブロックセグメント化がトランスポートブロックに対して実行された後に取得された出力シーケンスであってよい。任意で、入力シーケンスは、以下:フィラービット、又は巡回冗長検査(CRC)ビット、のうちの少なくとも1つを含んでよい。可能な設計では、情報ビットシーケンスは、フィルタビットに挿入されてよく、入力シーケンスを取得する。その結果、入力シーケンスの長さはK=K
b・Z、及びZ=K/K
bである。情報ビットシーケンスは、コードブロックセグメント化の間にフィルタビットに挿入されてよく、又はコードブロックセグメント化の後に挿入されてよい。
【0168】
可能な設計では、フィルタビットの値はnull、0、又はシステム内で合意された他の値であってよい。このように、符号化の後に、これらのフィルタビットは識別でき、送信されない。本願はこれに限定されない。
【0169】
一実装では、復号のための入力シーケンスは、LDPCコードのソフト値シーケンスであってよい。
【0170】
パート502:入力シーケンスをLDPC行列に基づき符号化/復号する。ここで、LDPC行列の基本行列は、前述の例のなかの任意の基本行列であってよい。
【0171】
一実装では、LDPC行列Hは、リフティング係数Z及び基本行列に基づき取得されてよい。
【0172】
一実装では、LDPC行列Hに関連するパラメータが格納されてよく、該パラメータは以下のうちの1つ以上を含む:
(a)前述の実装で記載した任意の基本行列を取得するために使用されるパラメータ。基本行列は、パラメータに基づき取得されてよく、例えばパラメータは、以下:行インデックス、行重み、
列インデックス、列重み、(非ゼロ要素の行インデックス又は非ゼロ要素の列インデックスのような)非ゼロ要素の位置、基本行列のシフト値、非ゼロ要素のシフト値及び対応する位置、オフセット、リフティング係数、基本グラフ、コードレート、等、のうちの1つ以上であってよい;
(b)前述の実装で記載した任意の基本行列のうちの1つである基本行列;
(c)前述の実装で列挙した任意の基本行列の少なくとも1つの列をオフセットすることにより取得されたオフセット行列Hs;
(d)基本行列をリフティングすることにより又は基本行列のオフセット行列Hsをリフティングすることにより取得された行列;
(e)行/列変換を、前述の実装で列挙した任意の基本行列に対して又はオフセット行列Hsに対して実行することにより取得された基本行列;
(f)行/列変換された基本行列又は行/列変換された基本行列のオフセット行列Hsをリフティングすることにより取得された行列;
(g)前述の実装で記載した任意の基本行列又は基本行列のオフセット行列Hsを短縮又はパンクチャリングすることにより取得された行列。
【0173】
可能な実装では、入力シーケンスは、低密度パリティチェックLDPC行列に基づき符号化/復号プロセスの中で、以下の方法のうちの1つ以上で、符号化/復号されてよい。
i.基本行列を(a)に基づき取得し、符号化/復号を取得した基本行列に基づき実行し、又は行/列置換を取得した基本行列に基づき実行し及び符号化/復号を行/列置換を実行することにより取得した基本行列に基づき実行し、又は符号化/復号を取得した基本行列のオフセット行列に基づき実行し、又は符号化/復号を取得した基本行列のオフセット行列Hsに基づき行/列置換を実行することにより取得した行列に対して実行する。任意で、符号化/復号を基本行列又はオフセット行列Hsに基づき実行することは、ここでは、符号化/復号を基本行列のリフティングされた行列又はオフセット行列Hsのリフティングされた行列に基づき実行するステップ、又は、符号化/復号を基本行列又はオフセット行列を短縮又はパンクチャリングすることにより取得された行列に基づき実行するステップを更に含んでよい。
ii.符号化/復号を(b)、(c)、(d)、又は(e)で格納された基本行列(格納された基本行列H又はHs、又は行/列置換を基本行列H又はHsに対して実行することにより取得された格納された基本行列)に基づき実行し、又は行/列置換を格納した基本行列に基づき実行し、及び符号化/復号を行/列置換を実行することにより取得された基本行列に基づき実行する。任意で、符号化/復号を基本行列又はオフセット行列Hsに基づき実行することは、ここでは、符号化/復号を基本行列のリフティングされた行列又はオフセット行列Hsのリフティングされた行列に基づき実行するステップ、又は、符号化/復号を基本行列又はオフセット行列を短縮又はパンクチャリングすることにより取得された行列に基づき実行するステップを更に含んでよい。
iii.符号化/復号を(d)、(f)、又は(g)に基づき実行する。
【0174】
パート503:符号化/復号の後に取得されたビットシーケンスを出力する。
【0175】
図6は、データ処理プロセスを取得する設計であり、該設計は
図5のパート502に適用可能である。
【0176】
パート601:リフティング係数Zを取得する。
【0177】
一実装では、リフティング係数Zは、入力シーケンスの長さKに基づき決定されてよい。例えば、最小値Z
0がサポートされるリフティング係数セットの中で見付けられてよく、リフティング係数Zの値として使用される。ここで、Kb・Z
0≧Kが満たされる。可能な設計では、KbはLDPCコードの基本行列の中の情報ビットの列の列数であってよい。基本グラフ30aでは、情報ビットの列の列数はKb
max=22であり、基本グラフ30aによりサポートされるリフティング係数セットは{24,26,28,30,32,36,40,44,48,52,56,60,64,72,80,88,96,104,112,120,128,144,160,176,192,208,224,240,256,288,320,352,384}であると仮定する。
【0178】
入力シーケンスの長さKが529ビットである場合、Zは26である。入力シーケンスの長さKが5000ビットである場合、Zは240である。留意すべきことに、単なる例がここに提供され、該例は限定を構成しない。
【0179】
別の例では、Kbの値は、Kの値に基づき変化してよいが、LDPCコードの基本行列の中の情報ビットの列の列数を超えない。例えば、Kが第1閾より大きいとき、Kb=22であり、Kが第1閾以下のとき、Kb=21である。代替として、Kが第1閾より大きいとき、Kb=22であり、Kが第1閾以下、且つ第2閾より大きいとき、Kb=21であり、Kが第2閾以下のとき、Kb=20である。留意すべきことに、単なる例がここに提供され、該例は限定を構成しない。
【0180】
さらに、前述の実装のうちのいずれか1つに基づき、指定情報長Kでは、例えば、104≦K≦512のとき、Zはシステム定義規則に基づき選択されてよい。Kが104≦K≦512以外の長さであるとき、Zは依然として前述の実装のうちのいずれか1つに基づき選択される。例えば、Kb・Z
0≧Kを満たす最小値Z
0が選択され、ここでKbの値は22であり又は閾に基づき決定される。
【0181】
一設計では、104≦K≦512のとき、Zの値は表4−1に示される。他の長さでは、Zは前述の実装のうちのいずれか1つに基づき選択される。
[表4−1]
【表4-1】
【0182】
別の可能な設計では、Kb・Z
0≧Kを満たす最小値Z
0が選択される。104≦K≦512のとき、Kbの値は、Kの値に基づき、例えば表4−2に示すように変化してよい。Kが104≦K≦512以外の長さであるとき、Kbは、前述の実装のうちのいずれか1つに基づき選択され、例えばKb=22であり、又はKbは閾に基づき決定される。
[表4−2]
【表4-2】
【0183】
リフティング係数Zは、通信機器により、入力シーケンスの長さKに基づき決定されてよく、又は通信機器により別のエンティティ(例えば、プロセッサ)から取得されてよい。
【0184】
パート602:LDPC行列を、リフティング係数及び基本行列に基づき取得する。
【0185】
基本行列は、前述の実装で記載した任意の基本行列、又は上述の任意の基本行列の中の少なくとも1つの列をオフセットすることにより取得されたオフセット行列、又は行置換若しくは列置換若しくは行置換及び列置換を上述の任意の基本行列若しくはオフセット行列に対して実行することにより取得された基本行列である。基本行列の基本グラフは、少なくとも部分行列A及び部分行列Bを含む。任意で、基本行列の基本グラフは、部分行列C、部分行列D、及び部分行列Eを更に含んでよい。部分行列については、前述の実施形態の記載を参照し、詳細はここで再び記載されない。
【0186】
可能な実装では、対応する基本行列は、リフティング係数Zに基づき決定され、基本行列は、リフティング係数Zに基づき置換されて、LDPC行列を取得する。
【0187】
一実装では、リフティング係数と基本行列との間の対応が格納されてよく、対応する基本行列はパート601で取得されたリフティング係数Zに基づき決定される。
【0188】
例えば、Zが26、且つa=13のとき、基本行列は、行列30b−70の中の行0〜行4及び列0〜列26を含んでよく、又は、基本行列は、行列30b−70の中の行0〜行4及び列0〜列26のうちの一部を含む。代替として、基本行列は、行列
30b−70の中の行0〜行
(m
−1)及び列0〜列
(n
−1)を含んでよく、ここで、5≦m≦46、mは正数であり、27≦n≦68、且つnは正数である。或いは、基本行列は、行列30b−70の中の行0〜行
(m
−1)及び列0〜列
(n
−1)を含み、ここで、5≦m≦46、mは正数であり、27≦n≦68、且つnは正数である。さらに、基本行列は、
行列30b−70の中の行5〜行45のうちの1つ以上の行及び列27〜列67のうちの1つ以上の列を含んでよい。LDPC行列は、基本行列をリフティング係数Zに基づき置換することにより取得される。
【0189】
留意すべきことに、Z=26、a=13、及び
図3B−7に示す行列は、ここで単に一例として使用される。単なる例がここで提供され、本願はこれに限定されない。リフティング係数が異なれば基本行列も異なることが理解され得る。
【0190】
可能な実装では、リフティング係数と基本行列との間の対応は、表5に示され得る。リフティング係数に対応する基本行列のインデックスは、表5に基づき決定される。可能な設計では、PCM1は、
図3B−1に示す行列30b−10であってよく、又は
図3B−2に示す行列30b−11であり、PCM2は、
図3B−3に示す行列30b−20であってよく、又は
図3B−4に示す行列30b−21であり、PCM3は、
図3B−5に示す行列30b−30であってよく、PCM4は、
図3B−6に示す行列30b−40であってよく、PCM5は、
図3B−7に示す行列30b−50であってよく、PCM6は、
図3B−8に示す行列30b−60であってよく、PCM7は、
図3B−9に示す行列30b−70であってよく、PCM8は、
図3B−80に示す行列30b−80であってよい。ここで単なる例が提供され、該例は限定を構成しない。
[表5]
【表5】
【0191】
可能な設計では、表6に示すように、セットインデックスは、表5の中の8個のリフティング係数セットについて設定される。
[表6]
【表6】
【0192】
各セットインデックスは1つのPCMに対応する。例えば、1はPCM1に対応し、2はPCM2に対応し、3はPCM3に対応し、...、8はPCM8に対応する、等である。
【0193】
任意で、可能な設計では、リフティング係数Zについて、基本行列の中の行i及び列jにある要素P
i,jは、以下の関係を満たしてよい:
【数3】
ここで、V
i,jはリフティング係数Zの属するセットの基本行列の中の行i及び列jにある要素のシフト値であり、又はリフティング係数Zの属するセットの中で最大リフティング係数の基本行列の中の行i及び列jにある非ゼロ要素のシフト値である。
【0194】
例えば、Zが13に等しく、Zの基本行列の中の行i及び列jにある要素V
i,jは以下の関係を満たす:
【数4】
ここで、V
i,jは、PCM7の中の、言い換えると行列30b−70の中の行i及び列jにある非ゼロ要素のシフト値である。ここで、Z=13のとき、モジュロ演算が、行列30b−70の中の行i及び列jにある非ゼロ要素のシフト値V
i,jのモジュロZを取ることにより実行される必要があり、ここでZ=13である。
【0195】
留意すべきことに、単なる例がここで提供され、本願はこれに限定されない。
【0196】
パート603:入力シーケンスをLDPC行列に基づき符号化/復号する。
【0197】
一実装では、符号化のための入力シーケンスは、情報ビットシーケンスであってよい。別の実装では、復号のための入力シーケンスは、LDPCコードのソフト値シーケンスであってよい。詳細については、
図5の関連する記載を参照する。
【0198】
可能な実装では、符号化のための入力シーケンスはc={c
0,c
1,c
2,...,c
K−1}であり、入力シーケンスcの長さはKであり、入力シーケンスcが符号化された後に取得される出力シーケンスはd={d
0,d
1,d
2,...,d
N−1}である。Kは0より大きい正数であり、Kはリフティング係数Zの整数倍であってよい。
【0199】
出力シーケンスdは、入力シーケンスcの中のK
0個のビット、及びパリティビットシーケンスwの中のパリティビットを含む。ここで、K
0は0より大きく且つK以下の整数であり、パリティチェックシーケンスwの長さはN−K
0であり、w={w
0,w
1,w
2,...,w
N−K0−1}である。
【0200】
パリティビットシーケンスw及び入力シーケンスcは式(1)を満たす:
【数5】
ここで、c
T=[c
0,c
1,c
2,...,c
K−1]
T、c
Tは入力シーケンスの中のビットを含むベクトルの転置ベクトルであり、w
T=[w
0,w
1,w
2,...,w
N−K0−1]
T、w
Tはパリティビットシーケンスの中のビットを含むベクトルの転置ベクトルであり、0
Tは列ベクトルであり、0
Tの全ての要素の値は0である。
【0201】
Hは、前述の実施形態で記載された任意の基本グラフ又は基本行列に基づき取得されたLDPC行列である。Hの基本グラフは、m行n列を有し、前述の実施形態で記載された任意のグラフ、例えば基本グラフ30aであってよい。
【0202】
一設計では、Hの基本グラフは、ビルトインパンクチャビットに対応するp個の列を含み、pは0以上の整数であり、ビルトインパンクチャビットに対応するp個の列に対応する情報ビットは出力されず、出力シーケンスは、ビルトインパンクチャビットに対応するp個の列に対応する情報ビットを含まない。この場合、K
0=K−p・Zである。例えば、p=2の場合、K
0=K−2・Z、及びパリティビットシーケンスwの長さはN+2・Z−Kである。ビルトインパンクチャビットに対応するp個の列が符号化に加わる場合、K
0=Kであり、パリティビットシーケンスwの長さはN−Kである。
【0203】
相応して、Hは、M行(N+p・Z)列、又はM行N列を有してよく、Hの基本グラフのサイズは:m=M/Z、及びn=(N+p・Z)/Zである。
【0204】
LDPC行列Hの基本グラフは、[H
BG H
BG,EXT]により表され得る。ここで、
【数6】
0
mc×ncはサイズm
c×n
cの全ゼロ行列を表し、I
nc×ncはサイズn
c×n
cの恒等行列を表す。
【0205】
可能な設計では、0
mc×ncが前述の実施形態における基本グラフの中の部分行列Cであり、I
nc×ncが前述の実施形態における部分行列Eである場合、
【数7】
ここでA、B、及びDはそれぞれ前述の実施形態における基本グラフの中の部分行列A、部分行列B、及び部分行列Dであり、m
c=5、0≦n
c≦41、H
BGの行数は46以下且つ5以上であり、H
BGの列数は27に等しい。
【0206】
別の可能な設計では、列26は重み1の列であり、列26にある非ゼロ要素は行5に位置するので、0
mc×ncは、前述の実施形態における基本グラフの中の列26の中の最初の4行及び前述の実施形態における部分行列Cの中の最初の4行も含んでよく、I
nc×ncは、前述の実施形態における基本グラフの中の部分行列E、列26の中の行5〜行46、及び部分行列Cの中の最後の行も含んでよく、ここで、m
c=4、0≦n
c≦42、H
BGは最後の列が前述の実施形態における基本グラフの中の部分行列A、部分行列B、及び部分行列Dを含む部分から除去された後に取得された行列であり、H
BGの行数は46未満且つ5以上であり、H
BGの列数は26に等しい。任意で、コードレートが更に向上される必要がある場合、H
BGは4行:行0〜行3を有してよい。
【0207】
相応して、LDPC行列Hは、H=[H
1 H
2]により表され得る。
【0208】
H
1は、H
BG内の各ゼロ要素をサイズZ×Zの全ゼロ行列で置き換え、各非ゼロ要素をサイズZ×Zの循環置換行列h
i,jで置き換えることにより得られてよい。循環置換行列h
i,jはサイズZ×Zの恒等行列を右へP
i,j回、循環シフトすることにより取得され、時にはI(P
i,j)により表され、ここでiは行インデックスであり、jは列インデックスである。可能な設計では、P
i,j=mod(V
i,j,Z)、及び、V
i,jは、行i及びZに対応するリフティング係数セットインデックスi
LSに対応する基本行列の中の列にある非ゼロ要素である。
【0209】
H
2は、H
BG,EXT内の各ゼロ要素をサイズZ×Zの全ゼロ行列で置き換え、各非ゼロ要素をサイズZ×Zの恒等行列で置き換えることにより得られてよい。
【0210】
エンコーダは、符号化及び出力を複数の方法で実行してよい。前述の実施形態で記載した基本グラフ30a及び基本行列30b−50は、以下で説明のための一例として用いられる。基本グラフ及び基本行列は、それぞれ最大46行及び最大68列を有し、それぞれビルトインパンクチャビットに対応する2個の列を含む。説明を容易にするために、本願では、最大行数及び最大列数を有する基本グラフは、時には完全基本グラフと呼ばれ、最大行数及び最大列数を有する基本行列は、時には完全基本行列と呼ばれる。
【0212】
符号化は、完全基本グラフ又は完全基本行列に基づき実行される。その結果、可能な限り多くのパリティビットが取得できる。この場合、m=46、且つn=68であり、これは基本グラフ30aの中の行0〜行45及び列0〜列67、又は基本行列30b−50の中の行0〜行45及び列0〜列67の中のシフト値に対応する。
【0213】
相応して、LDPC行列HについてM=46・Zである。出力シーケンスがビルトインパンクチャビットに対応する列に対応する情報ビットを含む場合、N=68・Zである。或いは、出力シーケンスがビルトインパンクチャビット
である2・Z個の情報ビットを含まない場合、N=66・Zである。
【0214】
後の処理の間、送信される必要のある情報ビット及びパリティビットは、エンコーダにより生成された出力シーケンスから決定されてよい。
【0216】
符号化は、完全基本グラフ又は完全基本行列の中の幾つかの行及び幾つかの列に基づき実行される。行及び列は、送信のためのコードレート、又は情報ビット数及びパリティビット数、等に基づき、完全基本グラフ又は完全基本行列から符号化のために選択されてよい。
【0217】
例えば、コードレートは8/9であり、m=5、且つn=27である。言い換えると、符号化は、基本グラフ30aの中の行0〜行4及び列0〜列26に基づき実行され、又は符号化は、基本行列30b−50の中の行0〜行4及び列0〜列26のシフト値に基づき実行される。
【0218】
相応して、LDPC行列HについてM=5・Zである。出力シーケンスがビルトインパンクチャビットに対応する列に対応する情報ビットを含む場合、N=27・Zである。或いは、出力シーケンスがビルトインパンクチャビットに対応する列に対応する情報ビットを含まない場合、N=25・Zである。
【0219】
別の例では、コードレートは1/3であり、m=46、且つn=68である。
【0220】
この方法では、Hの基本グラフ又は基本行列のサイズは、5≦m≦46及び27≦n≦68を満たし、及び相応して、LDPC行列Hについて、5・Z≦M≦46・Z、且つ27・Z≦N≦68・Zである。
【0221】
可能な設計では、基本グラフ30aの中の列26は重み1の列であり、パンクチャリングがコア行列の中の重み1の列に対して実行されてよい。その結果、それに応じて1行1列がコア行列から除去され、m=4及びn=26である。言い換えると、符号化は、基本グラフ30a又は基本行列30b−50の中の行0〜行3及び列0〜列25に基づき実行される。この方法で、より高いコードレートを得ることができる。したがって、基本グラフ又は基本行列のサイズは、4≦m≦46及び26≦n≦68を満たし、及び相応して、LDPC行列Hについて、4・Z≦M≦46・Z、且つ26・Z≦N≦68・Zである。
【0222】
復号は符号化の逆処理なので、LDPC行列H及びLDPC行列Hの基本グラフ及び基本行列の説明については、前述の符号化方法を参照する。復号は、完全基本グラフ又は完全基本行列に基づき実行されてよい。又は、復号は、完全基本グラフ又は完全基本行列の中の幾つかの行又は幾つかの列に基づき実行されてよい。
【0223】
入力シーケンスが符号化/復号されるとき、基本行列はZに基づきリフティングされてよく、LDPC行列Hを得る。サイズZ×Zの循環置換行列h
i,jが基本行列の中の各非ゼロ要素P
i,jについて決定される。ここで、h
i,jは、恒等行列をP
i,j回だけ循環シフトすることにより得られた循環置換行列である。非ゼロ要素P
i,jはh
i,jで置き換えられ、基本行列H
Bの中のゼロ要素はサイズZ×Zの全ゼロ行列で置き換えられて、パリティチェック行列Hを得る。
【0224】
可能な実装では、LDPCコードの基本行列はメモリに格納されてよく、通信機器はリフティング係数Zに対応するLDPC行列を取得して、入力シーケンスを符号化/復号する。
【0225】
可能な実装では、LDPCコードの複数の基本行列が存在し、基本行列が行列構造に基づき格納される場合、比較的大きな記憶空間が占有されるので、LDPCコードの基本グラフがメモリに格納されてよく、各基本行列内の非ゼロ要素のシフト値は行により又は列により格納されてよく、したがって、LDPC行列は、基本グラフ及びリフティング係数Zに対応する基本行列のシフト値に基づき取得されてよい。
【0226】
基本グラフは、各基本行列の非ゼロ要素の位置を示してよい。LDPC行列を基本グラフ及びリフティング係数Zに対応する基本行列のシフト値に基づき取得するステップは、更にLDPC行列を、リフティング係数Zに対応する基本行列の非ゼロ要素の位置及びシフト値に基づき取得するステップであってよい。
【0227】
別の可能な実装では、基本グラフを格納するステップは、基本グラフの中の非ゼロ要素の位置を格納するステップであってよい。非ゼロ要素の位置は、非ゼロ要素の位置する行インデックス及び列インデックスにより示されてよい。例えば、非ゼロ要素の位置は、各行にある非ゼロ要素の列位置、又は各列にある非ゼロ要素の行位置であってよい。別の可能な実装では、基本グラフを格納するステップは、基本グラフの中のゼロ要素の位置を格納するステップであってよい。同様に、ゼロ要素の位置も、ゼロ要素の位置する行インデックス及び列インデックスにより示されてよい。例えば、ゼロ要素の位置は、各行の中のゼロ要素の列位置、又は各
列の中のゼロ要素の位置する行位置であってよく、非ゼロ要素の対応する位置は、ゼロ要素の位置を除外することにより取得されてよい。留意すべきことに、単なる例がここで提供され、本願はこれに限定されない。
【0228】
可能な実装では、各基本行列の非ゼロ要素のシフト値は、表2−10、表2−11、表3−10〜表3−80、表3−90、及び表3−91の方法で格納され、LDPC行列のパラメータとして使用されてよい。表2−10、表2−11、表3−10〜表3−80、表3−90、及び表3−91の中の「行重み」の列は、任意である。言い換えると、任意で、「行重み」の列が格納され又は格納されなくてよい。行の中の非ゼロ要素の数は、該行の中の非ゼロ要素の列位置を用いて分かる。したがって、行重みが分かる。可能な実装では、表2−10、表2−11、及び表3−10〜表3−80、表3−90、及び表3−91の中の「非ゼロ要素の列インデックス」のパラメータ値は、非ゼロ要素の列位置がパラメータ値を用いて検索可能ならば、昇順でソートされなくてよい。さらに、表2−10、表2−11、及び表3−10〜表3−80、表3−90、及び表3−91の中の「非ゼロ要素のシフト値」のパラメータ値は、「非ゼロ要素のシフト値」のパラメータ値が「非ゼロ要素の列位置」のパラメータ値と1対1対応にあるならば、及び通信機器がどの行及びどの列に非ゼロ要素があるかが非ゼロ要素のシフト値に基づき分かるならば、必ずしも列順序に基づきソートされなくてよい。例えば:
【0229】
可能な実装では、LDPC行列の関連パラメータは、
図5の関連する記載を参照して格納されてよい。
【0230】
可能な実装では、LDPC行列の関連パラメータが格納されるとき、格納されるパラメータは、
図1〜
図3A、
図3B−1〜
図3B−10、又は表2−10、表2−11、表3−10〜表3−80、表3−90、及び表3−91に示す行列の全ての行を含まなくてよく、表中の対応する行により示されるパラメータは基本行列に含まれる行に基づき格納されてよい。例えば、前述の実施形態で記載したLDPC行列の基本行列に含まれる行及び列を含む行列が格納されてよく、又は該行及び列を含む行列に関連するパラメータが格納される。
【0231】
例えば、基本行列が行列30b−10〜30b−80及び表3−90及び表3−91に示される行列のいずれか1つの中の行0〜行4及び列0〜列26を含む場合、行0〜行4及び列0〜列26を含む行列が格納されてよく、及び/又は行0〜行4及び列0〜列26を含む行列に関連するパラメータが格納される。詳細については、表3−10〜表3−80、表3−90、及び表3−91に示されるパラメータ及び前述の部分の記載を参照する。
【0232】
基本行列が行列30b−10〜30b−80及び表3−90及び表3−91に示される行列のいずれか1つの中の行0〜行(m−1)及び列0〜列(n−1)を含み、ここで5≦m≦46、mは整数であり、27≦n≦68、nは整数である場合、行0〜行(m−1)及び列0〜列(n−1)を含む行列が格納されてよく、及び/又は行0〜行(m−1)及び列0〜列(n−1)を含む行列に関連するパラメータが格納される。詳細については、表3−10〜表3−80、表3−90、及び表3−91に示されるパラメータ及び前述の部分の記載を参照する。
【0233】
可能な実装では、0以上の、表3−10〜表3−80、表3−90、及び表3−91のいずれか1つの中の「非ゼロ要素の列インデックス」の少なくとも1つの位置sにより示される、各シフト値は、オフセットOffset
sだけ増大又は減少されてよい。
【0234】
可能な実装では、前述の実施形態で記載された1つ以上の変換されたシフト値は、表3−10〜表3−80、表3−90、及び表3−91のうちのいずれか1つの中の「非ゼロ要素のシフト値」、例えば
図9に示す1つ以上のシフト値に格納されてよい。
【0235】
別の設計では、LDPC行列の基本グラフ及びLDPC行列のシフト値は、別個に格納されてよい。LDPC行列のシフト値に関する情報は、表3−10〜表3−91の非ゼロ要素の行インデックス及びシフト値を用いて格納されてよい。LDPCの基本グラフは、複数の方法で格納されてよく、例えば
図3Aに示す基本グラフ30aの行列形式で格納されてよく、又は表3−10〜表3−91の非ゼロ要素の行インデックス及び位置に基づき格納されてよく、又は基本グラフの中の各行又は各列の中の1及び0が2進数値と考えられ得る方法で格納されてよく、基本グラフは記憶空間を節約するために10進数又は16進数の形式で格納される。基本グラフ30aが一例として用いられる。最初の26列又は最初の27列の中の非ゼロ要素の位置は、各行に4個の16進数で格納されてよい。例えば、行0の中の最初の26列が11110110 01111101 10111111 00である場合、行0の中の非ゼロ要素の位置は、0xF6、0x7D、0xBF、及び0x00と表されてよい。具体的に言うと、8列ごとに1つの16進数を形成する。0が最後の2又は3列にパディングされてよく、8桁を得る。その結果、対応する16進数が取得される。別の行も同じであり、詳細はここで再び記載されない。留意すべきことに、単なる例がここに提供され、該例は限定を構成しない。
【0236】
図1が一例として用いられる。基本行列H
Bが決定された後に、列22〜列25に対応するパリティビットは、先ず、入力シーケンス及び基本行列、言い換えるとH
core−dualの中の行0〜行3及び列0〜列25を用いて取得されてよい。次に、列26に対応するパリティビット、言い換えると重み1の列が、入力シーケンス及びH
core−dualに対応するパリティビットに基づき取得されてよい。次に、符号化が、入力シーケンス、列22〜列26に対応するパリティビット、及び部分行列Dに基づき実行されてよく、部分行列Eに対応するパリティビットを取得する。このように、符号化が完了する。LDPCコードの符号化プロセスについては、前述の実装の記載を参照し、詳細はここで再び記載されない。
【0237】
可能な実装では、LDPC行列Hは、符号化の前にリフティング係数Zに基づきリフティング係数に関してリフティングされてよい。言い換えると、各シフト値は、各シフト値に基づき、対応する循環置換行列で置き換えられる。
【0238】
別の可能な実装では、非ゼロ要素に対応するシフト値は、符号化の間に符号化されるべきビットに対応する非ゼロ要素の位置に基づき取得され、非ゼロ要素は、対応する循環置換行列により置き換えられ、処理が実行される。
【0239】
別の可能な実装では、LDPC行列Hは、使用中に直接リフティングされず、入力シーケンス内のビットは、等価行列の行及び列の間の、シフト値に基づき計算された接続関係に基づき、処理される。
【0240】
別の可能な実装では、符号化は、QSN法を用いて実行されてよい。各々の処理されるべき非ゼロ要素について、非ゼロ要素のシフト値に基づき、シフト動作が、非ゼロ要素に対応する符号化されるべきビットセグメントに対して実行される。次に、符号化動作は、シフト動作の実行された全てのビットセグメントに対して実行される。
【0241】
別の可能な実装では、LDPC行列Hの生成行列Gも格納されてよく、入力シーケンスc及び出力シーケンスdは式(2)を満たす。
d=c・G (2)
【0242】
行/列置換がLDPC行列Hに対して実行されて、H’を取得し、ここでH’の右側が恒等行列Iであり、左側の行列がPである場合、H’=[P I]、及び生成行列Gは以下の式(3)を満たす。
G=[I P
T] (3)
【0243】
留意すべきことに、前述の説明は一例であり、本願はこれに限定されない。
【0244】
任意で、通信システムでは、LDPCコードは、符号化が前述の方法を用いて実行された後に、取得されてよい。LDPCコードが取得された後に、通信機器は、以下の動作:LDPCコードに対してレートマッチングを実行する、インターリービング方式に基づきレートマッチングされたLDPCコードに対してインターリービングを実行する、変調方式に基づきインターリービングされたLDPCコードを変調して、ビットシーケンスXを得る、及びビットシーケンスXを送信する、のうちの1つ以上を更に実行してよい。
【0245】
復号は、符号化の逆処理であり、復号の間に使用される基本行列及び符号化の間の基本行列は同じ特性を有する。LDPCコードの符号化プロセスについては、前述の実装の記載を参照し、詳細はここで再び記載されない。一実装では、復号の前に、通信機器は、以下の動作:LDPCコード符号化の後に取得された信号を受信する、及び復調、デインターリービング、及びデレートマッチングを信号に対して実行して、LDPCコードのソフト値シーケンスを取得する、及び、LDPCコードのソフト値シーケンスを復号する、のうちの1つ以上を更に実行してよい。
【0246】
本願における格納するステップは、1つ以上のメモリに格納するステップであってよい。1つ以上のメモリは、別個に配置されてよく、又はエンコーダ、デコーダ、プロセッサ、チップ、通信機器、又は端末に統合されてよい。1つ以上のメモリの一部は、別個に配置されてよく、及びその他は、デコーダ、プロセッサ、チップ、通信機器、又は端末に統合されてよい。メモリの種類は、任意の形式の記憶媒体であってよく、本願はこれに限定されない。
【0247】
図5及び
図6のデータ処理プロセスの設計に対応して、本願の一実施形態は、対応する通信機器を更に提供する。通信機器は、
図5又は
図6の各部分を実行するよう構成されるモジュールを含む。モジュールは、ソフトウェアであってよく、又はハードウェアであってよく、又はソフトウェア及びハードウェアの組み合わせであってよい。例えば、モジュールは、メモリ、電子装置、電子コンポーネント、論理回路、等、又はそれらの任意の組み合わせを含んでよい。
図7は、通信機器700の概略構造図である。機器700は、前述の方法の実施形態で記載された方法を実施するよう構成されてよい。詳細については、前述の方法の実施形態における記載を参照する。通信機器700は、チップ、基地局、端末、又は別のネットワーク装置であってよい。
【0248】
通信機器700は、1つ以上のプロセッサ701を含む。プロセッサ701は、汎用プロセッサ、専用プロセッサ、等であってよい。例えば、プロセッサ701は、ベースバンドプロセッサ又は中央処理ユニットであってよい。ベースバンドプロセッサは、通信プロトコル及び通信データを処理するよう構成されてよい。中央処理ユニットは、(基地局、端末、又はチップのような)通信機器を制御し、ソフトウェアプログラムを実行し、及びソフトウェアプログラムのデータを処理するよう構成されてよい。
【0249】
可能な設計では、
図5及び
図6の1つ以上のモジュールは、1つ以上のプロセッサを用いて実装されてよく、又は1つ以上のプロセッサ及び1つ以上のメモリを用いて実装されてよい。
【0250】
可能な設計では、通信機器700は、1つ以上のプロセッサ701を含む。1つ以上のプロセッサ701は、符号化/復号の機能を実装してよい。例えば、通信機器はエンコーダ又はデコーダであってよい。別の可能な設計では、プロセッサ701は、符号化/復号の機能に加えて他の機能を実装してよい。
【0251】
通信機器700は、LDPC行列に基づき入力シーケンスを符号化/復号する。LDPC行列の基本行列は、前述の例における任意の基本行列、又は行置換若しくは列置換若しくは行置換及び列置換を前述の例における任意の基本行列に対して実行することにより取得された基本行列、又は短縮若しくはパンクチャリングを前述の例における任意の基本行列に対して実行することにより取得された基本行列、又は前述の例における任意の基本行列をリフティングすることにより取得された行列であってよい。符号化/復号の処理については、
図5及び
図6の関連部分の記載を参照し、詳細はここで再び記載されない。
【0252】
任意で、一設計では、プロセッサ701は、命令703(時にはコード又はプログラムとも呼ばれる)を含んでよい。命令は、プロセッサ上で実行されてよく、その結果、通信機器700は前述の方法の実施形態で記載された方法を実行する。別の可能な設計では、通信機器700は、回路も含んでよい。該回路は、前述の実施形態における符号化/復号の機能を実装してよい。
【0253】
任意で、一設計では、通信機器700は、1つ以上のメモリ702を含んでよい。メモリは命令704を格納し、命令は、プロセッサ上で実行されてよく、その結果、通信機器700は前述の方法の実施形態で記載された方法を実行する。
【0254】
任意で、メモリはデータを更に格納してよい。任意で、プロセッサは命令及び/又はデータを更に格納してよい。プロセッサ及びメモリは、別個に配置されてよく、又は一緒に統合されてよい。
【0255】
任意で、前述の実施形態における「記憶」は、データをメモリ702に格納することであってよく、又はデータを別の周辺メモリ又は記憶装置に格納することであってよい。
【0256】
例えば、1つ以上のメモリ702は、前述の例におけるLDPC行列に関連する1つ以上のパラメータ、例えばシフト値のような基本行列、基本グラフ、基本グラフに基づきリフティングされた行列、基本行列の中の行、リフティング係数、基本行列、又は基本行列に基づきリフティングされた行列、を格納してよい。詳細については、
図5の関連する記載を参照する。
【0257】
任意で、通信機器700は、通信機705及びアンテナ706を更に含んでよい。プロセッサ701は、処理ユニットと呼ばれ、通信機器(端末又は基地局)を制御してよい。通信機
705は、通信機ユニット又は通信機回路と呼ばれてよく、アンテナ
706を用いて通信機器の通信機能を実装するよう構成される。
【0258】
任意で、通信機器700は、トランスポートブロックCRCを生成するよう構成されるコンポーネント、コードブロックセグメント化及びCRCチェックを実行するよう構成されるコンポーネント、インターリービングを実行するよう構成されるインターリーバ、レートマッチングを実行するよう構成されるコンポーネント、変調処理を実行するよう構成される変調器、等を更に含んでよい。これらのコンポーネントの機能は、1つ以上のプロセッサ701により実装されてよい。
【0259】
任意で、通信機器700は、復調を実行するよう構成される復調器、デインターリービングを実行するよう構成されるデインターリーバ、デレートマッチングを実行するよう構成されるコンポーネント、コードブロック連結及びCRCチェックを実行するよう構成されるコンポーネント、等を更に含んでよい。これらのコンポーネントの機能は、1つ以上のプロセッサ701により実装されてよい。
【0260】
図8は、通信システム800の概略図である。通信システム800は、通信装置80及び通信装置81を含む。通信装置80及び通信装置81は、情報データを互いから受信し及び情報データを互いへ送信する。通信装置80及び通信装置81は、通信機器700であってよく、又は通信装置80及び通信装置81はそれぞれ通信機器700を含み情報データを受信及び/又は送信する。例えば、通信装置80は端末であってよく、相応して、通信装置81は基地局であってよい。別の例では、通信装置80は基地局であり、相応して、通信装置81は端末であってよい。
【0261】
当業者は、本願の実施形態において列挙される種々の説明的論理ブロック(illustrative logical block)及びステップ(step)が電子ハードウェア、コンピュータソフトウェア、又はそれらの組合せを用いて実施されてよいことを更に理解し得る。機能がハードウェア又はソフトウェアを用いて実装されるかは、特定の適用及びシステム全体の設計要件に依存する。当業者は、各々の特定の適用について記載の機能を実施するために種々の方法を使用してよいが、実装が本願の実施形態の範囲を超えると考えられるべきではない。
【0262】
本願に記載された技術は、種々の方法で実施されてよい。例えば、これらの技術は、ハードウェア、ソフトウェア又はそれらの組み合わせを用いて実施されてよい。ハードウェアによる実施では、これらの技術を通信機器(例えば、基地局、端末、ネットワークエンティティ、又はチップ)において実行するよう構成される処理ユニットは、1つ以上の汎用プロセッサ、デジタル信号プロセッサ(DSP)、デジタル信号処理装置(DSPD)、特定用途向け集積回路(ASIC)、プログラマブル論理素子(PLD)、フィールドプログラマブルゲートアレイ(FPGA)若しくは他のプログラマブル論理機器、個別ゲート若しくはトランジスタロジック、個別ハードウェアコンポーネント、又はそれらの任意の組み合わせで実装されてよい。汎用プロセッサはマイクロプロセッサであってよい。任意で、汎用プロセッサは、任意の伝統的プロセッサ、制御部、マイクロコントローラ、又は状態機械であってよい。プロセッサは、デジタル信号プロセッサ及びマイクロプロセッサ、複数のマイクロプロセッサ、デジタル信号プロセッサコアを備える1つ以上のマイクロプロセッサ、又は任意の他の同様の構成のようなコンピューティング機器の組合せにより実装されてよい。
【0263】
本願の実施形態に記載された方法又はアルゴリズムのステップは、ハードウェア、プロセッサにより実行される命令、又はそれらの組合せに直接埋め込まれてよい。メモリは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、取り外し可能磁気ディスク、CD−ROM、又は当該分野の任意の他の形式の記憶媒体であってよい。例えば、メモリはプロセッサに接続されてよい。その結果、プロセッサはメモリから情報を読み出しメモリに情報を書き込むことができる。任意で、メモリは、プロセッサに統合されてよい。プロセッサ及びメモリは、ASIC内に配置されてよく、ASICはUE内に配置されてよい。任意で、プロセッサ及びメモリは、UEの異なるコンポーネント内に配置されてよい。
【0264】
前述の実装の記載に基づき、当業者は、技術がハードウェア、ファームウェア、又はそれらの組み合わせにより実装され得ることを明らかに理解し得る。ソフトウェアプログラムによる実装では、実装は、完全に又は部分的にコンピュータプログラムプロダクトの形式であってよい。コンピュータプログラムプロダクトは、1つ以上のコンピュータ命令を含む。コンピュータ命令はコンピュータ上にロードされ実行されると、本願の実施形態による手順又は機能が全部又は部分的に生成される。本願がソフトウェアプログラムにより実装されるとき、前述の機能は、コンピュータ可読媒体に格納され、又はコンピュータ可読媒体の中の1つ以上の命令又はコードとして送信されてよい。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワーク、又は別のプログラマブル機器であってよい。コンピュータ命令は、コンピュータ可読記憶媒体に格納されてよく、又はあるコンピュータ可読記憶媒体から別のコンピュータ可読記憶媒体へ送信されてよい。コンピュータ可読媒体は、コンピュータ記憶媒体及び通信媒体を含む。通信媒体は、コンピュータプログラムをある場所から別の場所へ送信させる任意の媒体を含む。記憶媒体は、コンピュータにとってアクセス可能な任意の利用可能な媒体であってよい。以下は、一例を提供するが、限定を課さない。コンピュータ可読媒体は、RAM、ROM、EEPROM、CD−ROM、又は別の光ディスク記憶装置、ディスク記憶媒体、又は別の磁気記憶装置、又は、命令若しくはデータ構造の形式で期待されるプログラムコードを運び又は格納でき且つコンピュータによりアクセス可能な任意の他の媒体を含んでよい。さらに、任意の接続は、コンピュータ可読媒体として適切に定められてよい。例えば、ソフトウェアが、同軸ケーブル、光ファイバ/ケーブル、ツイストペア、デジタル加入者線(DSL)、又は、赤外線、無線、及びマイクロ波のような無線技術を用いて、ウェブサイト、サーバ、又は他のリモートソースから送信される場合、同軸ケーブル、光ファイバ/ケーブル、ツイストペア、DSL、又は、赤外線、無線、及びマイクロ波のような無線技術は、それらの属する媒体の定義に含まれる。例えば、本願において使用されるディスク(Disk)及びディスク(disc)は、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタルバーサタイルディスク(DVD)、フロッピーディスク、ブルーレイディスクを含む。ここで、ディスク(Disk)は、通常、磁気手段によりデータをコピーし、ディスク(disc)は、レーザ手段により光学的にデータをコピーする。前述の組合せも、コンピュータ可読媒体の保護範囲に含まれるべきである。
【0265】
留意すべきことに、本願では、「/」は「及び/又は」を示す。例えば、「符号化/復号(符号化及び/又は復号)」は、符号化、又は復号、又は符号化及び復号を示す。
【0266】
まとめると、以上に記載されたものは、本願の技術的ソリューションの単なる好適な実施形態であり、本願の保護範囲を限定することを意図しない。本願の精神及び原理から逸脱することなく行われる任意の変更、等価置換、又は改良は、本願の保護範囲に含まれるべきである。