このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
nrOFDMDemodulate
構文
説明
は、指定したリソース ブロックの数 grid
= nrOFDMDemodulate(waveform
,nrb
,scs
,initialNSlot
)nrb
、サブキャリア間隔 scs
、および初期スロット番号 initialNSlot
の waveform
を復調します。
は、前述のいずれかの構文の入力引数に加えて、1 つ以上の名前と値のペアの引数を使用してオプションを指定します。grid
= nrOFDMDemodulate(___,Name,Value
)
例
OFDM 波形の復調
OFDM 波形を復調して、送信されたキャリア リソース配列を復元します。
キャリア リソース配列で 106 個のリソース ブロック (RB) を指定して、キャリア構成パラメーターを設定します。
carrier = nrCarrierConfig('NSizeGrid',106);
物理ダウンリンク共有チャネル (PDSCH) 復調基準信号 (DM-RS) のシンボルとインデックスを生成します。
p = 2;
pdsch = nrPDSCHConfig('NumLayers',p);
sym = nrPDSCHDMRS(carrier,pdsch);
ind = nrPDSCHDMRSIndices(carrier,pdsch);
PDSCH DM-RS シンボルを格納するキャリア リソース配列を作成します。
txGrid = nrResourceGrid(carrier,p); txGrid(ind) = sym;
OFDM 変調された波形を生成します。
[txWaveform,~] = nrOFDMModulate(carrier,txGrid);
単純な 2 行 1 列のチャネルに波形を渡します。
H = [0.6; 0.4]; waveform = txWaveform*H;
受信した OFDM 波形を復調して、キャリア リソース配列を復元します。
grid = nrOFDMDemodulate(carrier,waveform);
拡張サイクリック プレフィックスを使用した OFDM 波形の復調
OFDM 波形を復調して、PDSCH DM-RS シンボルを含むリソース配列を復元します。
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 シンボルを格納するキャリア リソース配列を作成します。
txGrid = nrResourceGrid(carrier,p); txGrid(ind) = sym;
サブキャリア間隔、初期スロット番号、およびサイクリック プレフィックス長を指定して、OFDM 変調波形を生成します。
initialNSlot = carrier.NSlot; cpl = 'extended'; [txWaveform,info] = nrOFDMModulate(txGrid,scs,initialNSlot,'CyclicPrefix',cpl);
単純な 2 行 1 列のチャネルに波形を渡します。
H = [0.9; 0.95]; waveform = txWaveform*H;
受信した OFDM 波形を復調して、キャリア リソース配列を復元します。
nrb = carrier.NSizeGrid;
grid = nrOFDMDemodulate(waveform,nrb,scs,initialNSlot,'CyclicPrefix',cpl);
指定されたサンプル レートでの OFDM 波形の復調
OFDM 波形を復調して、サウンディング基準信号 (SRS) を含み、フレーム全体にまたがる、送信されたリソース配列を復元します。
キャリア リソース配列で 30 kHz のサブキャリア間隔と 24 個のリソース ブロックを指定して、キャリア構成パラメーターを設定します。
carrier = nrCarrierConfig('SubcarrierSpacing',30,'NSizeGrid',24);
スロットの周期性とオフセットを設定して、SRS パラメーターを構成します。
srs = nrSRSConfig('SRSPeriod',[4 0]);
指定したキャリア構成の OFDM 情報を取得します。
info = nrOFDMInfo(carrier);
スロット リソース配列を作成し、それを連結して、フレーム リソース配列を生成します。
frameGrid = []; for nslot = 0:(info.SlotsPerFrame - 1) carrier.NSlot = nslot; slotGrid = nrResourceGrid(carrier); ind = nrSRSIndices(carrier,srs); sym = nrSRS(carrier,srs); slotGrid(ind) = sym; frameGrid = [frameGrid slotGrid]; end
OFDM 変調波形を生成します。
[txWaveform,~] = nrOFDMModulate(carrier,frameGrid);
単純なチャネルに波形を渡します。
H = 0.86; waveform = txWaveform*H;
サンプル レートを指定し、受信した OFDM 波形を復調して、キャリア リソース配列を復元します。
sr = info.SampleRate;
grid = nrOFDMDemodulate(carrier,waveform,'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
waveform
— OFDM 変調波形
複素数値行列
OFDM 変調波形。サイズ T 行 R 列の複素数値行列として指定します。
T は、波形内の時間領域サンプルの数。
R は受信アンテナの数。
データ型: double
複素数のサポート: あり
nrb
— リソース ブロックの数
1 ~ 275 の整数
リソース ブロックの数。1 ~ 275 の整数として指定します。
データ型: 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
を引用符で囲みます。
例: 'CyclicPrefixFraction',0.75
は、サイクリック プレフィックス長に対する復調の開始位置を指定します。
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
CarrierFrequency
— 搬送周波数 (Hz)
0
(既定値) | 実数
Hz 単位の搬送周波数。'CarrierFrequency'
と実数で構成されるコンマ区切りのペアとして指定します。この入力は、TS 38.211 の Section 5.4 で定義されている f0 に対応します。
データ型: double
CyclicPrefixFraction
— サイクリック プレフィックス内の FFT ウィンドウの位置
0.5
(既定値) | 区間 [0, 1] のスカラー
サイクリック プレフィックス内の高速フーリエ変換 (FFT) ウィンドウの位置。'CyclicPrefixFraction'
と区間 [0, 1] のスカラーで構成されるコンマ区切りのペアとして指定します。
指定する値は、サイクリック プレフィックスの先頭に対する OFDM 復調の開始位置を示します。
データ型: double
出力引数
grid
— キャリア リソース配列
複素数値配列
キャリア リソース配列。サイズ K×L×R の複素数値配列として返されます。
K はサブキャリアの数。
L は OFDM シンボルの数。
R は受信アンテナの数。
データ型: double
複素数のサポート: あり
参照
[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'
を指定する場合、入力引数nrb
、scs
、および名前と値の引数'Nfft'
もコンパイル時の定数でなければなりません。たとえば、関数codegen
の-args
の値に{coder.Constant(nrb)}
と{coder.Constant(scs)}
も含めます。'SampleRate'
の名前と値のペアの引数は、carrier
入力と一緒に使用することはできません。
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。 (R2024a 以降)
この関数は GPU 配列を完全にサポートしています。詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2020b で導入R2024a: GPU 配列のサポート
関数 nrOFDMDemodulate
は、現在、GPU 配列をサポートしています。詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
R2023a: FR2-2 のサブキャリア間隔
この関数は、現在、TS 38.211 の Sections 4.2 および 4.3 の定義に基づき、480 kHz および 960 kHz のサブキャリア間隔をサポートしています。
R2023a: C/C++ コード生成の更新
C/C++ コード生成において、名前と値の引数 'CyclicPrefix'
、'Windowing'
、'CarrierFrequency'
、'CyclicPrefixFraction'
、または '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)