このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
nrOFDMModulate
構文
説明
[
は、サブキャリア間隔 waveform
,info
] = nrOFDMModulate(grid
,scs
,initialNSlot
)scs
と初期スロット番号 initialNSlot
を使用してキャリア リソース配列を変調します。
[
は、前述のいずれかの構文の入力引数に加えて、1 つ以上の名前と値のペアの引数を使用してオプションを指定します。waveform
,info
] = nrOFDMModulate(___,Name,Value
)
例
OFDM 変調された波形の生成
サウンディング基準信号 (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);
拡張サイクリック プレフィックス用の OFDM 変調波形の生成
物理ダウンリンク共有チャネル (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 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256 256] SymbolLengths: [1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 1280 ... ] (1x48 double) 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 0 0 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
指定したサンプル レートの OFDM 変調波形の生成
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);
入力引数
carrier
— キャリア構成パラメーター
nrCarrierConfig
オブジェクト
特定の OFDM numerology のキャリア構成パラメーター。nrCarrierConfig
オブジェクトとして指定します。そのオブジェクト プロパティのみが、この関数に関連付けられます。
NSizeGrid
— キャリア リソース グリッド内の RB の数
52
(既定値) | 1 ~ 275 の整数
キャリア リソース グリッド内の RB の数。1 ~ 275 の整数として指定します。既定値の 52
は、SCS が 15 kHz である 10 MHz キャリアの RB の最大数に対応します。
データ型: double
SubcarrierSpacing
— サブキャリア間隔 (kHz)
15
(既定値) | 30
| 60
| 120
| 240
| 480
| 960
キャリアのすべてのチャネルおよび基準信号の kHz 単位のサブキャリア間隔。15
、30
、60
、120
、240
、480
、または 960
として指定します。
データ型: double
NSlot
— スロット番号
0
(既定値) | 非負の整数
スロット番号。非負の整数として指定します。NSlot
には、フレームごとのスロット数よりも大きい値を設定できます。たとえば、MATLAB® シミュレーションで送信ループ カウンターを使用してこの値を設定できます。この場合、呼び出しコードでプロパティ値がフレームごとのスロット数を法としていることを確認しなければならない場合があります。
データ型: double
CyclicPrefix
— サイクリック プレフィックス長
'normal'
(既定値) | 'extended'
サイクリック プレフィックス長。次のオプションのいずれかとして指定します。
'normal'
— この値を使用して、ノーマル サイクリック プレフィックスを指定します。このオプションは、スロット内の 14 個の OFDM シンボルに対応します。'extended'
— この値を使用して、拡張サイクリック プレフィックスを指定します。このオプションは、スロット内の 12 個の OFDM シンボルに対応します。TS 38.211 の Section 4.2 で規定されている numerology では、拡張サイクリック プレフィックス長が 60 kHz のサブキャリア間隔にのみ適用されます。
データ型: char
| string
grid
— キャリア リソース配列
複素数値配列
キャリア リソース配列。サイズ K×N×P の複素数値配列として指定します。
K はサブキャリアの数。
N は OFDM シンボルの数。
P は送信アンテナの数。
データ型: single
| double
複素数のサポート: あり
scs
— サブキャリア間隔 (kHz)
15
| 30
| 60
| 120
| 240
| 480
| 960
kHz 単位のサブキャリア間隔。15
、30
、60
、120
、240
、480
、または 960
として指定します。
データ型: double
initialNSlot
— 初期スロット番号
非負の整数
初期スロット番号。0 ベース形式の非負の整数として指定します。この関数は、initialNSlot
mod S の値を使用して、OFDM 変調に適切なサイクリック プレフィックス長を選択します。ここで、S はサブフレームごとのスロット数です。
データ型: double
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は関係ありません。
R2021a より前では、コンマを使用して名前と値の各ペアを区切り、Name
を引用符で囲みます。
例: 'CyclicPrefix','extended'
は拡張サイクリック プレフィックスの長さを指定します。
CyclicPrefix
— サイクリック プレフィックス長
'normal'
(既定値) | 'extended'
サイクリック プレフィックス長。'CyclicPrefix'
と次の値のいずれかで構成されるコンマ区切りのペアとして指定します。
'normal'
— この値を使用して、ノーマル サイクリック プレフィックスを指定します。このオプションは、スロット内の 14 個の OFDM シンボルに対応します。'extended'
— この値を使用して、拡張サイクリック プレフィックスを指定します。このオプションは、スロット内の 12 個の OFDM シンボルに対応します。TS 38.211 の Section 4.2 で規定されている numerology では、拡張サイクリック プレフィックス長が 60 kHz のサブキャリア間隔にのみ適用されます。
メモ
carrier
入力を指定する場合は、carrier
入力の CyclicPrefix
プロパティを使用して、サイクリック プレフィックス長を指定します。この名前と値のペアの引数を carrier
入力と一緒に使用することはできません。
データ型: char
| string
Nfft
— FFT 点の数
127 より大きい整数 (既定値は他の入力値によって異なる) | []
高速フーリエ変換 (FFT) 点の数。'Nfft'
および 127 より大きい非負の整数または []
で構成されるコンマ区切りのペアとして指定します。指定する値は、サイクリック プレフィックス長が整数値となり、最大占有率が 100% となるものでなければなりません。占有率は (12 × NRB)/Nfft
の値として定義されます。ここで、NRB はリソース ブロックの数です。
この入力を指定しなかった場合、または 'Nfft',[]
を指定した場合、関数はこの入力の既定値として 127 より大きい整数値を設定します。実際の既定値は、他の入力値によって異なります。
SampleRate
入力を指定しなかった場合、または'SampleRate',[]
を指定した場合、関数は次の条件を満たすNfft
を設定します。2 の整数乗の
Nfft
。最大占有率が 85% になる
Nfft
。
SampleRate
入力を指定した場合、関数は次の条件を満たすNfft
を設定します。
詳細については、OFDM サンプル レートと FFT サイズの構成を参照してください。
データ型: double
SampleRate
— 波形のサンプル レート
正のスカラー (既定値は他の入力値によって異なる) | []
波形のサンプル レート。'SampleRate'
および正のスカラー値または []
で構成されるコンマ区切りのペアとして指定します。
この入力を指定しなかった場合、または 'SampleRate',[]
を指定した場合、関数はこの入力に Nfft × SCS の値を設定します。
詳細については、OFDM サンプル レートと FFT サイズの構成を参照してください。
データ型: double
Windowing
— OFDM シンボルのウィンドウ処理とオーバーラップ処理の時間領域サンプルの数
非負の整数 (既定値は他の入力値によって異なる) | []
関数が 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
CarrierFrequency
— 搬送周波数 (Hz)
0
(既定値) | 実数
Hz 単位の搬送周波数。'CarrierFrequency'
と実数で構成されるコンマ区切りのペアとして指定します。この入力は、TS 38.211 の Section 5.4 で定義されている f0 に対応します。
データ型: double
出力引数
waveform
— OFDM 変調波形
複素数値行列
OFDM 変調波形。サイズ T×P の複素数値行列として返されます。
T は、波形内の時間領域サンプルの数。
P は送信アンテナの数。
データ型: single
| double
複素数のサポート: あり
info
— OFDM 情報
構造体
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 シンボルごとに位相項を計算に入れます。関数 |
SymbolsPerSlot | 正の整数 | スロット内の OFDM シンボルの数 |
SlotsPerSubframe | 正の整数 | 1 ms サブフレーム内のスロット数 |
SlotsPerFrame | 正の整数 | 10 ms フレーム内のスロット数 |
メモ
CyclicPrefixLengths
、SymbolLengths
、および Windowing
の構造体フィールドのサンプル数は、OFDM シンボルの構成時に使用されるサイズ Nfft
の IFFT のサンプル レートに対して適用されます。ただし、SampleRate
の名前と値の引数で任意のサンプル レートを指定する場合、IFFT のサンプル レートは波形サンプル レートと異なる場合があります。
データ型: 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.
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意および制限:
名前と値の引数
'SampleRate'
はコード生成のコンパイル時の定数でなければなりません。たとえば、'SampleRate',15.36e6
を使って関数を呼び出す場合は、関数codegen
の-args
の値に{coder.Constant('SampleRate'),coder.Constant(15.36e6)}
を含めます。詳細については、coder.Constant
(MATLAB Coder) クラスを参照してください。名前と値の引数
'SampleRate'
を指定する場合、grid
の最初の次元および入力引数scs
もコンパイル時の定数でなければなりません。たとえば、関数codegen
の-args
の値に{coder.typeof(grid,[624 Inf Inf],[0 1 1])}
と{coder.Constant(scs)}
も含めます。'SampleRate'
の名前と値のペアの引数は、carrier
入力と一緒に使用することはできません。
バージョン履歴
R2020b で導入R2023a: FR2-2 のサブキャリア間隔
この関数は、現在、TS 38.211 の Sections 4.2 および 4.3 の定義に基づき、480 kHz および 960 kHz のサブキャリア間隔をサポートしています。
R2023a: C/C++ コード生成の更新
C/C++ コード生成において、名前と値の引数 'CyclicPrefix'
、'Windowing'
、'CarrierFrequency'
、または 'Nfft'
をコンパイル時の定数として指定するという制限がなくなりました。ただし、名前と値の引数 'SampleRate'
を指定する場合、名前と値の引数 'Nfft'
はこれまでと同じくコード生成のコンパイル時の定数でなければなりません。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)