【文献】
HUAWEI et al.,Polar Code Construction for NR,3GPP TSG-RAN WG1#86b,Internet<URL:http://www.3gpp.org/ftp/tsg_ran/WG1_RL1/TSGR1_86b/Docs/R1-1608862.zip>,2016年10月 1日,R1-1608862
【文献】
HUAWEI et al.,Evaluation of polar codes for eMBB scenario[online],3GPP TSG-RAN WG1#85,Internet<URL:http://www.3gpp.org/ftp/tsg_ran/WG1_RL1/TSGR1_494/Docs/R1-164375.zip>,2016年 5月14日,R1-164375
【文献】
HUAWEI et al.,Overview of Polar Codes,3GPP TSG-RAN WG1#84b,Internet<URL:http://www.3gpp.org/ftp/tsg_ran/WG1_RL1/TSGR1_84b/Docs/R1-162161.zip>,2016年 4月 2日,R1-162161
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0014】
実施例の製造及び使用について、以下に詳細に議論する。しかし、本開示は、広範囲の具体的な状況に具現できる多くの適用可能な発明概念を提供することが認識されるべきである。議論される具体的な実施例は、発明を製造及び使用するための具体的な方法の単なる例であり、発明の範囲を限定しない。
【0015】
パリティビットは、受信機において復号化を補助して誤り検出又は訂正を容易にするために、ポーラー符号化中に情報ビットの列に追加されてもよい。「パリティ検査(parity check, PC)ビット」、「パリティビット」及び動的凍結ビットという用語は、この開示を通じて交換可能なように使用される。この開示の多くがパリティビットに関する発明の実施例を議論するが、パリティビットは特定の種類の補助ビットであり、ここに開示された原理は、他の誤り訂正ビット、又は巡回冗長検査(Cyclic Redundancy Check, CRC)ビット、チェックサムビット、ハッシュ関数ビット、暗号符号、反復符号又は誤り検出ビット若しくは符号等の符号のような、他の種類の補助ビットを使用して適用されてもよいことが認識されるべきである。いくつかの実施例では、パリティビットは、パリティ検査(parity check, PC)凍結ビット(又は略称「PFビット」)と呼ばれる。
【0016】
ポーラー符号化中に(P個の)パリティビットを挿入するときに生じる1つの問題は、どのように(N個のサブチャネルの中から)パリティビットを送信するサブチャネルを選択するかということである。ポーラー符号化中にパリティビットを扱うための1つの選択肢は、最も信頼性の高いサブチャネルに、符号化されるべき(K個の)情報ビット(他の補助ビットも含んでもよい)をマッピングし、その後、最も信頼性の高いサブチャネルに情報ビットをマッピングした後に利用可能な次に最も信頼性の高いサブチャネルに、パリティビットをマッピングすることである。他の選択肢は、最も信頼性の高いサブチャネルにパリティビットをマッピングし、その後、最も信頼性の高いサブチャネルにパリティビットをマッピングした後に利用可能な次に最も信頼性の高いサブチャネルに、情報ビットをマッピングすることである。
【0017】
シミュレーションは、これらの2つの選択肢が、一般的に、サブチャネルにパリティビットをこれらの行重みに基づいてマッピングする実施例の技術より低いレベルの性能を提供することを示している。サブチャネルのための行重みは、クロネッカー行列の対応する行の中の「1」の数、又は2の累乗、ただし、指数(すなわち、ハミング重み)がサブチャネルインデックスのバイナリ表現における「1」の数であるもの(更に以下に説明する)として見なされてもよい。一実施例では、特定の行重み値(例えば、最小行重みw
min又は最小行重みの2倍2*w
min)を有する候補サブチャネルが取り分けられ、パリティビットのために使用される。以下に提供される行重みを計算するための説明に基づいて認識できるように、パリティビットのために確保された候補サブチャネルは、必ずしも最も信頼性の高いサブチャネルであるとは限らない。候補サブチャネルが識別された後に、K個の情報ビットは、K個の最も信頼性の高い残りのサブチャネルにマッピングされ、複数の凍結ビット(例えば、N-K個)は、最も信頼性の低い残りのサブチャネルにマッピングされる。パリティビットは、候補サブチャネルにマッピングされ、パリティビット値は、情報ビットの関数に基づいて決定される。
【0018】
サブチャネルのための行重みを決定するための多くの方法が存在する。一実施例では、行重みは、サブチャネルに関連するチャネルインデックスのハミング重みの関数として計算されてもよい。ハミング重みは、チャネルインデックスを表すバイナリ系列内の非ゼロの要素の数である。一例では、サブチャネル(N)は、これらのチャネル信頼性に基づいて順序付けされた系列(Q)にソートされ、それにより、順序付けされた系列(Q)は、これらの信頼性に基づいて昇順(Q
0,Q
1,…Q
N)にサブチャネルを列挙する(Q
Nが最も信頼性の高いサブチャネルである)。その後、この開示を通じてw
min又はd
minとして交換可能なように記される最小行重み値は、例えば、K個の情報ビットに使用される最も信頼性の高いKサブセット(例えば、Q
(N-K+1)…Q
N)、又はK個の情報ビット及びP個のパリティビットに使用される最も信頼性の高い(K+P)サブセット(例えば、Q
(N-K-P)…Q
N)のように、最も信頼性の高いチャネルのサブセットの行重みに基づいて識別されてもよい。その後、その最も信頼性の高いサブセット内の最小行重み値は、パリティビットのためのサブチャネルを確保するために使用されてもよい。
【0019】
いくつかの実施例では、w
minパラメータを動的に計算するプロセスが符号化操作に待ち時間を追加する場合、w
minパラメータを識別するために、ルックアップテーブル(look up table, LUT)が使用できる。
【0020】
特に、LUTに基づく技術は、ポーラー符号化中に使用され得る情報ブロック長(K)とマザー符号長(M)との潜在的な組み合わせの関数として、可能なw
minパラメータを計算することにより、オフラインでルックアップテーブルを生成する。その後、ルックアップテーブルは、オンラインのポーラー符号化中にw
minパラメータを決定するために使用される。表1は、符号パラメータを決定するために使用できるルックアップテーブルの例を提供し、これは、w
minパラメータと、パリティビットのために確保されるべき候補サブチャネルの数を決定するために使用されるインデックス(f
1,f
2)とを含む(更に以下に説明する)。
【表1】
【0021】
より大きいテーブルは典型的により長い検索時間を必要とするため、オンラインのポーラー符号化中にw
minパラメータを識別するために必要な時間は、ルックアップテーブルのサイズに大きく影響される。その結果、エンコーダの待ち時間の要件は、ルックアップテーブルで利用可能な符号化の組み合わせの粒度を抑制してもよく、それにより、符号化性能に影響を与える。
【0022】
この開示の他の実施例は、最小ハミング重み(u
min)パラメータに基づいてパリティビットのためにサブチャネルを確保又は配分し、それにより、行重みの計算を回避する低い待ち時間の技術を提供する。前述のように、行重みは、ハミング重みの関数として計算されてもよい。一例では、式:rw=2
hwに基づき、rwは所与のサブチャネルのための行重みであり、hwは所与のサブチャネルのためのチャネルインデックスのバイナリ表現のハミング重みである。記号「hw」及び「u」は、ここではハミング重みを示すように交換可能なように使用される。これから、最低のハミング重みに関連するサブチャネルはまた、最低の行重みを有することは明らかである。したがって、最も信頼性の高いチャネルのサブセット内のサブチャネル(例えば、Q
(N-(K+Fp)),…Q
N)に関連するハミング重みに基づいて、最小ハミング重み(u
min)を識別し、その後、パリティビットのためのサブチャネルを確保するために最小ハミング重みを使用することが可能である。
【0023】
以下に説明するように、最小行重み値の2倍(2*w
min)は、パリティビットのためのサブチャネルを確保するために、w
minと共に場合によって使用される。例えば、w
minに等しい行重みを有する第1の数(例えば、f
1)の最も信頼性の高いサブチャネルはパリティビットのために確保されてもよく、2*w
minに等しい行重みを有する第2の数(例えば、f
2)の最も信頼性の高いサブチャネルはパリティビットのために確保されてもよい。式:rw=2
hwから、2*w
minパラメータは、1に最小ハミング重みを加えたものに対応することが明らかである。したがって、この開示の実施例は、パリティビットのために、最小ハミング重みに等しいハミング重みを有する第1の数の最も信頼性の高いサブチャネルを確保し、パリティビットのために、1に最小ハミング重みを加えたものに等しいハミング重みを有する第2の数の最も信頼性の高いサブチャネルを確保してもよい。
【0024】
以降でより詳細に以下に説明する本開示のこれら及び他の発明態様を理解するのを補助するために、ポーラー符号化の簡単な議論が提供される。
図1は、例示的な例によって、どのようにポーラー符号化生成行列がカーネルG
2100から生成できるかを示す図である。
図1は例である点に留意すべきである。他の形式のカーネルも可能である。生成行列がカーネル(又はカーネルの組み合わせ)から生成される「ネスト型」方法から、分極が生じる。
【0025】
図1における2倍クロネッカー積行列
【数1】
102及び3倍クロネッカー積行列
【数2】
104は、ポーラー符号化生成行列の例である。
図1に示す生成行列の手法は、m倍クロネッカー積行列
【数3】
を生成するように拡張できる。
【0026】
ポーラー符号は、行列G
2100に基づいて、クロネッカー積行列から形成できる。長さN=2
mのコードワードを有するポーラー符号について、生成行列は
【数4】
である。
図2は、コードワードを生成するためのポーラー符号化生成行列の例示的な使用を示す図、及び例示的なポーラーエンコーダの概略図である。
図2において、生成行列
【数5】
104は、長さ2
3=8のコードワードを生成するために使用される。コードワードxは、200で示すように、入力ベクトルu=[0 0 0 u
3 0 u
5 u
6 u
7]と生成行列
【数6】
104との積により形成される。入力ベクトルuは、情報ビットと、固定又は凍結ビットとで構成される。
図2に示す具体的な例では、N=8であるので、入力ベクトルuは8ビットのベクトルであり、コードワードxは8ビットのベクトルである。入力ベクトルは、位置0、1、2及び4に凍結ビットを有し、位置3、5、6及び7に情報ビットを有する。コードワードを生成するエンコーダの例示的な実現方式が212で示され、凍結ビットは全て0に設定され、丸で囲まれた「+」の記号はモジュロ2加算を表す。
図2の例では、N=8ビットの入力ベクトルは、K=4個の情報ビット及びN-K=4個の凍結ビットから形成される。この形式の符号はポーラー符号と呼ばれ、エンコーダはポーラーエンコーダと呼ばれる。ポーラー符号を復号化するためのデコーダはポーラーデコーダと呼ばれる。凍結ビットは、
図2に示す例では0に設定される。しかし、凍結ビットは、エンコーダとデコーダとの双方に既知の他の固定ビット値に設定されてもよい。説明を容易にするために、全てが0の凍結ビットがここで考慮され、一般的には好ましくなり得る。
【0027】
図3は、最大の所与のリストサイズにより幅が制限され且つSCLポーラーデコーダで使用される例示的な決定リスト木の一部を示す図である。
図3において、リストサイズLは4である。5つのレベル302、304、306、308、310の決定木が示される。5つのレベルが示されるが、N個のビットを復号化するための決定木は、N+1個のレベルを有することが理解されるべきである。ルートレベル302の後の各レベルにおいて、4つまでの生き残り復号化経路のそれぞれは、1つのビットだけ拡張される。ルートノード320のリーフ又は子ノードは、第1のビットのための可能な選択肢を表し、以降のリーフノードは、以降のビットのための可能な選択肢を表す。例えば、ルートノード320からリーフノード330aへの復号化経路は、推定コードワードビット系列:0,1,0,0を表す。レベル308において、可能な経路の数はLより大きいので、最高の尤度を有するL個の経路(最善の経路メトリック(path metric)又はPM)が識別され、残りの経路は破棄される。レベル306において経路のソート及び除去の後に生き残った復号化経路が、
図3に太線で示される。同様に、レベル310において、可能な経路の数が再びLより大きいので、最高の尤度を有するL個の経路(最善のPM)が識別され、残りの経路は再び破棄される。図示の例では、リーフノード330a、330b、330c及び330dで終端する経路が最高の尤度の経路を表す。リーフノード340a、340b、340c、340dで終端する経路は、破棄されるより低い尤度の経路である。
【0028】
SCL復号化は、CRC補助リスト復号化と、純粋リスト(pure list)復号化とに更に分割できる。後者では、最高の尤度を有する生き残り経路が選択される。SC復号化は、純粋リスト復号化の特別な場合であり、リストサイズL=1である。CRC検査は、最終的な経路選択においてより良い誤り訂正性能を提供し得るが、SCL復号化において任意選択である。復号化中の最終的な経路選択においてCRCの代わりに及び/又はCRCと一緒に、入力ベクトルに含まれるパリティ又は「PC」ビットに基づくパリティ検査のような他の操作が使用されてもよい。
【0029】
SCL復号化は、限られた符号サイズについてのポーラー符号の性能を改善し得る。しかし、低密度パリティ検査(Low Density Parity Check, LDPC)符号及びTurbo符号の同様の符号長及び符号レートと比べて、SCL復号化は、うまく設計されたLDPC及びTurbo符号より悪いブロック誤り率(Block Error Rate, BLER)を有し得る。CRC補助SCL(CRC-aided SCL, CA-SCL)復号化は、限られた符号長を有するポーラー符号のBLER性能を改善し得る。例えば、リストサイズL=32を有するCA-SCLデコーダは、同様の計算上の複雑性を有するLDPC及びTurbo符号よりかなり良い性能を提供し得る。
【0030】
SCタイプのデコーダにより、ポーラー符号は、実際にチャネルをN個のサブチャネルに分割する。Nはマザー符号長と呼ばれ、2×2の行列であるポーラーカーネルに基づくArikanポーラー符号では常に2の累乗である。ポーラー符号のための符号構成への鍵は、ここではサブチャネルとも呼ばれるどのビットチャネルが情報ビットのために選択又は配分されるか、且つどのサブチャネルが凍結ビットのために配分されるかを決定することである。いくつかの実施例では、1つ以上のサブチャネルはまた、ここでは補助ビットと呼ばれる、PC、CRC及び/又は復号化を補助するために使用される他の種類のビットに配分される。分極理論に関して、凍結ビットのために配分されたサブチャネルは凍結サブチャネルと呼ばれ、情報ビットのために配分されたサブチャネルは情報サブチャネルと呼ばれ、更なる補助サブチャネルは、復号化を補助するために使用される補助ビットに配分されてもよい。いくつかの実施例では、補助ビットは、情報ビットの一形式であると考えられ、これらについて、より信頼性の高いサブチャネルが選択又は配分される。
【0031】
2×2のArikanカーネルG
2のクロネッカー積に基づくポーラーエンコーダについて前述した。
図4は、2×2のカーネルに基づくポーラーエンコーダの例を示すブロック図である。サブチャネル及び符号化ビットが
図4においてラベル付けされており、チャネルは、前述のようにポーラー符号によりN個のサブチャネルに分割される。情報ブロック及び凍結ビットは、N個のサブチャネルに配分され、結果のNサイズのベクトルは、N個の符号化ビットを含むコードワードを生成するために、ポーラーエンコーダによりN×Nのクロネッカー行列と乗算される。情報ブロックは、少なくとも情報ビットを含み、CRCビット又はパリティビットのような補助ビットも含んでもよい。サブチャネルセレクタは、情報ビット及びいすれかの補助ビットのために少なくともサブチャネルを選択するために、ポーラーエンコーダに結合されてもよく、いずれかの残りのサブチャネルは凍結サブチャネルである。
【0032】
2×2のカーネル及びN×Nのクロネッカー行列に基づくポーラー符号について、Nは2の累乗である。この種類のカーネル及びこのようなカーネルに基づくポーラー符号は、ここでは例示的な例として議論される。素数カーネル(例えば、3×3又は5×5)のような他の形式の分極カーネル、又はより高次のカーネルを生成するための(素数又は非素数)カーネルの組み合わせは、符号サブチャネルの間で分極を生じ得る。パンクチャリング、短縮、ゼロパディング及び/又は反復のような符号化ビット処理が、例えば、レートマッチング又は他の目的のために、2×2のカーネル又は他の種類のカーネルに基づくポーラー符号と共に使用されてもよい点にも留意すべきである。
【0033】
SC、SCL又はCA-SCL復号化の結果として、分極現象がサブチャネル上に現れる。いくつかのサブチャネルは高い容量を有し、いくつかのサブチャネルは低い容量を有する。言い換えると、いくつかのサブチャネルは同等に高い信号対雑音比(Signal-to-Noise Ratio, SNR)を有し、他のものは低いSNRを有する。これらのメトリックは、サブチャネルの「信頼性」を定量化又は分類するために使用され得る特性の例である。サブチャネル信頼性を示す他のメトリックも使用されてもよい。
【0034】
符号構成は、符号レート(情報ビットの数K、又は何個のサブチャネルが情報ビットを搬送すべきであるか)を決定し、情報ビットを搬送するためにN個の利用可能なサブチャネルの中の特定のK個のサブチャネルを選択することを伴う。ここでの参照を容易にするため、情報ビットは、符号化されるべき入力ビットと、場合によってはCRCビット、パリティビット及び/又は復号化を補助するために使用される他の補助ビットとを含んでもよい。サブチャネル選択は、サブチャネルの信頼性に基づき、典型的には、最高の信頼性のサブチャネルが、情報ビットを搬送するための情報サブチャネルとして選択される。
【0035】
サブチャネル信頼性は、例えば、1つ以上の順序付けされた系列において指定されてもよい。サブチャネルの単一のネスト型のSNR独立の順序付けされた系列が符号長N
maxについて計算されてもよく、より短い符号長Nについての順序付けされた系列は、より長いN
max系列から選択される。異なるマザー符号長N
iに関する複数の順序付けされた系列が代わりに計算されてもよく、マザー符号長系列の1つは、好ましい符号長に基づいて特定の符号のために選択されてもよい。他の可能な選択肢は、SNR値に関する複数の順序付けされた系列を計算し、例えば、測定されたSNRに基づいて順序付けされた系列を選択することを伴う。
【0036】
サブチャネル信頼性を計算するためのいくつかの方法も存在する。例えば、R. Pedarsani, 「Polar Codes: Construction and Performance Analysis」, June 2011, EPFL master projectにおいて提案されているジニーエイデッド(genie-aided)方法によれば、エンコーダは、異なるサブチャネル上でデコーダに既知のトレーニング系列を符号化する。デコーダは、復号化結果をエンコーダにフィードバックし、それにより、エンコーダは、各サブチャネルについての信頼性統計を計算でき、サブチャネル上のうまく適合した信頼性ベクトルが取得される。
【0037】
「Evaluation and Optimization of Gaussian Approximation for Polar Codes」, May 2016という名称の非特許文献の刊行物において提案されているガウス近似(Gaussian approximation, GA)方法は、各符号化ビットが等しい誤り確率にさらされることを仮定する。誤り確率から、サブチャネル上の信頼性が密度発展(density evolution, DE)アルゴリズムで取得される。符号化ビット上のこの誤り確率は、受信SNRに関係するので、この方法はSNRに関係し、計算上複雑である。
【0038】
カーネル及びその生成行列から順序付けされた系列を生成するためのいくつかの方法が存在する。全ての方法が必ずしもネスト型の系列をもたらし得るとは限らず、このネスト型の系列は必ずしも一意になり得るとは限らない。ネスト型の順序付けされた系列は、例えば、2016年7月29日に出願された中国特許出願第CN201610619696.5号に開示された分極重みに基づいて、或いは2016年12月23日に出願された米国特許出願第62/438565号に開示されたハミング重みに基づいて生成されてもよく、これらの双方を参照により完全に援用する。他の技術も使用されてもよく、或いは代わりに使用されてもよい。
【0039】
どのようにハミング重みが補助サブチャネルを選択するための第2のメトリックとして使用できるかの例は、2016年12月12日に出願された米国仮出願第62/433127号に、より詳細に議論されており、これを参照により援用する。ハミング重みは、第2のメトリックとして使用されてもよいメトリックの単なる例である点に留意すべきである。他の例は、ハミング重みの関数を含む(例えば、2016年12月9日に出願され、参照により援用する米国仮出願第62/432448に開示された行重み
)。一般的に、(分極)信頼性を示す他のメトリックも、第2のメトリックとして使用できる。更なる代案では、第2のメトリックは第1のメトリックと異なるが、分極信頼性にも関係するか、或いは分極信頼性を示す。しかし、更に他の代案では、サブチャネルの自然の順序が第2のメトリックとして使用でき、それにより、例えば、(例えば、自然数の昇順における)情報サブチャネルの終わりのサブチャネルが補助サブチャネルとして選択される。
【0040】
いくつかの実施例では、2つより多くのメトリックが補助サブチャネルを選択するために使用されてもよい。さらに、前述のメトリックを使用する様々な補助サブチャネル選択アルゴリズムのいずれかが使用されてもよい。補助サブチャネルを選択するための他の可能性も存在する。
【0041】
前述のように、受信機において誤り訂正又は検出を容易にして復号化を補助するために、CRC又はパリティビットのような補助ビットが、入力ビットストリームに含まれてもよい。ポーラー符号化中に補助ビットを挿入するときに生じる1つの問題は、どのように補助ビットを送信するサブチャネルを選択するかである。特に、ポーラーエンコーダは、一般的には、凍結ビットを、より信頼性の低いサブチャネルにマッピングするか、或いはさもなければより信頼性の低いサブチャネル上で送信する一方で、情報ビットを、最も信頼性の高いサブチャネルにマッピングするか、或いはさもなければ最も信頼性の高いチャネル上で送信する。加えて補助ビットが符号化ビットストリームに取り入れられるとき、問題は、最も信頼性の高いチャネルが、パリティビットに使用されるべきであるか情報ビットに使用されるべきであるかになる。
【0042】
ポーラー符号化中にパリティビットを扱うための1つの選択肢は、(例えば、順序付けされた系列に基づいて)最も信頼性の高いサブチャネルに情報ビットをマッピングし、その後、最も信頼性の高いサブチャネルに情報ビットをマッピングした後に利用可能な次に最も信頼性の高いサブチャネルにパリティビットをマッピングすることである。このように、情報ビットは、パリティビットより信頼性の高いチャネル上で送信される。他の選択肢は、最も信頼性の高いサブチャネルにパリティビットをマッピングし、その後、最も信頼性の高いサブチャネルにパリティビットをマッピングした後に利用可能な次に最も信頼性の高いサブチャネルに情報ビットをマッピングすることである。このように、パリティビットは、情報ビットより信頼性の高いチャネル上で送信される。
【0043】
シミュレーションは、パリティビット及び情報ビットが最も信頼性の高いチャネル上に散在するハイブリッド手法により、より高いレベルの符号化性能が実際に達成できることを示している。情報ビットのためのサブチャネルの選択は、(例えば、順序付けされた系列により示されるように)サブチャネル分極信頼性に基づいてもよいが、パリティビットのためのサブチャネルの選択は、例えば、これらのパリティサブチャネルの位置が情報サブチャネルの中でよりランダムに或いはより効率的に分散されることを可能にするために、分極信頼性メトリックより多くに基づいてもよい。
【0044】
いくつかの実施例では、2つの異なるメトリックがパリティ又はPCサブチャネル選択のために使用される。例えば、第1のメトリックは分極信頼性メトリック(例えば、順序付けされた系列)とすることができ、第2のメトリックはサブチャネルのハミング重み(又は行重みのようなハミング重みの関数)のような重みとすることができる。一実施例では、所望の数のパリティビットを搬送するために必要な全てのサブチャネルは、1つより多くのメトリック、例えば、分極信頼性メトリック及びハミング/行重みに基づいて選択され、一方で、他の実施例では、パリティビットのためのサブチャネルのサブセットは、1つより多くのメトリック、例えば、分極信頼性メトリック及びハミング/行重みに基づいて選択され、残りのサブセットは、単一のメトリック、例えば、分極信頼性メトリックに基づいて選択される。
【0045】
ハミング重みは、一部ではリードマラー(Reed-Muller, RM)符号により使用されるため、且つ一部ではその簡潔さのため、好ましくなり得る。RM符号は、分極信頼性ではなくハミング重みに基づき、最大尤度(Maximum-Likelihood, ML)復号化アルゴリズムを使用する(ハミング重みに基づくRM符号は、符号長が小さい場合、ML性能境界に近づく)が、SC又はSCL復号化で復号化できるという点で、ポーラー符号の特別の例として考えられることができる。
【0046】
サブチャネルのハミング重みは、ここでは、生成行列の行のハミング重みであると規定される。ポーラー符号では、サブチャネルのハミング重みは、その生成行列内のこのサブチャネルの行重みに関係する(行重み=2^(ハミング重み))。いくつかの実施例では、行重みは、サブチャネルの情報が分布する符号化ビットの数を示す。一般的に言えば、サブチャネルに入力される情報ビットが分布する符号化ビットが多いほど、そのサブチャネルがよりロバストになり、従ってより高い信頼性になる。
【0047】
どのようにハミング重み又は行重みのようなハミング重みの関数が、パリティビットのためにサブチャネルを選択するための第2のメトリックとして使用できるかの例は、「Method for constructing a Parity Check (PC) Based Polar Code Using a Look-up-Table」という名称で2016年12月12日に出願された米国仮特許出願62/433,127に記載のようにより詳細に議論されており、この内容が再現されているかのように、参照により援用する。これらは第2のメトリックとして使用され得るメトリックの単なる例である点に留意すべきである。一般的には、(分極)信頼性を示す他のメトリックも第2のメトリックとして使用できる。更なる代案では、第2のメトリックは第1のメトリックと異なるが、また、分極信頼性に関係するか、或いは分極信頼性を示す。しかし、更に他の代案では、サブチャネルの自然の順序が第2のメトリックとして使用でき、それにより、例えば、情報サブチャネルの終わりのサブチャネルが補助サブチャネルとして選択される。いくつかの実施例では、2つより多くのメトリックが補助サブチャネルを選択するために使用されてもよい。さらに、前述のメトリックを使用する様々な補助サブチャネル選択アルゴリズムのいずれかが使用されてもよい。補助サブチャネルを選択するための他の可能性も存在する。
【0048】
米国仮特許出願62/433,127に記載の実施例の技術は、サブチャネルに情報ビットをマッピングする前にパリティビットのための候補サブチャネルを確保及び/又は選択する。候補サブチャネルが確保された後に、情報ビットは、最も信頼性の高い残りのサブチャネルにマッピングされ、複数の凍結ビットは、最も信頼性の低い残りのサブチャネルにマッピングされる。その後、確保されたサブチャネルのためのパリティビット値は、情報ビットの関数に基づいて決定される。特に、パリティビットのために確保された候補サブチャネルは、必ずしも最も信頼性の高いサブチャネルであるとは限らないが、一般的には、情報ビットが送信されるサブチャネルのうち少なくとも1つと同じ信頼性があるか、或いはそれより信頼性の高い少なくともいくつかのサブチャネルを含む。このように、情報ビット及びパリティビットは、復号化確率を改善する方式で、最も信頼性の高いチャネル上に散在する。
【0049】
前述のように、いくつかのサブチャネルはポーラー符号化中にPCビットのために確保されるか或いは取り分けられてもよい。
図5A〜5Gは、4つの情報ビットの系列が16のマザー符号長に符号化されるときに、どのようにその符号化プロセスが生じ得るかの例を示す。
図5Aは、16のマザー符号長に対応するサブチャネルu
0、u
1、u
2、u
3、u
4、u
5、u
6、u
7、u
8、u
9、u
10、u
11、u
12、u
13、u
14、u
15を列挙した表を示す。表の第2の行は、サブチャネル毎のチャネル分極信頼性を列挙する。その後、サブチャネルは、チャネル信頼性に基づいてソートされてもよい。
図5Bは、サブチャネルu
0、u
1、u
2、u
4、u
8、u
3、u
5、u
6、u
9、u
10、u
12、u
7、u
11、u
13、u
14、u
15の順序付けされた系列(Q)を列挙した表を示す。その後、チャネル毎の行重みが、チャネルインデックスの関数として計算できる。一例では、行重みは、以下の式:rw=2
hwに基づいて計算され、rwは所与のサブチャネルのための行重みであり、hwはチャネルインデックスのバイナリ表現のハミング重みである。
図5Cは、サブチャネルの順序系列内の各サブチャネルのバイナリ表現、ハミング重み及び行重みを列挙した表を示す。
【0050】
次に、パラメータw
min、2*w
min、f
1及びf
2のセットを決定するために、サブチャネルのサブセットが識別され、これらは、PCビットのためのサブチャネルを確保するために使用される。情報及びパリティビットを搬送するためのサブチャネルのサブセットはK+F
pに等しく、Kは情報ブロック長(例えば、符号化すべき情報ビットの数)であり、F
pはチャネル上で送信すべきパリティビットの数に対応するパラメータである。実施例では、F
pは、以下の関数:F
p=log
2N×(α-|α×(K/M-1/2)|
2)に従って計算され、Nはマザー符号長であり、Mは(例えば、パンクチャリングの後に)送信されるべきコードワード内の(符号化)ビットの数であり、K/Mは達成される符号レートであり、αは情報ビットに対するパリティビットの比を変化させるために使用される重み係数である。しかし、F
pについて異なる関数が使用されてもよく、例えば、F
p=log
2((M-K)/32であり、これは比較的小さい数のパリティビットについてうまく動作するように思われる。代替として、例えば、異なる種類の補助ビット(パリティビット以外)及び/又は異なる種類の検査関数(PC関数以外)が使用される場合に、関数は異なってもよい。一般的に、PCビットの数F
pは、一般的にはK、N(及びM<Nであり短縮又はパンクチャリングが使用される場合にはM)のいずれかの関数でもよい。更に他の実施例では、F
pは、K、N(及び/又はM)と独立した固定値、例えば、3でもよい。更に他の実施例では、F
pは、(最小行重みw
minで)候補サブチャネルにマッピングされるべきパリティビットの総数(例えば、3つ)の所望のセット又はサブセット(例えば、1つ)を表してもよく、一方で、残りのパリティビット(例えば、2つ)は異なるメトリックに従って他のサブチャネル(例えば、K(又はK+F
p)個の最も信頼性の高いサブチャネル内で最も信頼性の低いサブチャネル)にマッピングされる。F
pについて他の可能性も存在する。
【0051】
PCビット及びF
pについて前述の関数を使用する実施例では、αパラメータは、1と2との間の値に設定される。他の実施例では、αパラメータは、1と1.5との間の値に設定される。より高いαの値は、一般的には、より高い最小符号距離を生じる。この例ではF
pは2に等しい。したがって、情報ビット及びパリティビットを搬送するためのサブチャネルのサブセットは、6個の最も信頼性の高いサブチャネル(すなわち、K+F
p=4+2=6)を含み、これらはサブチャネルu
12、u
7、u
11、u
13、u
14及びu
15である。次に、1つ以上の行重み値が決定される。認識できるように、K+Fpサブセット内の最小行重みw
minは4である。この例では、行重み値は、最小行重み(w
min)を含み、サブチャネルu
12、u
7、u
11、u
13、u
14及びu
15のサブセット内の最小行重みの2倍(2*w
min)が決定され、これはそれぞれ4及び8である。第1のインデックス(f1)及び第2のインデックス(f2)もまた決定される。第1のインデックス(f1)は、w
minに等しい行重みを有する何個のサブチャネルがPCビットのために確保されるべきかを決定し、第2のインデックス(f2)は、2*w
minに等しい行重みを有する何個のサブチャネルがPCビットのために確保されるべきかを決定する。この例では、f
1及びf
2はそれぞれ1及び1に等しい。
【0052】
その後、サブチャネルは、パラメータw
min、2*w
min、f
1及びf
2に基づいて、PCビットのために確保される。この例では、行重みw
min(すなわち、4に等しい)を有する最も信頼性の高いサブチャネルと、2*w
minに等しい(すなわち、8に等しい)行重みを有する最も信頼性の高いサブチャネルとが選択され、これはサブチャネルu
12及びu
14を含む。
図5Dは、PCビットのために確保されたサブチャネルを示す表を示す。その後、情報ビットは、残りの最も信頼性の高いチャネルにマッピングされる。
図5Eは、どのようにサブチャネルu
15、u
13、u
11及びu
7が4つの情報ビットにマッピングされるかを示す表を示す。この例では、N=4且つN=16である。他の例では、異なる数の情報ビットがサブチャネルにマッピングされてもよい。その後、残りのサブチャネルは凍結ビットにマッピングされる。
図5Fは、どのようにサブチャネルu
10、u
9、u
6、u
5、u
3、u
8、u
4、u
2、u
1及びu
0が凍結ビットにマッピングされるかを示す表を示す。
【0053】
いくつかの実施例では、エンコーダは、凍結ビットセットがマッピングされた後に、PCビットを搬送するために凍結ビットセット内のいくつかのサブチャネルを選択する。
図5Gは、どのように凍結サブチャネルがPCビットを搬送するために選択できるかを示す表を示す。図示のように、w
min又は2*w
minに等しい行重みを有する凍結セット内のサブチャネルが、PCビットを搬送するために選択される。この例では、サブチャネルu
10、u
9、u
6、u
5及びu
3は更なるPCビットにマッピングされる。いくつかの他の実施例では、全ての凍結サブチャネルが更なるPCビットとして選択されてもよい。
【0054】
w
min、2*w
min、f
1及びf
2に基づいてF
p個のPCビットのためにF
p個のサブチャネルを確保又は選択する代わりに、エンコーダは、これらのパラメータの異なるセット又はサブセットを使用してサブチャネルを確保してもよい。一実施例では、F
p個のサブチャネルは、w
min(のみ)に基づいて、N個のサブチャネル又はM<N個のサブチャネル(パンクチャリング又は短縮が使用される場合)の(K+F
p)個の最も信頼性の高いサブセット内で確保され、例えば、w
minの値に等しい行重みを有するF
p個のサブチャネル(更に以下に詳述する)が確保される。いくつかの実現方式では、w
minに等しい行重みを有する(K+F
p)サブセット内により多くのサブチャネルが存在する場合、最も信頼性の高いF
p個のサブチャネルが確保される。いくつかの実現方式では、最も信頼性の高いK+F
p個のサブチャネル内に2*w
minに等しい行重みを有するf
2個より多いサブチャネルが存在する場合に、同じ選択が当てはまる。他の実現方式では、w
min(又は2*w
min)に等しい行重みを有する(K+F
p)サブセット内の最も信頼性の低いF
p個のサブチャネルが確保される。更に他の実現方式では、PCビットの数が増加してもよく、それにより、w
minに等しい行重みを有するサブチャネルの全てがPCビットのために確保される。更に他の実現方式では、F
pは、w
min及び/又は2*w
minに基づいて確保されるべきPCビットについてのサブチャネルの総数(例えば、3つ)のセット又はサブセット(例えば、1つ)を表し、PCビットについてのサブチャネルの総数の残りのサブセット(例えば、2つ)は、他のメトリック、例えば、K(又はK+F
p)個の最も信頼性の高いサブチャネル内の最も信頼性の低いサブチャネルに基づいて確保される。他の実現方式も可能である。
【0055】
いくつかの実施例では、(K+F
p)サブセット内のF
p個のサブチャネルを確保することに加えて、エンコーダは、更なるPCビットを搬送するために凍結ビットセット(N-K-F
p)内でいくつかのサブチャネルを選択してもよい。他の実施例では、凍結ビットセット内のサブチャネルの全てが、w
minに等しい行重みを有する(K+F
p)サブセット内のF
p個のサブチャネルに加えて、PCビットを搬送するために選択される。
【0056】
いくつかの実施例では、PCビットがサブチャネルに関連する行重みに基づいてマッピングされるとき、行重みの計算は、待ち時間を符号化プロセスに取り入れてもよい。この開示の他の実施例は、サブチャネルをこれらのハミング重みに基づいて確保することにより、その待ち時間を軽減し、それにより、行重みを計算する更なるステップを回避する。
図6A〜
図6Gは、どのようにハミング重みがポーラー符号化プロセス中にPCビットのためのサブチャネルを確保するために使用できるかの例を示す。この例では、4つの情報ビットの系列は、16のマザー符号長に符号化される。
図6Aは、16のマザー符号長に対応するサブチャネルu
0、u
1、u
2、u
3、u
4、u
5、u
6、u
7、u
8、u
9、u
10、u
11、u
12、u
13、u
14、u
15を列挙した表を示す。表の第2の行は、サブチャネル毎のチャネル分極信頼性を列挙する。サブチャネルは、チャネル信頼性に基づいてソートされてもよい。
図6Bは、サブチャネルu
0、u
1、u
2、u
4、u
8、u
3、u
5、u
6、u
9、u
10、u
12、u
7、u
11、u
13、u
14、u
15の順序付けされた系列(Q)を列挙した表を示す。各チャネルインデックスのハミング重みが、サブチャネル毎に決定できる。
図6Cは、サブチャネルの順序系列内の各サブチャネルのハミング重みを列挙した表を示す。
【0057】
次に、最小ハミング重み(u
min)並びにf
1及びf
2パラメータを決定するために、サブチャネルのサブセットが識別され、これらは、PCビットのためにサブチャネルを確保するために使用される。情報及びパリティビットを搬送するためのサブチャネルのサブセットはK+F
pに等しく、Kは情報ブロック長であり、F
pは、以下の関数:F
p=log
2N×(α-|α×(K/M-1/2)|
2)に従って計算されたパラメータであり、Nはマザー符号長であり、Mは(例えば、パンクチャリングの後に)送信されるべきコードワード内の符号化ビットの数であり、K/Mは達成される符号レートであり、αは情報ビットに対するパリティビットの比を変化させるために使用される重み係数である。しかし、実現方式に依存して、F
pについて異なる関数が使用されてもよく、例えば、F
p=log
2((M-K)/32であり、これは比較的小さい数のPCビットについてうまく動作するように思われる。代替として、例えば、異なる種類の補助ビット(PCビット以外)及び/又は異なる種類の検査関数(PC関数以外)が使用される場合に、異なる関数が使用されてもよい。一般的に、PCビットの数F
pは、一般的にはK、NだけでなくM(M<Nであり短縮又はパンクチャリングが使用される場合)のいずれかの関数でもよい。更に他の実施例では、F
pは、K、N(及び/又はM)と独立した固定値、例えば、3でもよく、或いは最小行重みw
minで候補サブチャネルにマッピングされるべきパリティビットの総数(例えば、3つ)の所望のセット又はサブセット(例えば、1つ)を表してもよく、一方で、残りのパリティビット(例えば、2つ)は異なるメトリックに従って他のサブチャネル(例えば、K(又はK+F
p)個のサブチャネル内で最も信頼性の低いサブチャネル)にマッピングされる。
図6A〜6Gの例では、F
pは2に等しく、最も信頼性の高いサブチャネルのサブセットは、6個の最も信頼性の高いサブチャネル(すなわち、K+F
p=4+2=6)を含み、これらはサブチャネルu
12、u
7、u
11、u
13、u
14及びu
15である。次に、サブチャネルのサブセットについて最小ハミング重みが決定される。この例では、最小ハミング重みは、サブチャネルu
12のハミング重みに基づいて2である。第1のインデックス(f1)及び第2のインデックス(f2)もまた決定される。第1のインデックス(f1)は、u
minに等しいハミング重みを有する何個のサブチャネルがPCビットのために確保されるべきかを決定し、第2のインデックス(f2)は、1+u
minに等しいハミング重みを有する何個のサブチャネルがPCビットのために確保されるべきかを決定する。この例では、f
1及びf
2はそれぞれ1及び1に等しい。
【0058】
その後、サブチャネルは、パラメータu
min、1+u
min、f
1及びf
2に基づいて、PCビットのために確保される。この例では、u
minに等しい(すなわち、2に等しい)ハミング重みを有する最も信頼性の高いサブチャネルと、1+u
minに等しい(すなわち、3に等しい)ハミング重みを有する最も信頼性の高いサブチャネルとが選択され、これはサブチャネルu
12及びu
14を含む。
図6Dは、PCビットのために確保されたサブチャネルを示す表を示す。その後、情報ビットは、残りの最も信頼性の高いチャネルにマッピングされる。
図6Eは、どのようにサブチャネルu
15、u
13、u
11及びu
7が4つの情報ビットにマッピングされるかを示す表を示す。その後、残りのサブチャネルは凍結ビットにマッピングされる。
図6Fは、どのようにサブチャネルu
10、u
9、u
6、u
5、u
3、u
8、u
4、u
2、u
1及びu
0が凍結ビットにマッピングされるかを示す表を示す。
【0059】
いくつかの実施例では、エンコーダは、PCビットを搬送するために凍結ビットセットから更なるサブチャネルを選択する。
図6Gは、どのようにu
min又は1+u
minに等しいハミング重みを有する凍結セット内のサブチャネルがPCビットを搬送するために選択されるかを示す表を示す。この例では、サブチャネルu
10、u
9、u
6、u
5及びu
3は更なるPCビットを搬送するために確保される。いくつかの他の実施例では、全ての凍結サブチャネルが更なるPCビットとして選択されてもよい。
【0060】
u
min、f
1及びf
2に基づいてF
p個のPCビットのためにF
p個のサブチャネルを確保又は選択する代わりに、エンコーダは、これらのパラメータの異なるセット又はサブセットを使用してサブチャネルを確保してもよい。一実施例では、F
p個のサブチャネルは、u
min(のみ)に基づいて、N(又はパンクチャリング若しくは短縮が使用される場合にはM<N)個のサブチャネルの(K+F
p)個の最も信頼性の高いサブセット内で確保され、例えば、u
minの値に等しいハミングを有するF
p個のサブチャネル(更に以下に詳述する)が確保される。いくつかの実現方式では、u
minに等しいハミング重みを有する(K+F
p)サブセット内により多くのサブチャネルが存在する場合、最も信頼性の高いF
p個のサブチャネルが確保される。いくつかの実現方式では、最も信頼性の高いK+F
p個のサブチャネル内に2*w
minに等しい行重みを有するf
2個より多いサブチャネルが存在する場合に、同じ選択が当てはまる。他の実現方式では、(K+F
p)サブセット内の最も信頼性の低いF
p個のサブチャネルが確保される。更に他の実現方式では、PCビットの数が増加してもよく、それにより、u
minに等しいハミング重みを有するサブチャネルの全てがPCビットのために確保される。更に他の実現方式では、F
pは、w
min及び/又は2*w
minに基づいて確保されるべきPCビットについてのサブチャネルの総数(例えば、3つ)のサブセット(例えば、1つ)を表し、残りのサブセット(例えば、2つ)は、他のメトリック、例えば、K(又はK+F
p)個の最も信頼性の高いサブチャネル内の最も信頼性の低いサブチャネルに基づいて確保される。他の実現方式も可能である。
【0061】
いくつかの実施例では、(K+F
p)サブセット内のF
p個のサブチャネルを確保することに加えて、エンコーダは、更なるPCビットを搬送するために凍結ビットセット(N-K-F
p)内でいくつかのサブチャネルを選択してもよい。他の実施例では、凍結ビットセット内のサブチャネルの全てが、w
minに等しい行重みを有する(K+F
p)サブセット内のF
p個のサブチャネルに加えて、PCビットを搬送するために選択される。
【0062】
この開示の実施例は、重みパラメータに基づいてパリティビットのために1つ以上のサブチャネルを選択、確保又は配分する技術を提供する。
図7は、無線デバイスにより実行されてもよい、ポーラー符号を使用してデータを符号化するための方法700のフローチャートである。ステップ710において、無線デバイスは、信頼性メトリックに基づいて順序付けされてもよいサブチャネルのセグメントから、重みパラメータに基づいて少なくとも1つのパリティビットを搬送するための少なくとも1つのサブチャネル(例えば、候補サブチャネル)を(予め)選択する。重みパラメータは、最小行重み(例えば、w
min、d
min)パラメータでもよい。一例では、順序付けされたサブチャネルは、K個のサブチャネルのセグメントと、N
0-K個のサブチャネルのセグメントとを含み、無線デバイスは、K個のサブチャネルのセグメントから、最小重み(d
min)を有する少なくとも1つの候補サブチャネルを選択する。このような例では、K個のサブチャネルのそれぞれは、N
0-K個のサブチャネルの全てより高い信頼性メトリックを有する。この例では、Kは、符号化すべき情報ビットの数、又は他の補助ビット(例えば、CRCビット)を含んでもよく或いは含まなくてもよい情報ブロック長を示し、N
0はマザー符号長を示す。他の例では、セグメントK内の最小重みを有するサブチャネルの数nが所定の値Fより大きい場合、無線デバイスは、信頼性メトリックの降順に(例えば、高い信頼性から低い信頼性へ)最小重みを有するK個のサブチャネルのセグメントからF個のサブチャネルを選択する。他の例では、無線デバイスは、最小重み(d
min)に基づく第1の数のサブチャネル及び/又は最小重みの2倍(2*d
min)に基づく第2の数のサブチャネルを選択する。更に他の例では、無線デバイスは、例えば、ポーラー符号に関連する符号長と、符号化されるべきデータの情報ブロック長との関数に基づいて、少なくとも1つのサブチャネルを選択する。更に他の例では、無線デバイスは、少なくとも1つのパリティビットを搬送するためのサブチャネルとして、通常では凍結ビットに配分される全てのサブチャネルを選択する。
【0063】
更に他の例では、無線デバイスは、(N個の)サブチャネルの順序付けされた系列のうちK個の最も信頼性の高いサブチャネルのサブセット内で最低の行重みを有する少なくとも1つのサブチャネルを選択する。この例では、サブチャネルの行重みは、サブチャネルに対応する(Nサイズの)クロネッカー行列の行の中の1の数である。更に他の例では、K個の最も信頼性の高いサブチャネルの中で最低の行重みを有するサブチャネルの数nが所定の数F
pより大きい場合、無線デバイスは、K個の最も信頼性の高いサブチャネルのサブセット内のn個のサブチャネル(例えば、最低の行重みを有する)の中でF
p個のサブチャネルを選択してもよい。更に他の例では、最低の行重みを有する少なくとも1つのサブチャネルは、信頼性の降順に従ってK個の最も信頼性の高いサブチャネルのサブセットから選択される。言い換えると、選択される少なくとも1つのサブチャネルは、最低の行重みを有するKサブセット内の最も信頼性の高いサブチャネルである。
【0064】
ステップ720において、無線デバイスは、少なくとも1つのパリティビットのそれぞれの値を決定するために、パリティ検査関数を適用する。パリティ検査関数は、少なくとも1つのパリティビットのために選択されたサブチャネル上で実行されてもよい。パリティ検査関数は素数パリティ検査関数でもよい。ステップ730において、無線デバイスは、符号化データを取得するために、情報ビットと、選択されたサブチャネルに配置された少なくとも1つのパリティビットとをポーラー符号化する。一例では、少なくとも1つのパリティビットは、最小重みを有する第1の数のサブチャネル及び/又は最小重みの2倍を有する第2の数のサブチャネルに配置される。図示しないが、無線デバイスはまた、情報ビットのために選択されたサブチャネルの数がK(すなわち、符号化すべき情報ビットの総数)に到達するまで、サブチャネルの順序付けされた系列内で情報ビットのためにサブチャネルを選択し、少なくとも1つのパリティビットのために選択された少なくとも1つのサブチャネルをスキップしてもよい。ステップ740において、無線デバイスは符号化データを他の無線デバイスに送信する。
【0065】
図8は、無線デバイスにより実行されてもよい、ポーラー符号を使用してデータを符号化するための実施例の方法800のフローチャートである。ステップ810において、無線デバイスは、例えば、信頼性メトリックに基づいて順序付けされてもよい(N個の)サブチャネルのセット又は系列のサブセット内のサブチャネルのための行重みに基づいて、1つ以上のパリティビットのための1つ以上の(候補)サブチャネルを確保するか、或いはさもなければ配分する。行重みは、最小行重み値(w
min)及び/又は最小行重みパラメータの整数倍(例えば、2*w
min)を含んでもよい。サブチャネルのための行重みは、Nサイズのクロネッカー行列のサブチャネルに対応する行の中の1の数を表してもよい。順序付けされたサブチャネルからパリティビットのための候補サブチャネルを確保(すなわち、配分)するための様々な技術が存在する。例えば、サブチャネルのセットがこれらの信頼性に基づいてソートされた後に、無線デバイスは、最高の信頼性のサブチャネルから始めて、これらの行重みに基づいてセット内のサブチャネルの最も信頼性の高いサブセットから候補サブチャネルを確保してもよい。一例では、最小行重み値に等しい行重みを有する第1の(すなわち、最も信頼性の高い)f
1個のサブチャネル(f
1は0より大きい整数である)が、パリティビットのために確保される。このような例では、最小行重みは、サブチャネルの順序付けされた系列内の最も信頼性の高いK又はK+F
P個のサブチャネルに関連する最低の行重みでもよく、Kは情報ビットの系列に関連する情報ブロック長であり、F
pは符号化ビットストリームにより搬送されるパリティビットの数に対応するパラメータ又は関数である。このような実施例では、F
pは、以下の関数:F
p=log
2N×(α-|α×(K/M-1/2)|
2)に従って計算されてもよく、Mは送信ブロック長であり、Nはマザー符号長であり、αは情報ビットに対するパリティビットの比を変化させるために使用される重み係数である。F
pの他の値も可能である。他の例では、最小行重み値の2倍に等しい行重みを有する第1のf
2個のサブチャネルもまた、パリティビットのために確保されてもよい(f
2も0以上の整数である)。f
1パラメータは、以下の関数:f
1=(F
p+min(F
p,n))/2に従って計算されてもよく、nは、最小行重みに等しい行重みを有するサブチャネルの順序付けされた系列の最も信頼性の高いK+F
P個のサブチャネルの中のサブチャネルの数である。f
2パラメータは、以下の関数:f
2=(F
p-min(F
p,n))/2に従って計算されてもよい。f
1及びf
2パラメータについて他の値も可能になり得る。
【0066】
他の実施例では、F
pは、情報ブロックサイズ及び符号長と独立した固定値(例えば、3)でもよい。代替として、F
pは、サブチャネルの最も信頼性の高いサブセット(例えば、K又は(K+F
p))内の最小行重みw
minを有する候補サブチャネルにマッピングされるべき、使用されるべきパリティビットの総数(例えば、3つ)の所望のサブセット(例えば、1つ)でもよく、一方で、残りのパリティビット(例えば、2つ)は、異なるメトリックに従って他のサブチャネル(例えば、K(又はK+F
p)個の最も信頼性の高いサブチャネル内の最も信頼性の低いサブチャネル)にマッピングされる。
【0067】
ステップ820において、無線デバイスは、例えば、1つ以上のパリティビットのために確保された1つ以上の候補サブチャネルに情報ビットをマッピングせずに、残りのサブチャネルの信頼性に基づいて、サブチャネルのセット内の残りのサブチャネルのサブセットに情報ビットをマッピングする。ステップ830において、無線デバイスは、情報ビットの値の関数として少なくとも1つ以上のパリティビットの値を決定(例えば、計算)し、確保された候補サブチャネルに1つ以上のパリティビットをマッピングする(図示せず)。ステップ840において、無線デバイスは、符号化ビット又は符号化ビットストリームを取得するために、ポーラー符号を使用して、マッピングされた情報ビットと、1つ以上のパリティビットとを符号化する。ステップ850において、無線デバイスは、(物理)チャネル上で符号化ビットを送信する。
【0068】
この開示の実施例は、符号化の前にパリティ検査関数を実現するための無線デバイスのようなデバイスのための方法を提供する。第1のステップの間に、無線デバイスは、信頼性(Q)の順序付けされた系列を取得又は検査し、符号レート(R)及びマザー符号長(N)に基づいてパンクチャリングされたビットセット(P)を決定する。
【0069】
第2のステップの間に、デバイスは、順序付けされた系列から、凍結ビットセット、PC凍結ビットセット及び情報ビットセットを決定する。第2のステップは、いくつかのサブステップ2.1〜2.4(d)を含んでもよい。サブステップ2.1において、無線デバイスは、系列Q(左から右に信頼性の昇順により順序付けられる)を3つのサブセット、すなわち、(N-M)サブセット、(M-K)サブセット及び(K)サブセットに分割してもよい。この例が表2に示される。認識できるように、Kサブセットは、系列Q内の最も信頼性の高いビット位置(サブチャネル)を表す。サブステップ2.2の間に、無線デバイスは、(K)サブセット内の最小又は最低の行重みを決定し、これをd
minとして記してもよく、サブチャネルのための行重みは、サブチャネルに対応するそのクロネッカー行列の行の中の「1」の数を表す。前述のように、行重みはまた2の累乗でもあり、指数はサブチャネルインデックスのバイナリ表現の「1」の数である。その後、無線デバイスは、d
minに等しい行重みを有する(K)サブセット内のビット位置の数(n)を決定してもよい。サブステップ2.3の間に、無線デバイスは、d
minに従ってPC凍結ビットのためにKサブセット内のサブチャネルのセットを選択又はフラグ付けする。具体的には、無線デバイスは、ポーラー符号のマザー符号長と、情報ビットの系列内の情報ビットの数との関数に基づいて、パリティ検査(parity check, PC)凍結(PC凍結)ビットの数(F
P)を決定してもよい。一例では、F
pは、以下の式:F
p=ceil(Log
2(N*K)/2)に従って計算される。その後、無線デバイスは、PC凍結ビットのために複数のサブチャネルを選択及び/又はフラグ付けしてもよい。n<F
pである場合、無線デバイスは、信頼性の降順に従って行重みd
minを有する(F
p+n)/2個のサブチャネルをPC凍結ビットとして選択及び/又はフラグ付けするとともに、信頼性の降順に従って行重み2×d
minを有する(F
p-n)/2個のサブチャネルを選択及び/又はフラグ付けしてもよい。n≧F
pである場合、無線デバイスは、信頼性の降順に従って行重みd
minを有するF
p個のサブチャネルをPC凍結ビットとして選択及び/又はフラグ付けしてもよい。他の実施例では、F
pは情報ブロックサイズ及び符号長と独立した固定値、例えば、3でもよい。代替として、F
pは、最小行重み(d
min)又は最小行重みの2倍(2×d
min)を有するサブチャネルにマッピングされるべきパリティビットの総数(例えば、2つ)の所望のセット又はサブセット(例えば、1つ)を表してもよく、一方で、残りのパリティビット(例えば、2つ)は異なるメトリックに従って他のサブチャネル(例えば、Kサブセット又はK+F
pサブセット内で最も信頼性の低いサブチャネル)にマッピングされる。サブステップ2.4(a)〜2.4(d)において、無線デバイスは、情報、PC凍結及び凍結ビットのための位置を決定してもよい。特に、サブステップ2.4(a)において、無線デバイスは、情報ビット位置の数がKに到達するまで、フラグ付きのビット位置をスキップし、最も右から最も左へ(信頼性の降順に)1つずつ情報ビット位置を選択してもよい。サブステップ2.4(b)において、無線デバイスは、凍結ビットになるように残りのビット位置をフラグ付けしてもよい。サブステップ2.4(c)において、無線デバイスは、いくつかの凍結ビット位置、例えば、予め選択されたPC凍結ビットに等しい行重みを有するものを更なるPC凍結ビットとして選択してもよく、或いは全ての凍結ビット位置を更なるPC凍結ビットとして選択してもよい。ステップ2.4(d)において、無線デバイスは、例えば、Arikanカーネルでのポーラー符号化のためのビット系列を準備してもよい。無線デバイスは、K個の情報ビットを挿入し、PC凍結及び凍結ビットをマーキングしてもよい。
【0070】
ステップ3の間に、無線デバイスは、パリティ検査関数に基づいてPC凍結ビットのための値を設定してもよい。一例では、これは、素数値の長さを有するレジスタ上でサイクリックシフトを適用することにより達成される。
【表2】
【0071】
図9は、無線デバイスにより実行されてもよい、ポーラー符号を使用してデータを符号化するための実施例の方法900のフローチャートである。ステップ910において、無線デバイスは、サブチャネルの順序付けされた系列内の最も信頼性の高いK個のサブチャネルの中で、最低の行重み(d
min)を決定する。ステップ920において、無線デバイスは、最低の行重みに従って、パリティ検査(parity check, PC)凍結(PC凍結)ビットのために、最も信頼性の高いK個のサブチャネル内のサブチャネルのセットを選択又はフラグ付けする。選択又はフラグ付けされたサブチャネルのセットは、1つ以上のサブチャネルを含んでもよいことが認識されるべきである。任意選択で、所定の数のPC凍結ビット、例えば、F
pより少ない、最低の行重み(d
min)を有するサブチャネル、例えば、nが存在するとき、無線デバイスは、信頼性の降順に従って順序付けされた系列内の行重みd
minを有する(F
p+n)/2個のサブチャネルをPC凍結ビットとして選択又はフラグ付けするとともに、信頼性の降順に従って順序付けされた系列内の行重み2×d
minを有する(F
p-n)/2個のサブチャネルをフラグ付けする。任意選択で、最低の行重み(d
min)を有するサブチャネルの数nがF
pより大きい場合、無線デバイスは、信頼性の降順に従って順序付けされた系列内の行重みd
minを有するF
p個のサブチャネルをPC凍結ビットとして選択又はフラグ付けする。ステップ930において、無線デバイスは、PC凍結ビットのためにフラグ付けされたサブチャネルのセットをスキップする一方で、サブチャネルの順序付けされた系列内の最も信頼性の高い残りのサブチャネルに情報ビットの系列Kをマッピングする。ステップ940において、無線デバイスは、PC凍結ビットのためにフラグ付けされた少なくともサブチャネルのセット内でPCビットのための値を設定し、ステップ950において、PC凍結ビットを有するK個の情報ビットをポーラー符号化し、それにより、符号化ビット又は符号化ビットストリームを取得する。ステップ960において、無線デバイスは、符号化ビット/ビットストリームの少なくとも一部を送信する。
【0072】
図10は、通信システム1000を示す。送信元1010は情報データ(ベアラデータ、情報ブロック、ビット)を提供し、(チャネル)エンコーダ1020は情報データを符号化し、符号化情報データはチャネル1030上で送信され、その後、(チャネル)デコーダ1040において復号化され、それにより、情報データが最終的に宛先1050において受信される。送信元1010及び/又はチャネルエンコーダ1020は、ネットワークコンポーネント又はユーザ装置のような送信ポイント又は無線デバイスに埋め込まれてもよく、或いは含まれてもよい。ネットワークコンポーネントは、進化型ノードB(evolved NodeB, eNodeB)、WiFiアクセスポイント、スモールセル(ピコセル、フェムトセル)アクセスポイント、又はネットワークへのアクセスを提供する他のアクセスポイントのようなアクセスポイントでもよい。チャネルエンコーダ1020は、多くの異なる方法で実現されてもよい。例えば、チャネルエンコーダ1020は、ハードウェアのみにおいて(データを符号化するように及び/又はデバイスのエンコーダ又は他のコンポーネントの操作を制御するように、及び/又はさもなければここに開示された機能及び/又は実施例の実行を制御するように構成された、プロセッサのような回路において)実現されてもよい。エンコーダのプロセッサに基づく実現方式では、ここに記載された符号化操作を実行するためのプロセッサ実行可能命令は、送信ポイント又はデバイスの内部又は外部の非一時的なメモリ又は記憶媒体に記憶される。非一時的な媒体は、例えば、1つ以上のソリッドステートメモリデバイス、及び/又は移動可能且つ場合によっては取り外し可能な記憶媒体を有するメモリデバイスをメモリ内に含んでもよい。エンコーダ1020は、別の(無線周波数(Radio-Frequency, RF))送信モジュールとインタフェース接続するように構成されてもよい。例えば、エンコーダ1020は、別の(RF)ユニットによる送信のために、ここに記載のようにデータを符号化するように、ハードウェア又は回路において(例えば、1つ以上のチップセット、マイクロプロセッサ、特定用途向け集積回路(application-specific integrated circuit, ASIC)、フィールドプログラマブルゲートアレイ(field-programmable gate array, FPGA)、専用論理回路又はこれらの組み合わせにおいて)実現されてもよい。
【0073】
(チャネル)デコーダ1040及び宛先1050は、ネットワークコンポーネント又はユーザ装置(user equipment, UE)のような受信ポイント又は他の無線デバイスに含まれてもよく、例えば、復号化操作を実行するための命令を実行するように構成されたチップセット又はプロセッサのようなハードウェア又は回路を含む、ネットワークコンポーネント又はデバイスにおいて多くの異なる方法で同様に実現されてもよい。デコーダ1040のプロセッサに基づく実現方式では、復号化操作を実行するためのプロセッサ実行可能命令は、受信ポイント又はデバイスの内部又は外部の非一時的なメモリ又は記憶媒体に記憶される。非一時的な媒体は、例えば、1つ以上のソリッドステートメモリデバイス、及び/又は移動可能且つ場合によっては取り外し可能な記憶媒体を有するメモリデバイスをメモリ内に含んでもよい。デコーダ1040は、別の(RF)受信モジュールとインタフェース接続するように構成されてもよい。例えば、デコーダ1040は、情報ビットを取得するために、ここに記載のように(例えば、受信モジュール又はユニットを介して)受信した信号を復号化するように、ハードウェア又は回路において(例えば、1つ以上のチップセット、マイクロプロセッサ、ASIC、FPGA、専用論理回路又はこれらの組み合わせにおいて)実現されてもよい。UEは、無線電話、スマートフォン、タブレット、パーソナルアシスタント又は他のモバイルデバイスでもよい。様々な実施例では、送信元1010及びチャネルエンコーダ1020はUEにおいて実現でき、チャネルデコーダ1040及び宛先1050はアクセスポイントにおいて実現されてもよく、或いは逆も同様である。チャネル1030は、エア(air)上のチャネル又はケーブル若しくはバスのような固定回線でもよい。チャネル1030は、無線インタフェースの物理レイヤでもよい。チャネル130は、他の送信媒体でもよい。通信システム1000は、無線データを送信するだけでなく、有線又は他のデータを送信するためにも使用されてもよい。
【0074】
いくつかの実施例では、デコーダ1040は、チャネル1030上で受信した符号化データに基づいて信号を復号化するように構成されてもよい。一実施例では、デコーダ1040は、ポーラー符号で符号化された情報ビット及び1つ以上のパリティビットを有する、エンコーダ1020で生成された符号化データに基づいて、他のデバイス、例えば、エンコーダ1020から信号を受信するように構成される。前述のように、エンコーダ1040は、適切なインタフェースを介して別の受信ユニットで直接(例えば、内部受信ユニットで)又は間接に信号を受信するように構成されてもよい。この実施例では、パリティビットは、重みパラメータに基づいて選択されたサブチャネルに配置され、デコーダ1040は、情報ビットを取得するために、ポーラー符号及びパリティビットを使用して信号を復号化する。
【0075】
一例では、重みパラメータは最小重みを含む。このような例では、パリティビットは、最小重み(例えば、d
min)又は最小重みの2倍(2×d
min)を有する複数のサブチャネルに配置されてもよい。選択されたサブチャネルが最小重みをそれぞれ有する例では、サブチャネルは、信頼性メトリックに基づいて順序付けされたN0個のサブチャネルからのK個の最も信頼性の高いサブチャネルのセグメントから選択される。この例では、K個のサブチャネルのそれぞれは、順序付けされたサブチャネルのK0-Kセグメントのサブチャネルの信頼性メトリックより高い信頼性メトリックを有し、Kは情報ブロック長であり、N0はマザー符号長である。パリティビットのそれぞれの値を決定するために、素数関数でもよいパリティ検査関数が使用されてもよい。重みパラメータは、d
minのような最低の行重みを含んでもよく、選択されたサブチャネルは、Kサブセット内の最低の行重みを有してもよく、サブチャネルの行重みは、クロネッカー行列の行の中の1の数であり、行はサブチャネルに対応する。最低の行重みを有するサブチャネルは、信頼性の降順に従ってKサブセットから選択されてもよい。情報ビットのためのサブチャネルは、情報ビットのために選択されたサブチャネルの数がKに到達するまで、パリティビットのために選択されたサブチャネルをスキップすることにより、サブチャネルの順序付けされた系列内で選択されてもよい。
【0076】
他の実施例では、デコーダ1040は、ポーラー符号で符号化された情報ビット及び1つ以上のパリティビットを有する、他のデバイス(例えば、エンコーダ1020)において生成されたビット又はビットストリームに基づいて、信号を受信するように構成される。この実施例では、パリティビットは、サブチャネルのセットのサブセット内のサブチャネルのための行重みに基づいて配分されたサブチャネルにマッピングされ、情報ビットは、残りのサブチャネルの信頼性に基づいてサブチャネルのセット内の残りのサブチャネルにマッピングされる。デコーダ1040はまた、情報ビットを取得するために、ポーラー符号及びパリティビットを使用して信号を復号化するように構成される。
【0077】
一例では、サブチャネルのための行重みは、サブチャネルに対応するクロネッカー行列の行の中の1の数を表す。行重みは最小行重みを含んでもよい。サブチャネルのサブセット内で最小行重み又は最小行重みの2倍に等しい行重みを有する複数のサブチャネルがパリティビットのために配分される。配分されるサブチャネルの数は1でもよく、セット内のサブチャネルは、サブチャネルの順序付けされた系列を形成するように、これらの信頼性に基づいて順序付けされてもよく、サブチャネルのサブセットは、順序付けされた系列内の最も信頼性の高いサブセットを含む。例えば、最も信頼性の高いサブセットは、情報ビットを搬送するためのK個のサブチャネル又はK+F
P個のサブチャネルを含んでもよく、Kは情報ビットに関連する情報ブロック長であり、F
pはパリティビットの数を示す。その例では、(例えば、K又はK+F
p個の)サブチャネルのサブセット内の最小行重みに等しい行重みを有する最も信頼性の高いサブチャネルは、パリティビットのために配分されてもよい。パリティビットは、パリティ検査(parity check, PC)ビットを含んでもよく、PCビットのための値は、情報ビットの値の関数でもよい。
【0078】
ポーラー符号は、情報ビットのための比較的信頼性の高いサブチャネルと、0又は他の既知の値でもよい凍結ビットのための比較的信頼性の低いサブチャネルとを使用する線形ブロック誤り訂正符号である。パリティ検査が信頼性の低くない凍結ビットのいくつかで操作され得る場合、最小符号化距離が増加し得る。パリティビットに使用される凍結ビットは、これらのビット値が送信されているデータ情報によって動的に変化するので、動的凍結ビットと呼ばれる。
【0079】
従来のアプリケーションでは、デコーダは、情報ブロック(情報ビット)を送信するための最善のサブチャネルを識別するために、逐次除去(successive cancellation, SC)法を使用する。性能を改善するために、CRC補助SCリスト復号化アルゴリズムは、複数のSC復号化経路を許容するために使用され、その後、CRCは、最後の段階において正しい経路を選択するために使用される。この方法は、CRCビットの検出容量を消費し、その後、これらはブラインド検出のような他の目的のために使用できない。非CRC補助リストデコーダは、好ましくは、CRCビット以外の送信元に基づいてパリティ検査を実行するいくつかの方法を有する。いくつかのポーラー符号では、パリティビットは、パリティ検査能力を提供するために、凍結ビット(動的凍結セット)の部分に入れられる。しかし、ポーラー符号操作の性能は、動的凍結セットの選択及びこれらの上でのパリティ検査方法に依存し、適切な凍結セット(ビット又はシンボル)を決定論的な方法で選択することは、これらの多すぎるものが存在するので、非常に困難である。
【0080】
実施例では、動的凍結ビットセットを選択することは、最小符号化距離の関数、又は分極重みのような最小信頼性重みの関数である。他の信頼性メトリックも使用できる。実施例は、良好な信頼性の高いブロック誤り率(block error rate, BLER)性能を示す、適切に選択された動的凍結ビットに基づくポーラー符号を提供する。ポーラー符号は、巡回冗長検査(cyclic redundant check, CRC)のないポーラー符号でもよい。様々な実施例では、全ての凍結ビットは動的凍結ビットとして選択され、素数により導出された検査関数がこれらの全ての上に適用される。
【0081】
図11は、ポーラー符号のために凍結ビットセットを選択するための実施例の方法1100のフローチャートである。符号化方法は、エンコーダとデコーダとの双方において実現されてもよい。符号化方法は、ステップ1110において、複数の候補凍結セット(又は多数の候補凍結ビットセット)を予め選択し、その後、ステップ1150において、複数の候補ビットセットから、選択された凍結ビットセットを選択することを含む。
【0082】
ステップ1110は、凍結ビットの予め選択されたサブチャネルを、これらのサブチャネルに適用される信頼性メトリックに従ってソートすることを含む。いくつかの実施例では、ステップ1110は、信頼性メトリック関数に従ってサブチャネルの全てをソートすることを含む。様々な実施例では、分極重みアルゴリズムのような決定論的関数が使用されてもよい。代替として、決定論的関数は分極距離関数でもよい。凍結ビットのサブチャネルは、昇順に、すなわち、低い分極重みから高い分極重みにソートされてもよい(或いはその逆も同様である)。その後、ソートされたチャネルは、2つのセグメントのような複数のセグメントに分割される。次のステップにおいて、上のセグメント内(或いは言い換えると、最も信頼性の高いサブチャネルを有するセグメント内)の最小重みd
minが選択又は決定される(以下の例を参照)。一例では、サブチャネルの重みは行重み、すなわち、サブチャネルに対応するポーラー符号生成行列又はクロネッカー行列の行の中の「1」の数、或いは同等に2の累乗でもよく、指数はサブチャネルインデックスのバイナリ表現の「1」の数である。その例では、最小重みd
minは最小行重みでもよい。最小重みd
minについて、最小重みd
minを有するチャネルの数はnでもよい。所定の値Fを規定する。実施例では、FはF=ceil(LOG2(N*K)/2)でもよい。他の実施例では、Fは異なる値を有してもよい。更に他の実施例では、Fは、d
min及び/又は2*d
minに基づいて予め選択されるべき動的凍結ビットのためのサブチャネルの総数(例えば、3つ)のセット又はサブセット(例えば、1つ)を表し、動的凍結ビットのためのサブチャネルの総数の残りのサブセット(例えば、2つ)は、他のメトリック、例えば、K個の最も信頼性の高いサブチャネル内の最も信頼性の低いサブチャネルに基づいて予め選択される。n<Fであるとき、重みd
minを有する(F-n)/2個のチャネルを予め選択し、重み2×d
minを有する(F+n)/2個のチャネルを予め選択する。n≧Fであるとき、重みd
minを有するF個のチャネルを予め選択する。予め選択されたチャネルを逆の順序に順序付けする。例えば、チャネルは降順に、すなわち、分極重み値が高いものから低いものへ或いは信頼性の降順に順序付けされる。言い換えると、Kの最も信頼性の高いセグメント内で重みd
min及び/又は2*d
minを有する最も信頼性の高いサブチャネルが予め選択される。したがって、ステップ1110は、多数の順序付けされた予め選択されたサブチャネル(候補ビットセット)を提供し、いくつかの実施例では、これらは動的凍結ビットのために使用できる。しかし、一般的には、動的凍結ビットのための予め選択されたサブチャネルの数は小さくてもよく、或いは大きくてもよいことが理解される。
【0083】
実際の例では、N
0はマザー符号長であり、Nはレートマッチング後の符号長であり、Kは情報ブロック長である。実施例では、N
0はN
0=2^ceil(log2(N))として規定できる。その後、凍結ビットサブチャネルは、2つのセグメントにソート及びセグメント化でき、或いは言い換えると、凍結ビットサブチャネルを含むビットサブチャネルの全ては、表3に示すように2つのセグメントにソート及びセグメント化できる。認識できるように、サブチャネルは昇順にソートされ、すなわち、K個のサブチャネルは最も信頼性が高く、(No-K)個のサブチャネルは最も信頼性が低い。
【表3】
【0084】
次のステップでは、ステップ1150において、凍結ビットのセット(又は言い換えると、凍結ビットのためのサブチャネル)は、多数の予め選択された候補ビットセットから、或いはこれらに基づいて選択される。凍結ビットの選択されたセットは、分極重みの昇順に従ってビット単位で選択されてもよい。凍結ビットの選択されたセット又は凍結ビットのためのサブチャネルは、ビットの数がN
0-Kであるときに完了してもよい。いくつかの実施例では、凍結ビットのために選択されたサブチャネルのセットは、予め選択されたサブチャネルの一部又は全部を含み、選択されたサブチャネルの一部又は全部は、動的凍結ビットのために使用されてもよい。他の実施例では、凍結ビットのために選択されたサブチャネルのセットは、予め選択されたサブチャネルとは別であり(すなわち、含まない)、サブチャネルの選択されたセットは、サブチャネルの数がN
0-K-Fであるときに完了してもよい。残りの(K個の)サブチャネルの全て(すなわち、凍結及び/又は動的凍結ビットのために使用されないもの)は、(K個の)情報ビットのためのサブチャネルである。いくつかの実施例では、選択された凍結サブチャネルのいくつか(例えば、予め選択された候補凍結ビットセット又は全ての凍結サブチャネル)は、動的凍結ビットのために使用されてもよい。
【0085】
凍結ビットの選択されたセットを選択することは、素数pを決定することを含む。様々な実施例では、一意の素数は5、7又は11でもよい。凍結ビットセットを最終的に選択するために、エンコーダ及びデコーダは、エンコーダ及びデコーダ内に実現されたpの長さのサイクリックシフトレジスタを操作してもよい。サイクリックシフトレジスタは、各ビットを符号化/復号化するときに、左にシフトしてもよい。
図12は、エンコーダ及びデコーダのうち少なくとも1つの長さ5(pの長さ)を有するこのようなサイクリックシフトレジスタを示す。レジスタ内でビットが情報ビットである場合、これは無視され(XOR)、ビットが凍結ビットである場合、このビットのビット値が使用及び選択される。様々な実施例では、ビットはレジスタ内で初期化されたときに、0に設定される。いくつかの実施例では、凍結ビットセットは、コードワードによって変化し得る。
【0086】
他の実施例では、第3のステップは、パリティ検査関数を構成し、動的凍結ビット並びに情報ビット及び(静的)凍結ビットのためのビット値を決定する。素数pが決定される。様々な実施例では、一意の素数は5、7又は11でもよい。パリティ検査関数を構成して動的凍結ビット値を決定するために、pの長さのサイクリックシフトレジスタがエンコーダ(及びデコーダ)において実現されてもよい。サイクリックシフトレジスタは、符号化中に入力ビットベクトルのためのビット値を決定したとき、或いはビット値を復号化したときに、左にシフトしてもよい。
図12は、エンコーダ及びデコーダのうち少なくとも1つにおける長さ5(pの長さ)を有するこのようなサイクリックシフトレジスタを示す。前述の2つのステップにより決定されるように、ビットが情報ビットである場合、レジスタ内の第1のビットは現在の情報ビット値とXORされ、その後、サイクリックシフトされる。ビットが(静的)凍結ビットである場合、ビット値は、エンコーダ及びデコーダの双方により既知の固定値(例えば、0)に設定され、その後、サイクリックシフトされ、ビットが動的凍結ビットである場合、レジスタ内の第1のビットの値は、現在の動的凍結ビットの値として割り振られる。様々な実施例では、レジスタ内で初期化されたときに、ビットは0に設定される。いくつかの実施例では、凍結ビットセットは、コードワードによって変化し得る。
【0087】
方法1100は複数の利点を提供し得る。エンコーダは、パリティ関数のオンライン計算を実行する必要がなくてもよい。エンコーダは、パリティ関数を記憶する必要がなくてもよい。デコーダは、パリティ関数を調べる必要がなくてもよく、したがって、低い複雑性で操作できる。
【0088】
図13A〜13Dは、実施例に従って選択された凍結ビットの選択されたセットについてのポーラー符号の性能を示す。
図13Aは、K=40個の情報ビット及びQPSK変調についての性能を示し、
図13Bは、K=60個の情報ビット及びQPSK変調についての性能を示し、
図13Cは、K=80個の情報ビット及びQPSK変調についての性能を示し、
図13Dは、K=120個の情報ビット及びQPSK変調についての性能を示す。グラフから認識できるように、発明のポーラー符号は、他の符号を表す他のグラフに比べてより良い性能及びより低い複雑性を提供する。
【0089】
図14A〜Bは、所与のブロック誤り率(block error rate, BLER)についての平均受信Es/N0点を示す。図示のグラフに示すように、(実施例に従って選択された)凍結ビットの選択されたセットを有するポーラー符号は、他のポーラー符号より優れた性能を提供する。
【0090】
図15は、無線デバイス、送信ポイント又は受信ポイント、例えば、ネットワークコンポーネント又はユーザ装置のようなデバイス1500のブロック図である。デバイス1500は、CPU1502と、大容量記憶コンポーネント1504と、ネットワークインタフェース1506と、エンコーダ/デコーダ1508と、メモリ1510と、ビデオアダプタ1512と、I/Oインタフェース1514とを含む。
【0091】
デバイス1500は、図示のコンポーネントの全て又はコンポーネントのサブセットのみを利用してもよく、統合のレベルは実現方式に依存して変化してもよい。さらに、デバイス1500は、複数のCPU1502等のようなコンポーネントの複数のインスタンスを含んでもよい。デバイス1500は、ネットワーク1520に接続するためのネットワークインタフェース1506、ディスプレイ1516に接続するためのビデオアダプタ1512、及びスピーカ、マイクロフォン、マウス、タッチスクリーン、キーパッド、キーボード、プリンタ等のような1つ以上の入出力デバイス1518に接続するためのI/Oインタフェース1514を使用してもよい。
【0092】
いくつかの実施例では、CPU1502は、汎用コンピュータハードウェアプラットフォームのコンポーネントでもよいいずれかのプロセッサでもよい。他の実施例では、CPU1502(プロセッサ)は、特殊目的ハードウェアプラットフォームのコンポーネントでもよい。例えば、CPU1502は埋め込み式プロセッサでもよく、命令はファームウェアとして提供されてもよい。いくつかの実施例は、ハードウェアのみを使用することにより実現されてもよい。いくつかの実施例では、プロセッサによる実行のための命令は、ソフトウェアプロダクトの形式で具現されてもよい。ソフトウェアプロダクトは、不揮発性又は非一時的なメモリ又は記憶媒体に記憶されてもよく、これは、例えば、コンパクトディスク読み取り専用メモリ(compact disc read-only memory, CD-ROM)、ユニバーサルシリアルバス(universal serial bus, USB)フラッシュディスク又は取り外し可能ハードディスクでもよい。
【0093】
エンコーダ/デコーダ1508は、符号化コンポーネント、復号化コンポーネント又はこれらの双方を含んでもよい。いくつかの実施例では、エンコーダ/デコーダ1508は、ここに開示されたようにデータを符号化するか、或いは選択、マッピング及び/又は符号化操作を実行するように構成されたプロセッサのような回路において実現される。エンコーダ/デコーダ1508のプロセッサに基づく実現方式では、符号化操作を実行するためのプロセッサ実行可能命令は、非一時的なプロセッサ読み取り可能な媒体に記憶される。非一時的な媒体は、例えば、1つ以上のソリッドステートメモリデバイス、及び/又は移動可能且つ場合によっては取り外し可能な記憶媒体を有するメモリデバイスをメモリ1510内に含んでもよい。
【0094】
バスは、メモリバス又はメモリコントローラ、ペリフェラルバス、ビデオバス等を含むいずれかの種類のいくつかのバスアーキテクチャのうち1つ以上でもよい。CPU1502は、いずれかの種類の電子データプロセッサを含んでもよい。メモリ1510は、スタティックランダムアクセスメモリ(static random access memory, SRAM)、ダイナミックランダムアクセスメモリ(dynamic random access memory, DRAM)、シンクロナスDMRAM(synchronous DRAM, SDRAM)、読み取り専用メモリ(read-only memory, ROM)、これらの組み合わせ等のようないずれかの種類のシステムメモリを含んでもよい。いくつかの実施例では、メモリ1510は、デバイスのエンコーダ/デコーダ1508又は他のコンポーネントの操作を実現及び/又は制御するために、及び/又はさもなければここに記載の機能及び/又は実施例の実行を制御するためにプロセッサにより実行される命令を含む非一時的なコンピュータ読み取り可能媒体である。実施例では、メモリ1510は、ブートアップ時に使用するためのROMと、プログラムを実行する間に使用するプログラム及びデータ記憶のためのDRMAとを含んでもよい。
【0095】
大容量記憶コンポーネント1504は、データ、プログラム及び他の情報を記憶し、データ、プログラム及び他の情報を、バスを介してアクセス可能にするように構成されたいずれかの種類の記憶デバイスを含んでもよい。大容量記憶コンポーネント1504は、例えば、ソリッドステートドライブ、ハードディスクドライブ、磁気ディスクドライブ、光ディスクドライブ等のうち1つ以上を含んでもよい。
【0096】
ビデオアダプタ1512及びI/Oインタフェース1514は、外部入出力デバイスを処理ユニットに結合するためのインタフェースを提供する。図示のように、入出力デバイスの例は、ビデオアダプタ1512に結合されたディスプレイ1516と、I/Oインタフェース1514に結合されたマウス/キーボード/プリンタとを含む。他のデバイスが処理ユニットに結合されてもよく、更なる或いはより少ないインタフェースカードが利用されてもよい。例えば、ユニバーサルシリアルバス(Universal Serial Bus, USB)(図示せず)のようなシリアルインタフェースは、プリンタのためのインタフェースを提供するために使用されてもよい。
【0097】
ネットワークインタフェース1506は、イーサーネットケーブル等のような有線リンク、及び/又はアクセスノード又は異なるネットワークへの無線リンクを含んでもよい。ネットワークインタフェース1506は、デバイス及び/又は処理ユニットが、例えば、符号化データ又はビットを送信及び/又は受信することを含む、ネットワーク1520を介して遠隔ユニットと通信することを可能にするように構成されてもよい。例えば、ネットワークインタフェース1506は、1つ以上の送信機/送信アンテナ及び1つ以上の受信機/受信アンテナを介して無線通信を提供してもよい。実施例では、処理ユニットは、他の処理ユニット、インターネット、遠隔記憶施設等のような遠隔デバイスとのデータ処理及び通信のために、ローカルエリアネットワーク又は広域ネットワークに結合される。
【0098】
図示しないが、ネットワークインタフェース1506は、変調器、増幅器、アンテナ及び/又は送信チェーンの他のモジュール又はコンポーネントを含んでもよく、更に或いは代替として、復調器、増幅器、アンテナ及び/又は受信チェーンの他のモジュール又はコンポーネントを含んでもよい。代案では、ネットワークインタフェース1506は、別の(RF)送信及び/又は受信モジュールとインタフェース接続するように構成されてもよい。例えば、エンコーダ/デコーダ1508は、別の(RF)送信ユニットによるネットワークインタフェース1506を介した送信のためのデータを符号化(及び/又は復号化)するか、或いはここに記載のように情報ビットを取得するために別の(RF)受信ユニットにより且つネットワークインタフェース1506を介して受信される信号を復号化するように、ハードウェア又は回路において(例えば、1つ以上のチップセット、マイクロプロセッサ、ASIC、FPGA、専用論理回路又はこれらの組み合わせにおいて)実現されてもよい。
【0099】
前述のように、パリティビットがサブチャネルに関連する行重みに基づいてマッピングされるとき、どのサブチャネルがパリティビットのために確保されるべきかを識別するために、サブチャネルの行重みに対して行重み値(例えば、w
min、2*w
min)を比較することが必要になり得る。この開示の実施例は、複数のサブチャネルの行重みに対して行重み値(例えば、w
min、2*w
min)を並列に比較する。これは、比較操作に関連する待ち時間を低減し、それにより、符号化プロセスがより迅速且つ効率的に実行されることを可能にする。
図16は、PCビットのために確保されるべきサブチャネルを識別するための並列比較操作を使用するための技術の図である。この例では、情報ビット1620、PCビット1630及び凍結ビット1640はサブチャネル1611〜1619にマッピングされ、これらはサブチャネル信頼性の昇順にソートされる。サブチャネル1611〜1619のいずれかに情報ビット1620にマッピングする前に、少なくとも2つのサブチャネル1618、1619の行重みは、1つ以上の行重み値(例えば、w
min、2*w
min)と並列に比較され、1つ以上の行重み値に一致する行重みを有する最も信頼性の高いサブチャネルがPCビット1630のために確保される。いくつかの実施例では、第1の行重み値(例えば、w
min)に一致する行重みを有する特定の数(f
1)のサブチャネルがPCビットのために確保され、第2の行重み値(例えば、2*w
min)に一致する行重みを有する特定の数(f
2)のサブチャネルがPCビットのために確保される。行重み値、及びそれぞれの行重み値のために確保された特定の数のサブチャネルを規定するインデックスのうち1つ以上は、符号レート及び/又はブロック長パラメータに基づいて決定されてもよい。
【0100】
図17は、情報ビットの系列を符号化するための実施例の方法1700を示す。ステップ1710において、エンコーダは、PCビットのためにサブチャネルを確保するための少なくとも行重み値を決定する。少なくとも1つの行重み値は、チャネルの符号レート及び符号化されるべき情報ビットの系列に関連するブロック長に基づいて決定されてもよい。ステップ1720において、エンコーダは、PCビットのためにサブチャネルのうち1つ以上を確保することを決定するために、2つ以上のサブチャネルの行重みと少なくとも1つの行重み値を並列に比較する。実施例では、エンコーダは、サブチャネルの順序付けされた系列に従って信頼性の降順にサブチャネルを評価してもよく、それにより、より信頼性の高いサブチャネルがより信頼性の低いサブチャネルの前に評価される。代替として、情報又はPCビットにマッピングされるべきサブチャネルのサブセット内の全てのサブチャネル(例えば、K+Fp個のサブチャネル)が並列に評価される。
【0101】
ステップ1730において、エンコーダは、十分なサブチャネルがPCビットのために確保されているか否かを決定する。例として、エンコーダは、w
minに等しい行重みを有する少なくともf
1個のサブチャネルが確保されているか否か、及び/又は2*w
minに等しい行重みを有する少なくともf
2個のサブチャネルが確保されているか否かを決定してもよい。そうでない場合、当該方法1700は、ステップ1720に戻り、エンコーダは、次の2つ以上のサブチャネルを評価する。エンコーダが、十分なサブチャネルがPCビットのために確保されていると決定した場合、当該方法はステップ1740に進み、エンコーダは、最も信頼性の高い残りのサブチャネルに情報ビットをマッピングする。ステップ1750において、エンコーダは、最も信頼性の低い残りのサブチャネルに凍結ビットをマッピングする。いくつかの実施例では、更なるPCビットが凍結ビットセットから選択されてもよい。1つの実現方式では、PCビットのためにサブチャネルを確保するために使用される少なくとも1つの行重みに等しい行重みを有する全ての凍結サブチャネルが選択されてもよく、他の実現方式では、全ての凍結サブチャネルが選択されてもよい。ステップ1760において、エンコーダは、情報ビットのPC関数に基づいて確保されたサブチャネルのためのPCビット値を設定する。ステップ1740、1750及び1760は、如何なる順序で実行されてもよい。また、PCビットのためのサブチャネルの数は、多くの異なる方法で決定されてもよく、前述のように、PCビットのための確保されたサブチャネルの数は固定されてもよく、例えば、3でもよく、及び/又は確保されたサブチャネルの一部又は全部はd
minに基づいてもよい。
【0102】
図18は、エンコーダにより実行されてもよい、ポーラー符号化を実行するためにルックアップテーブルを使用するための方法1800のフローチャートを示す。ステップ1810において、エンコーダは、符号パラメータを決定するために、符号レート及び情報ブロック長に基づいてルックアップテーブルを検索する。ステップ1820において、エンコーダは、情報ビット、パリティビット及び凍結ビットにサブチャネルをマッピングする。ステップ1830において、エンコーダは、情報ビットのパリティ検査関数に基づいてパリティビット値を設定する。
【0103】
図19は、エンコーダにより実行されてもよい、最小ハミング重み値を決定するための方法1900のフローチャートを示す。ステップ1910において、エンコーダは、昇順(Q
0,Q
1,…Q
N)にサブチャネルをこれらの信頼性に基づいて列挙した順序付けされた系列(Q)を取得するために、サブチャネルをこれらのチャネル信頼性に基づいてソートする。ステップ1920において、エンコーダは、最も信頼性の高いサブチャネルのサブセットを識別する。ポーラー符号化ステップの後にパンクチャリングステップが実行される例では、最も信頼性の高いサブチャネルのサブセットは、パンクチャリングされたサブチャネルを除外してもよい。
【0104】
最も信頼性の高いサブチャネルのセット内のサブチャネルの数は、以下の式:min(length(U
M),K+F
p))に従って決定されてもよく、U
Mはパンクチャリングの後に残るサブチャネルのセットであり、Kは情報ブロックの長さであり、F
p=log
2N×(α-|α×(K/M-1/2)|
2)であり、Mはマザー符号長であり、αは1より大きい値、例えば、α=1.5に設定される。いくつかの他の実施例では、F
pは固定値、例えば、3でもよい。ステップ1930において、エンコーダは、最も信頼性の高いサブチャネルのサブセット内のサブチャネルの最小ハミング重み(u
min)を決定する。
【0105】
ステップ1940において、最も信頼性の高いサブチャネルのサブセット内で、エンコーダは、PCビットのために最小ハミング重み(u
min)に等しいハミング重みを有する第1の数のサブチャネルを確保し、PCビットのために1に最小ハミング重みを加えたもの(1+u
min)に等しいハミング重みを有する第2の数のサブチャネルを確保する。エンコーダは、例えば、順次的にサブチャネルの順序付けされた系列をスキャンすることによることを含む、複数の異なる方法でサブチャネルを確保できる。他の実現方式では、F
p個のサブチャネルのサブセットのみがu
min及び/又は1+u
minに基づいて確保され、F
p個のサブチャネルの残りのサブセットは、他のメトリック、例えば、K+F
p個の最も信頼性の高いサブチャネル内の最も信頼性の低いサブチャネルに基づいて確保される。サブチャネルが確保されるか、或いはPCビットのために配分されると、残りのサブチャネルは、情報及び凍結ビットに配分される。ステップ1950において、エンコーダは、最も信頼性の高い残りのサブチャネルに情報ビットをマッピングし、最も信頼性の低い残りのサブチャネルに凍結ビットをマッピングする。いくつかの実施例では、更なるPCビットは、凍結ビットセットから選択されてもよい。1つの実現方式では、PCビットのための確保されたサブチャネルのものに等しいハミング重みを有する一部又は全部の凍結サブチャネルが選択されてもよい。他の実施例では、全ての凍結サブチャネルは、PCビットとして選択されてもよい。ステップ1960において、エンコーダは、情報ビットのパリティ検査関数に基づいてパリティビット値を設定する。実現方式に依存して、サブチャネルが配分される順序は変化してもよい。同様に、PCビット、情報ビット又は凍結ビットが配分されたサブチャネルにマッピングされる順序も変化してもよいことが理解される。
【0106】
いくつかの実施例では、Arikanエンコーダは、ポーラー符号化を達成するために使用されてもよい。
図20は、実施例のエンコーダ2000の図である。エンコーダは、符号構成器2010と、Arikanエンコーダ2020と、パンクチャリング器2030とを含む。符号構成器2010は、サブチャネルタイプのセットを決定してもよい。各サブチャネルは情報ビット、PCビット又は凍結ビットにマッピングされる(或いは逆も同様である)。分極理論に従って、各サブチャネル上の信頼性(又は相互チャネル容量)は互いに異なる。高い信頼性を有するサブチャネルは、情報ビットを送信するために選択される。これらのサブチャネルの位置のセットは、情報セット(I)と名付けられる。レートマッチングにより引き起こされた信頼性の低いサブチャネルを含む、低い信頼性を有するサブチャネルは0に設定され、これらの位置のセットは凍結セット(F)として記される。いくつかのサブチャネルはPCビットを送信するために選択され、これらの位置のセットはPC凍結セット(PF)として記される。1つのポーラーブロックのサブチャネルの総数(N)は、2の累乗の値でもよく、マザー符号ブロック長(N=I+F+PF)と呼ばれてもよい。符号構成器2010はまた、情報ビット値及びサブチャネルタイプに基づいてサブチャネル値のセットを決定してもよい。特に、情報ビットにマッピングされるサブチャネルは、情報ビットの値に基づいて設定されてもよく、PCビットにマッピングされるサブチャネルは、パリティ検査関数に基づいて設定されてもよく、凍結ビットのためのサブチャネルは、0に設定される。Arikanエンコーダ2020は、Nビットのコードワードを取得するために、Nサイズのサブチャネルブロックをクロネッカー行列で乗算してもよい。Arikanエンコーダ2020は、以下の式:
【数7】
に従ってその乗算を実行してもよく、最も右の行列は、Arikanポーラー符号のためのN×Nの生成行列である。パンクチャリング器2030は、パンクチャビットセット(P)によりNビットのコードワードをMサイズの符号長にパンクチャリング/短縮してもよい。符号レート(R)と符号長(M)との組み合わせが与えられると、エンコーダとデコーダとの双方は、同じ決定論的なプロトコルを使用して、この凍結セット(F)、PC凍結セット(PF)及び短縮/パンクチャビットセット(P)を計算し得る。
【0107】
マザー符号長Nを有するポーラー符号は、長さN/2の2つのポーラー符号のネスト型の組み合わせとしてモデル化できる。したがって、長さN/2のポーラー符号のための順序付けされた系列が長さNのポーラー符号のための順序付けされた系列のサブセットであるように、ビット位置の順序付けされた系列(インデックス系列)を構成することが可能である。その場合、N
maxが2の累乗である場合の最大符号長N
maxのポーラー符号のためのこのような系列Q
0Nmax-1は、ネスト型の方法でN
maxより小さい符号レートと(2の累乗の)符号長とのいずれかの組み合わせをカバーする。その後、レートマッチングは、低い複雑性で且つ比較的細かい粒度で実行できる。代替として、異なる長さの順序付けされた系列の生成は、オフラインで(例えば、符号化操作の前に)生成されてもよく、各順序付けされた系列に対応するパラメータは、ルックアップテーブルに記憶できる。
【0108】
信号対雑音比(Signal to noise ratio, SNR)と独立した信頼性の推定は、各サブチャネルの信頼性を計算し、最大符号長N
maxのポーラー符号のための順序付けされたインデックス系列Q
0Nmax-1を記憶することにより実行されてもよい。サブチャネルの信頼性の順序は、重み系列W
0Nmax-1を通じて推定されてもよく、これは以下のように計算されてもよい。B
j∈{0,1},j=[0,1,…,n-1]で
【数8】
を仮定すると、
【数9】
であり、n=log2(N)である。
【0109】
一例では、N
max=16のマザー符号長であり、n=log
2(16)=4であり、i=3
【数10】
について、W
3はW
3=1*2
(0*(1/4))+1*2
(1*(1/4))+0*2
(2*(1/4))+0*2
(3*(1/4))=2.1892として計算できる。全重みベクトルは、W
015=[0 1 1.1892 2.1892 1.4142 2.4142 2.6034 3.6034 1.6818 2.6818 2.8710 3.8710 3.0960 4.0960 4.2852 5.2852]であり、より大きい値はより高い信頼性を示す。W
0Nmax-1が取得されると、サブチャネルは、
【数11】
のように、分極重みによりソートできる。ソートされるべき結果の系列は、Q
015=[0 1 2 4 8 3 5 6 9 10 12 7 11 13 14 15]である。Q
0Nmax-1は、進行中に計算されてもよく、或いはエンコーディング及びデコーディングのレートマッチング操作毎にそれを計算する必要がないようにメモリから直接ロードされてもよい点に留意すべきである。
【0110】
パンクチャリングパターンは、降順のバイナリインデックス[N-1,N-2,…,1,0]をビット反転し、最も高いビット反転された値を有するN-M個のインデックスをパンクチャリングされた位置としてマーキングすることにより、決定論的な方法で計算されてもよい。一例として、N
max=16のマザー符号長を考慮する。エンコーダとデコーダとの双方は、系列Q
015=[0 1 2 4 8 3 5 6 9 10 12 7 11 13 14 15]を記憶する。符号長Mを取得し、[12(1100),13(1101),14(1110),15(1111)](=[M,…N-3,N-2,N-1])の系列をP=[3(0011),11(1011),7(0111),15(1111)=[BitRev(M),…,BitRev(N-3),BitRev(N-2),BitRev(N-1)])としてビット反転することにより、4の長さのパンクチャリングパターンPを計算するために、パンクチャリングされるべき4つのビット(4=N-M)が存在する。
【0111】
PC凍結セット(PF)は、サブチャネルインデックス及び短縮/パンクチャリングパターン(P)に関して分極信頼性、クロネッカーカーネルの行重み及びハミング重みに依存して決定されてもよい。最も信頼性の高いサブチャネルのサブセット内の最小行重み(w
min)及び各PC凍結セット(f
1,f
2)のサイズは、符号レート及び情報ブロック長に基づいて決定されてもよい。
【0112】
以下は、情報ビットの系列を符号化するための実施例の5ステップの技術の例である。
【0113】
第1のステップにおいて、エンコーダは、F
p=log
2N×(α-|α×(K/M-1/2)|
2)に従って、候補PC凍結サブチャネルの数を計算してもよい。予めフラグ付けされたPC凍結ビットの総数は、N-K以下でもよい(N-Kに等しいとき、全ての凍結ビットがPC凍結ビットとして扱われる)。実際に、F
pは(N-K)/2により上限が決められてもよく、αは1より大きい値に設定され、例えば、α=1.5である。いくつかの他の実施例では、F
pはN、M及びKの異なる関数を有してもよく、或いは固定されてもよい。
【0114】
第2のステップにおいて、エンコーダは、パンクチャリング/短縮されたサブチャネルを最も左に移動し、その後、残りのサブチャネルを信頼性の昇順に2つのサブセットに分割してもよい。この例が
図21に示される。
【0115】
第3のステップにおいて、エンコーダは、サブチャネルの(K+F
p)サブセット内の最小の行重みを見つけ、これをw
minとして記し、f
1=(F
p+min(F
p,n))/2、f
2=(F
p-min(F
p,n))/2を計算してもよい。(K+F
p)サブセット内の重みw
minを有するサブチャネルの数がf
1未満である場合、f
1=nを設定し、f
1内の残りの量の半分をf
2に追加し、すなわち、f
2=f
2+(f
1-n)/2である。
【0116】
第4のステップにおいて、エンコーダは、(K+F
p)サブセット内で候補PC凍結サブチャネルを選択してもよい。これを行う際に、エンコーダは、右から左にw
minの行重みを有するf
1個のサブチャネルを選択し、右から左に2×w
minの行重みを有するf
2個のサブチャネルを候補PC凍結サブチャネルとして選択してもよい。いくつかの他の実施例では、F
p個のサブチャネルのサブセットは、行重みw
minに基づいて決定されてもよく、F
p個のサブチャネルの残りのサブセットは、(K+F
p)サブセット内の最も信頼性の低いサブチャネルのような少なくとも1つの他のメトリックに基づいて決定されてもよい。
【0117】
第5のステップにおいて、エンコーダは、情報セット、PC凍結セット及び凍結セットを決定してもよい。これを行う際に、エンコーダは、K個のサブチャネルが選択されるまで、最も右から最も左に情報サブチャネルを選択し、候補PC凍結サブチャネルをスキップしてもよい。その後、エンコーダは、残りのサブチャネルを凍結サブチャネルとして選択し、候補PC凍結サブチャネルのものと等しい行重み(すなわち、w
min及び2×w
min)を有する凍結サブチャネル位置から、更なるPC凍結サブチャネルとして選択してもよい。いくつかの他の実施例では、全ての凍結サブチャネルは、更なるPC凍結サブチャネルとして選択されてもよい。PC凍結ビットが第1の情報ビットの前である場合、これは凍結ビットに等しくてもよい。
【0118】
エンコーダは、レジスタ上でのサイクリックシフトに基づいてパリティ検査関数を実行してもよい。レジスタの長さは素数でもよい。エンコーダは、i=0〜N-1についてpの長さのサイクリックシフトレジスタy[0],…,y[p-1]を0に初期化してもよい。自然数の順序における第1のビットから始めて、エンコーダは第iのビットを読み取り、レジスタをビット単位でサイクリック左シフトしてもよい。a
iが情報ビットである場合、ビット値は不変のままであり、エンコーダはy[0]=(a
i XOR y[0])を更新する。a
iがPCビットである場合、エンコーダはa
i=y[0]を設定する。a
iが凍結ビットである場合、エンコーダはa
i=0を設定する。
【0119】
図22は、パリティ検査(parity-check, PC)SCLデコーダにより使用される実施例のサイクルシフトレジスタ操作を示す。PC関数は、PC行列Wにより規定されてもよい。以下の例は、符号ブロック長がM=16であり、情報ビット長がK=8であることを仮定する。これから、サブチャネルの以下の順序付き系列Q:[u
0,u
1,u
2,u
4,u
8,u
3,u
5,u
6,u
9,u
10,u
12,u
7,u
11,u
13,u
14,u
15]を取得することが可能である。上記に提供される式(例えば、F
p=log
2N×(α-|α×(K/M-1/2)|
2)等)に基づいて、F
pは6として計算され、w
min及びnはそれぞれ2及び3である。n<F
pであるので、PC凍結ビットとして、行重みw
min=2を有するf
1=3個のサブチャネルであり、行重み2×d
min=4を有するf
2=3個のサブチャネルである。信頼性の降順により、これらのPC凍結ビットは[u
2,u
4,u
8,u
9,u
10,u
12]である。情報及び更なる凍結ビットは、Qに従ってチャネル信頼性に基づいてマッピングされる。情報ビットセットは[u
3,u
5,u
6,u
7,u
11,u
13,u
14,u
15]であり、凍結ビットセットは[u
0,u
1,u
2,u
4,u
8,u
9,u
10,u
12]である。行重み2及び4を有する凍結ビットを選択することにより、PC凍結ビットセットは[u
1,u
2,u
4,u
8,u
9,u
10,u
12]である。最後に、p=5を有する素数の長さのサイクリックレジスタが、[u
1,u
2,u
4,u
8,u
9,u
10,u
12]内の各PC凍結ビットのためのパリティ関数を作るために使用される。サイクリックレジスタは、ビットを一定の間隔5で接続する。特に、u
1、u
2、u
4及びu
9は、静的凍結ビットと等しい。さらに、u
8、u
10及びu
12は、(それぞれ)[u
3,u
8]、[u
5,u
10]及び[u
7,u
12]のパリティ関数に基づいてPCビットにマッピングされ、u
3、u
5及びu
7は情報ビットである。
図23は、この例についてのパリティ検査行列を示す。図示のように、Wは、u
0、u
1、u
2、u
4を静的凍結ビットとして設定し、u
8=u
3、u
10=u
5、u
12=u
7のようなセルフパリティ検査(self-parity-check)関数に基づいて、u
8、u
10及びu
12をPCビットとして設定することにより取得される。表1は、この開示を通じて使用される表記を列挙する。
【表4】
【0120】
図24は、エンコーダにより実行されてもよい、情報ビットの系列を符号化するための実施例の方法2400を示す。ステップ2410において、エンコーダは、
【数12】
(iはサブチャネルのインデックスであり、B
jは最も重要でない桁からカウントしてサブチャネルiのバイナリ表現の第(j+1)の桁のビット値{0又は1}である)に従って、重み系列を計算し、W
iを昇順にソートし、順序付けされたインデックス系列Qiを保存する。ステップ2040において、エンコーダは、例えば、P=[BitRev(M),BitRev(M+1),…BitRev(N-1)]に従ってパンクチャリング/短縮パターンを計算する。他のパンクチャリング/短縮パターンも可能になり得る。ステップ2430において、エンコーダは、F
p=log
2N×(α-|α×(K/M-1/2)|
2)によりF
pを計算し、(重み又は信頼性の昇順に)サブチャネルを3つのサブセット:N-M、M-K-Fp、K+Fpに分割し、K+Fpサブセットは、最も信頼性の高いサブチャネルを含む(パンクチャリング/短縮が考慮されるとき)。エンコーダはまた、(K+Fp)サブセット内の最小の行重みとしてw
minを見つけ、同じw
minを有する(K+Fp)サブセット内のサブチャネルの数としてnを見つけ、f1=(Fp+min(Fp,n))/2を計算し、f2=(Fp-min(Fp,n))/2を計算する。ステップ2440において、エンコーダは、重みw
minを有するf1個のサブチャネル及び重み2*w
minを有するf2個のサブチャネルを選択することにより、K+Fpサブセット内でPCビットのために候補サブチャネルを確保又はさもなければ配分する。いくつかの実施例では、F
pは固定値、例えば、3でもよい。他の実施例では、PCビットのためのF
p個のサブチャネルのサブセットのみが行重みw
min及び/又は2*w
minに基づいて選択され、PCビットのためのF
p個のサブチャネルの残りのサブセットが他のメトリック、例えば、最も信頼性の高いK+F
p個のサブチャネル内の最も信頼性の低いサブチャネルに少なくとも基づいて選択される。候補PCサブチャネルが配分されると、エンコーダはまた、情報セットIを取得するために、K+Fpサブセット内のK個の(最も信頼性の高い残りの)サブチャネルを配分し(すなわち、確保された候補PCサブチャネルをスキップし)、それに情報ビットをマッピングする。エンコーダはまた、凍結セット(F)を取得するために、残りのサブチャネル(例えば、N-M及び/又はM-K-Fpサブセット)に凍結ビットをマッピングする。他の実施例では、エンコーダは、凍結セットFからPCビットのための更なるサブチャネルを確保又は配分する。凍結セットFから選択された更なるサブチャネルは、w
min及び/又は2*w
minに等しい行重みを有してもよく、或いは全ての凍結セットFがPCビットのための更なるサブチャネルとして扱われてもよい。確保されたサブチャネルは、PC凍結セットPFを取得するために、PCビットにマッピングされてもよい。ステップ2450において、エンコーダは、レジスタ内のサイクリックシフトを使用して、パリティ検査関数に基づいてPCビットの値を設定する。レジスタは、素数に等しい長さを有してもよい。実現方式に依存して、サブチャネルが配分される順序は変化してもよい。同様に、PCビット、情報ビット又は凍結ビットが配分されたサブチャネルにマッピングされる順序も変化してもよい。
【0121】
図25は、ここに記載の符号化方法を実行するための実施例の処理システム2500のブロック図を示し、これはホストデバイスに設置されてもよい。図示のように、処理システム2500は、プロセッサ2504と、メモリ2506と、インタフェース2510〜2514とを含み、これらは
図25に示すように配置されてもよい(或いは配置されなくてもよい)。プロセッサ2504は、ここに記載の選択、マッピング及び/又は他の符号化操作若しくは復号化操作のようなタスクに関する計算及び/又は他の処理を実行するように適合されたいずれかのコンポーネント又はコンポーネントの集合でもよく、メモリ2506は、プロセッサ2504による実行のためのプログラミング及び/又は命令を記憶するように適合されたいずれかのコンポーネント又はコンポーネントの集合でもよい。実施例では、メモリ2506は、非一時的なコンピュータ読み取り可能媒体を含む。インタフェース2510、2512、2514は、処理システム2500が符号化データの送信又は符号化データに基づく信号の受信を可能にするように、他のデバイス/コンポーネント及び/又はユーザと通信することを可能にするように構成されたいずれかのコンポーネント又はコンポーネントの集合でもよい。例えば、インタフェース2510、2512、2514のうち1つ以上は、プロセッサ2504からホストデバイス及び/又は遠隔デバイスにインストールされたアプリケーションにデータ、制御又は管理メッセージを通信するように適合されてもよい。他の例として、インタフェース2510、2512、2514のうち1つ以上は、ユーザ又はユーザデバイス(例えば、パーソナルコンピュータ(personal computer, PC)等)が処理システム2500と相互作用/通信することを可能にするように適合されてもよい。処理システム2500は、長期ストレージ(例えば、不揮発性メモリ等)のような
図25に図示しない更なるコンポーネントを含んでもよい。
【0122】
いくつかの実施例では、処理システム2500は、電気通信ネットワークにアクセスするネットワークデバイスに含まれるか、或いはさもなければその一部である。一例では、処理システム2500は、基地局、中継局、スケジューラ、コントローラ、ゲートウェイ、ルータ、アプリケーションサーバ、又は電気通信ネットワーク内の他のデバイスのような、無線又は有線電気通信ネットワーク内のネットワーク側デバイス内にある。他の実施例では、処理システム2500は、移動局、ユーザ装置(user equipment, UE)、無線デバイス、パーソナルコンピュータ(personal computer, PC)、タブレット、ウェアラブル通信デバイス(例えば、スマートウォッチ等)、又は電気通信ネットワークにアクセスするように適合された他のデバイスのような、無線又は有線電気通信ネットワークにアクセスするユーザ側デバイス内にある。
【0123】
いくつかの実施例では、インタフェース2510、2512、2514のうち1つ以上は、電気通信ネットワーク上でシグナリングを送信及び受信するように適合されたトランシーバに処理システム2500を接続する。
図26は、電気通信ネットワーク上でシグナリング又は符号化データを送信及び受信するように適合されたトランシーバ2600のブロック図を示す。トランシーバ2600は、ホストデバイスに設置されてもよい。図示のように、トランシーバ2600は、ネットワーク側インタフェース2602と、カプラ2604と、送信機2606と、受信機2608と、シグナルプロセッサ2610と、デバイス側インタフェース2612とを含む。ネットワーク側インタフェース2602は、無線又は有線電気通信ネットワーク上でシグナリングを送信又は受信するように適合されたいずれかのコンポーネント又はコンポーネントの集合を含んでもよい。カプラ2604は、ネットワーク側インタフェース2602上で双方向通信を容易にするように適合されたいずれかのコンポーネント又はコンポーネントの集合を含んでもよい。送信機2606は、ベースバンド信号を、ネットワーク側インタフェース2602上での送信に適した変調キャリア信号に変換するように適合されたいずれかのコンポーネント又はコンポーネントの集合(例えば、アップコンバータ、電力増幅器等)を含んでもよい。受信機2608は、ネットワーク側インタフェース2602上で受信したキャリア信号をベースバンド信号に変換するように適合されたいずれかのコンポーネント又はコンポーネントの集合(例えば、ダウンコンバータ、低雑音増幅器等)を含んでもよい。シグナルプロセッサ2610は、ベースバンド信号を、デバイス側インタフェース2612上での通信に適したデータ信号に変換し、或いは逆も同様に行うように適合されたいずれかのコンポーネント又はコンポーネントの集合を含んでもよい。デバイス側インタフェース2612は、シグナルプロセッサ2610と、ホストデバイス内のコンポーネント(例えば、処理システム2500、ローカルエリアネットワーク(local area network, LAN)ポート等)との間でデータ信号を通信するように適合されたいずれかのコンポーネント又はコンポーネントの集合を含んでもよい。トランシーバ2600は、いずれかの種類の通信媒体上でシグナリングを送信及び受信してもよい。いくつかの実施例では、トランシーバ2600は、無線媒体上でシグナリングを送信及び受信する。例えば、トランシーバ2600は、セルラプロトコル(例えば、ロングタームエボリューション(long-term evolution, LTE等)、無線ローカルエリアネットワーク(wireless local area network, WLAN)プロトコル(例えば、Wi-Fi等)又は他の種類の無線プロトコル(例えば、ブルートゥース、近距離通信(near field communication, NFC)等)のような無線電気通信プロトコルに従って通信するように適合された無線トランシーバでもよい。このような実施例では、ネットワーク側インタフェース2602は、1つ以上のアンテナ/放射エレメントを含む。例えば、ネットワーク側インタフェース2602は、単一のアンテナ、複数の別々のアンテナ、又はマルチレイヤ通信、例えば、シングル・インプット・マルチプル・アウトプット(single input multiple output, SIMO)、マルチプル・インプット・シングル・アウトプット(multiple input single output, MISO)、マルチプル・インプット・マルチプル・アウトプット(multiple input multiple output, MIMO)等のために構成されたマルチアンテナアレイを含んでもよい。他の実施例では、トランシーバ2600は、有線媒体、例えば、ツイストペアケーブル、同軸ケーブル、光ファイバ等上でシグナリングを送信及び受信する。具体的な処理システム及び/又はトランシーバは、図示のコンポーネントの全て、又はコンポーネントのサブセットのみを利用してもよく、統合のレベルはデバイスによって変化し得る。