nrEqualizeMMSE
最小平均二乗誤差 (MMSE) イコライズ
説明
例
物理ブロードキャスト チャネル (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,ofdmInfo] = nrOFDMModulate(carrier,txGrid);
チャネル行列を作成し、送信波形にチャネルを適用します。
P = 1;
R = 4;
H = randn(P,R,'like',1i);
H = H / norm(H);
rxWaveform = txWaveform * H;ノイズを追加します。
SNRdB = 20; rxWaveform = awgn(rxWaveform,SNRdB,-10*log10(double(ofdmInfo.Nfft)));
チャネルとノイズの推定値を作成します。
hEstGrid = repmat(permute(H.',[3 4 1 2]),[240 4]); nEst = 10^(-SNRdB/10);
OFDM 復調を実行します。
rxGrid = nrOFDMDemodulate(carrier,rxWaveform);
PBCH 復号化の準備をするには、nrExtractResources を使用して、受信グリッドとチャネル推定グリッドからシンボルを抽出します。受信した PBCH コンスタレーションをプロットします。
[pbchRxSym,pbchHestSym] = nrExtractResources(pbchInd,rxGrid,hEstGrid); scatterplot(pbchRxSym(:),[],[],'y+'); title('Received PBCH Constellation');

抽出されたリソース エレメントを使用して PBCH を復号化します。イコライズされた PBCH コンスタレーションをプロットします。
[pbchEqSym,csi] = nrEqualizeMMSE(pbchRxSym,pbchHestSym,nEst); pbchBits = nrPBCHDecode(pbchEqSym,ncellid,v); scatterplot(pbchEqSym(:),[],[],'y+'); title('Equalized PBCH Constellation');

入力引数
物理チャネルの抽出されたリソース エレメント。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++ コードを生成します。
nrEqualizeMMSE 関数は、GPU 配列を完全にサポートします。GPU 上で関数を実行するには、入力データを gpuArray (Parallel Computing Toolbox) として指定します。詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2018b で導入関数 nrEqualizeMMSE は、現在、GPU 配列をサポートしています。詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)