Main Content

nrOFDMModulate

OFDM 変調された波形の生成

説明

[waveform,info] = nrOFDMModulate(carrier,grid) は、キャリア構成パラメーター carrier のキャリア リソース配列 grid の直交周波数分割多重 (OFDM) 変調を実行して、時間領域波形 waveform を生成します。この関数は、OFDM 情報を格納する構造体 info も返します。

[waveform,info] = nrOFDMModulate(grid,scs,initialNSlot) は、サブキャリア間隔 scs と初期スロット番号 initialNSlot を使用してキャリア リソース配列を変調します。

[waveform,info] = nrOFDMModulate(___,Name,Value) は、前述のいずれかの構文の入力引数に加えて、1 つ以上の名前と値のペアの引数を使用してオプションを指定します。

すべて折りたたむ

サウンディング基準信号 (SRS) が格納されたリソース配列の OFDM 変調を実行して、波形を生成します。リソース配列はフレーム全体にまたがっています。

キャリア リソース配列で 30 kHz のサブキャリア間隔と 24 個のリソース ブロック (RB) を指定して、キャリア構成パラメーターを設定します。

carrier = nrCarrierConfig('SubcarrierSpacing',30,'NSizeGrid',24);

スロットの周期性を 2 に設定し、オフセットを 0 に設定して、SRS パラメーターを構成します。

srs = nrSRSConfig('SRSPeriod',[2 0]);

指定したキャリア構成の OFDM 情報を取得します。

info = nrOFDMInfo(carrier);

個々のスロット リソース配列を作成し、それを連結して、フレーム リソース配列を生成します。

grid = [];
for nslot = 0:(info.SlotsPerFrame - 1)
    carrier.NSlot = nslot;
    slotGrid = nrResourceGrid(carrier);
    ind = nrSRSIndices(carrier,srs);
    sym = nrSRS(carrier,srs);
    slotGrid(ind) = sym;
    grid = [grid slotGrid];
end

指定したキャリア構成のリソース配列で OFDM 変調を実行します。

[waveform,info] = nrOFDMModulate(carrier,grid);

物理ダウンリンク共有チャネル (PDSCH) 復調基準信号 (DM-RS) シンボルが格納されたリソース配列の OFDM 変調を実行して、波形を生成します。

60 kHz のサブキャリア間隔を指定して、キャリア構成パラメーターを設定します。

scs = 60;
carrier = nrCarrierConfig('SubcarrierSpacing',scs);

PDSCH DM-RS のシンボルとインデックスを生成します。

p = 2;
pdsch = nrPDSCHConfig('NumLayers',p);
sym = nrPDSCHDMRS(carrier,pdsch);
ind = nrPDSCHDMRSIndices(carrier,pdsch);

PDSCH DM-RS シンボルを格納するキャリア リソース配列を作成します。

grid = nrResourceGrid(carrier,p);
grid(ind) = sym;

サブキャリア間隔、初期スロット番号、およびサイクリック プレフィックス タイプを指定して、OFDM 変調波形を生成します。OFDM 情報を表示します。

initialNSlot = carrier.NSlot;
cpl = 'extended';
[waveform,info] = nrOFDMModulate(grid,scs,initialNSlot,'CyclicPrefix',cpl);
disp(info)
                   Nfft: 1024
             SampleRate: 61440000
    CyclicPrefixLengths: [256 256 256 256 256 256 256 256 256 256 256 ... ]
          SymbolLengths: [1280 1280 1280 1280 1280 1280 1280 1280 1280 ... ]
              Windowing: 36
           SymbolPhases: [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... ]
         SymbolsPerSlot: 12
       SlotsPerSubframe: 4
          SlotsPerFrame: 40

PDSCH DM-RS シンボルが格納されたリソース配列の OFDM 変調を実行して、波形を生成します。

キャリア リソース配列で 106 個の RB を指定して、キャリア構成パラメーターを設定します。

carrier = nrCarrierConfig('NSizeGrid',106);

PDSCH を構成し、対応するシンボルとインデックスを生成します。

p = 4;
pdsch = nrPDSCHConfig('NumLayers',p);
sym = nrPDSCHDMRS(carrier,pdsch);
ind = nrPDSCHDMRSIndices(carrier,pdsch);

キャリア リソース配列を作成し、PDSCH シンボルをマッピングします。

grid = nrResourceGrid(carrier,p,'OutputDataType','single');
grid(ind) = sym;

サンプル レートを指定して、OFDM 変調波形を生成します。

sr = 1e8;
[waveform,info] = nrOFDMModulate(carrier,grid,'SampleRate',sr);

入力引数

すべて折りたたむ

特定の OFDM numerology のキャリア構成パラメーター。nrCarrierConfig オブジェクトとして指定します。そのオブジェクト プロパティのみが、この関数に関連付けられます。

キャリア リソース グリッド内の RB の数。1 ~ 275 の整数として指定します。既定値の 52 は、SCS が 15 kHz である 10 MHz キャリアの RB の最大数に対応します。

データ型: double

キャリアのすべてのチャネルおよび基準信号の kHz 単位のサブキャリア間隔。153060120、または 240 として指定します。

データ型: double

スロット番号。非負の整数として指定します。NSlot には、フレームごとのスロット数よりも大きい値を設定できます。たとえば、MATLAB® シミュレーションで送信ループ カウンターを使用してこの値を設定できます。この場合、呼び出しコードでプロパティ値がフレームごとのスロット数を法としていることを確認しなければならない場合があります。

データ型: double

サイクリック プレフィックス長。次のオプションのいずれかとして指定します。

  • 'normal' — この値を使用して、ノーマル サイクリック プレフィックスを指定します。このオプションは、スロット内の 14 個の OFDM シンボルに対応します。

  • 'extended' — この値を使用して、拡張サイクリック プレフィックスを指定します。このオプションは、スロット内の 12 個の OFDM シンボルに対応します。TS 38.211 の Section 4.2 で規定されている numerology では、拡張サイクリック プレフィックス長が 60 kHz のサブキャリア間隔にのみ適用されます。

データ型: char | string

キャリア リソース配列。サイズ K×N×P の複素数値配列として指定します。

  • K はサブキャリアの数。

  • N は OFDM シンボルの数。

  • P は送信アンテナの数。

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

kHz 単位のサブキャリア間隔。153060120、または 240 として指定します。

データ型: double

初期スロット番号。0 ベース形式の非負の整数として指定します。この関数は、initialNSlot mod S の値を使用して、OFDM 変調に適切なサイクリック プレフィックス長を選択します。ここで、S はサブフレームごとのスロット数です。

データ型: double

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は関係ありません。

R2021a より前では、コンマを使用して名前と値の各ペアを区切り、Name を引用符で囲みます。

例: 'CyclicPrefix','extended' は拡張サイクリック プレフィックスの長さを指定します。

サイクリック プレフィックス長。'CyclicPrefix' と次の値のいずれかで構成されるコンマ区切りのペアとして指定します。

  • 'normal' — この値を使用して、ノーマル サイクリック プレフィックスを指定します。このオプションは、スロット内の 14 個の OFDM シンボルに対応します。

  • 'extended' — この値を使用して、拡張サイクリック プレフィックスを指定します。このオプションは、スロット内の 12 個の OFDM シンボルに対応します。TS 38.211 の Section 4.2 で規定されている numerology では、拡張サイクリック プレフィックス長が 60 kHz のサブキャリア間隔にのみ適用されます。

メモ

carrier 入力を指定する場合は、carrier 入力の CyclicPrefix プロパティを使用して、サイクリック プレフィックス長を指定します。この名前と値のペアの引数を carrier 入力と一緒に使用することはできません。

データ型: char | string

高速フーリエ変換 (FFT) 点の数。'Nfft' および 127 より大きい非負の整数または [] で構成されるコンマ区切りのペアとして指定します。指定する値は、サイクリック プレフィックス長が整数値となり、最大占有率が 100% となるものでなければなりません。占有率は (12 × NRB)/Nfft の値として定義されます。ここで、NRB はリソース ブロックの数です。

この入力を指定しなかった場合、または 'Nfft',[] を指定した場合、関数はこの入力の既定値として 127 より大きい整数値を設定します。実際の既定値は、他の入力値によって異なります。

  • SampleRate 入力を指定しなかった場合、または 'SampleRate',[] を指定した場合、関数は次の条件を満たす Nfft を設定します。

    • 2 の整数乗の Nfft

    • 最大占有率が 85% になる Nfft

  • SampleRate 入力を指定した場合、関数は次の条件を満たす Nfft を設定します。

    • サイクリック プレフィックス長が整数値になる Nfft

    • gcd (Nfft × SCS, SampleRate) の値を最大化する Nfft。ここで、SCS は carrier.SubcarrierSpacing プロパティまたは scs 入力によって指定される。

詳細については、OFDM サンプル レートと FFT サイズの構成を参照してください。

データ型: double

波形のサンプル レート。'SampleRate' および正のスカラー値または [] で構成されるコンマ区切りのペアとして指定します。

この入力を指定しなかった場合、または 'SampleRate',[] を指定した場合、関数はこの入力に Nfft × SCS の値を設定します。

  • Nfft'Nfft' 入力の値。

  • SCS はサブキャリア間隔。使用する関数構文に応じて、SCS が carrier.SubcarrierSpacing プロパティまたは scs 入力によって指定されます。

詳細については、OFDM サンプル レートと FFT サイズの構成を参照してください。

データ型: double

関数が OFDM シンボルのレイズド コサイン ウィンドウ処理とオーバーラップ処理を適用する時間領域サンプルの数。'Windowing' および非負の整数または [] で構成されるコンマ区切りのペアとして指定します。

この入力を指定しなかった場合、または 'Windowing',[] を指定した場合、関数は、TS 38.101-1 の Annex F.5.3 と Annex F.5.4、TS 38.101-2 の Annex F.5.3 と Annex F.5.4、および TS 38.104 の Annex B.5.2 と Annex C.5.2 で規定されているように、この入力をエラー ベクトル振幅 (EVM) テストに影響を与えない最大値 E に設定します。E は floor((NCP − W) × info.Nfft ⁄ NFFT, nominal) の値に等しくなります。ここで、NCP、W、および NFFT, nominal は、それぞれ "Cyclic prefix length"、"EVM window length"、および "FFT size" というラベルの付いたテーブル列の値です。

データ型: double

Hz 単位の搬送周波数。'CarrierFrequency' と実数で構成されるコンマ区切りのペアとして指定します。この入力は、TS 38.211 の Section 5.4 で定義されている f0 に対応します。

データ型: double

出力引数

すべて折りたたむ

OFDM 変調波形。サイズ T×P の複素数値行列として返されます。

  • T は、波形内の時間領域サンプルの数。

  • P は送信アンテナの数。

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

OFDM 情報。次のフィールドを含む構造体として返されます。

フィールド説明
Nfft正の整数FFT 点の数
SampleRate正のスカラー波形のサンプル レート
CyclicPrefixLengths正の整数の 1 行 N 列のベクトル。ここで、N はサブフレーム内の OFDM シンボルの数。各 OFDM シンボルのサイクリック プレフィックス長 (サンプル数)
SymbolLengths正の整数の 1 行 N 列のベクトルOFDM シンボル長 (サンプル数)
Windowing正の整数関数が OFDM シンボルのレイズド コサイン ウィンドウ処理とオーバーラップ処理を適用する時間領域サンプルの数
SymbolPhases区間 [-π, π] のスカラーの 1 行 N 列のベクトル

各 OFDM シンボルの位相補償 (ラジアン)

この関数は、TS 38.211 の Section 5.4 [4]で規定されているように、変調の際にこの補正を適用して、OFDM シンボルごとに位相項を計算に入れます。関数 nrOFDMDemodulate が復調の際にこの位相補償を反転します。

SymbolsPerSlot正の整数スロット内の OFDM シンボルの数
SlotsPerSubframe正の整数1 ms サブフレーム内のスロット数
SlotsPerFrame正の整数10 ms フレーム内のスロット数

データ型: struct

参照

[1] 3GPP TS 38.101-1. “NR; User Equipment (UE) radio transmission and reception; Part 1: Range 1 Standalone.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.

[2] 3GPP TS 38.101-2. “NR; User Equipment (UE) radio transmission and reception; Part 2: Range 2 Standalone.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.

[3] 3GPP TS 38.104. “NR; Base Station (BS) radio transmission and reception.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.

[4] 3GPP TS 38.211. “NR; Physical channels and modulation.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network.

拡張機能

バージョン履歴

R2020b で導入