Main Content

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

nrEqualizeMMSE

最小平均二乗誤差 (MMSE) イコライズ

説明

[eqSym,csi] = nrEqualizeMMSE(rxSym,hest,nVar) は、物理チャネル rxSym の抽出されたリソース エレメントに MMSE イコライズを適用し、イコライズされたシンボルを eqSym に返します。イコライズ プロセスは、推定チャネル情報 hest および受信したノイズ分散 nVar の推定値を使用します。この関数は、ソフト チャネル状態情報 csi も返します。

すべて折りたたむ

物理ブロードキャスト チャネル (PBCH) の抽出されたリソース エレメントに対して MMSE イコライズを実行します。

PBCH 送信用のシンボルとインデックスを作成します。

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

1 つの送信アンテナ用に空のリソース配列を生成します。生成された PBCH インデックスを使用して、配列に PBCH シンボルを入力します。

carrier = nrCarrierConfig('NSizeGrid',20);
P = 1;
txGrid = nrResourceGrid(carrier,P);
txGrid(pbchInd) = pbchTxSym;

OFDM 変調を実行します。

txWaveform = nrOFDMModulate(carrier,txGrid);

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

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

チャネル推定を作成します。

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

OFDM 復調を実行します。

rxGrid = nrOFDMDemodulate(carrier,rxWaveform);

PBCH 復号化の準備をするには、nrExtractResources を使用して、受信グリッドとチャネル推定グリッドからシンボルを抽出します。受信した 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.

抽出されたリソース エレメントを使用して PBCH を復号化します。イコライズされた PBCH コンスタレーションをプロットします。

[pbchEqSym,csi] = nrEqualizeMMSE(pbchRxSym,pbchHestSym,nEst);
pbchBits = nrPBCHDecode(pbchEqSym,ncellid,v);
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.

入力引数

すべて折りたたむ

物理チャネルの抽出されたリソース エレメント。NRE 行 R 列の数値行列として指定します。NRE は、受信したグリッドの K 行 L 列の各平面から抽出されたリソース エレメントの数です。K はサブキャリアの数、L は OFDM シンボルの数です。R は受信アンテナの数です。

データ型: double
複素数のサポート: あり

推定チャネル情報。NRE×R×P の数値配列として指定します。NRE は、受信したグリッドの K 行 L 列の各平面から抽出されたリソース エレメントの数です。K はサブキャリアの数、L は OFDM シンボルの数です。R は受信アンテナの数です。P はレイヤーの数です。

データ型: double
複素数のサポート: あり

推定ノイズ分散。非負の実数スカラーとして指定します。

データ型: double

出力引数

すべて折りたたむ

イコライズされたシンボル。NRE 行 P 列の数値行列として返されます。NRE は、受信したグリッドの K 行 L 列の各平面から抽出されたリソース エレメントの数です。K はサブキャリアの数、L は OFDM シンボルの数です。P はレイヤーの数です。

データ型: double
複素数のサポート: あり

ソフト チャネル状態情報。NRE 行 P 列の数値行列として返されます。NRE は、受信したグリッドの K 行 L 列の各平面から抽出されたリソース エレメントの数です。K はサブキャリアの数、L は OFDM シンボルの数です。P はレイヤーの数です。この出力は、各 RE の SNR を考慮した対数尤度比 (LLR) のスケーリング係数です。

データ型: double
複素数のサポート: あり

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2018b で導入