Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

復号化に向けた PBCH シンボルとチャネル推定の抽出

ビームフォーミングされた PBCH を復号化するための準備として、受信したグリッドと関連するチャネル推定から物理ブロードキャスト チャネル (PBCH) シンボルを抽出します。

PBCH の符号化とビームフォーミング

BCH コードワードに対応するバイナリ値のランダム シーケンスを作成します。TS 38.212 の Section 7.1.5 で規定されているように、コードワードの長さは 864 です。コードワードを使用して、PBCH 送信用のシンボルとインデックスを作成します。物理レイヤーのセル ID 番号を指定します。

E = 864;
cw = randi([0 1],E,1);
ncellid = 17;
v = 0;
pbchTxSym = nrPBCH(cw,ncellid,v);
pbchInd = nrPBCHIndices(ncellid);

nrExtractResources を使用して、ビームフォーミングされた PBCH の 2 つの送信アンテナのインデックスを作成します。そのインデックスを使用して、ビームフォーミングされた PBCH を送信機のリソース配列にマッピングします。

carrier = nrCarrierConfig('NSizeGrid',20);
P = 2;
txGrid = nrResourceGrid(carrier,P);
F = [1 0.3i];
[~,bfInd] = nrExtractResources(pbchInd,txGrid);
txGrid(bfInd) = pbchTxSym*F;

送信機のリソース配列にマッピングされた PBCH シンボルを OFDM 変調します。

txWaveform = nrOFDMModulate(carrier,txGrid);

PBCH の送信と復号化

チャネル行列を作成し、波形に適用します。送信された波形を受信します。

R = 3;
H = dftmtx(max([P R]));
H = H(1:P,1:R);
H = H/norm(H);
rxWaveform = txWaveform*H;

ビームフォーミングを含むチャネル推定を作成します。

 hEstGrid = repmat(permute(H.'*F.',[3 4 1 2]),[240 4]);
 nEst = 0;

受信波形を直交周波数分割多重 (OFDM) を使用して復調します。

 rxGrid = nrOFDMDemodulate(carrier,rxWaveform);

PBCH 復号化の準備として、受信グリッドとチャネル推定グリッドからシンボルを抽出します。

[pbchRxSym,pbchHestSym] = nrExtractResources(pbchInd,rxGrid,hEstGrid);
scatterplot(pbchRxSym(:),[],[],'y+');
title('Received PBCH Constellation');

Figure Scatter Plot contains an axes object. The axes object with title Received PBCH Constellation, xlabel In-Phase, ylabel Quadrature contains a line object which displays its values using only markers. This object represents Channel 1.

抽出されたリソースに対して MMSE イコライズを実行することで、シンボルをイコライズします。結果をプロットします。

pbchEqSym = nrEqualizeMMSE(pbchRxSym,pbchHestSym,nEst);
scatterplot(pbchEqSym(:),[],[],'y+');
title('Equalized PBCH Constellation');

Figure Scatter Plot contains an axes object. The axes object with title Equalized PBCH Constellation, xlabel In-Phase, ylabel Quadrature contains a line object which displays its values using only markers. This object represents Channel 1.

イコライズされたシンボルに対して PBCH 復号化を実行することで、ソフト ビットを取得します。

pbchBits = nrPBCHDecode(pbchEqSym,ncellid,v)
pbchBits = 864×1
1010 ×

   -2.0000
   -2.0000
    2.0000
   -2.0000
   -2.0000
    2.0000
    2.0000
   -2.0000
   -2.0000
   -2.0000
      ⋮

参考

関数