Main Content

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

5G NR アップリンク ベクトル波形の生成

この例では、ベースバンド成分のキャリアに対し、関数nrWaveformGeneratorを使用して物理アップリンク共有チャネル (PUSCH) とサウンディング基準信号 (SRS) を含む 5G NR アップリンク ベクトル波形を構成して生成する方法を説明します。

はじめに

この例では、関数 nrWaveformGenerator を使用し、5G New Radio (NR) アップリンク波形をパラメーター化して生成する方法を説明します。生成される波形には、次のチャネルと信号が含まれます。

  • PUSCH、およびそれに関連付けられた復調基準信号 (DM-RS) と位相トラッキング基準信号 (PT-RS)

  • SRS

この例のベースバンド成分の搬送波形は、複数のサブキャリア間隔 (SCS) キャリアと bandwidth part (BWP)、ならびに異なる BWP における PUSCH および SRS 送信インスタンスの複数のシーケンスによって特徴付けられます。この例では、CG-UCI と SRS を位置決めに使って PUSCH 上でアップリンク制御情報 (UCI) のパラメーター化と生成を行う方法も示します。

物理アップリンク制御チャネル (PUCCH) を使って 5G アップリンク波形を生成する方法の例については、5G NR Uplink with PUCCH Vector Waveform Generationを参照してください。

波形とキャリアの構成

nrULCarrierConfigオブジェクトを使用して、ベースバンド波形の生成をパラメーター化します。このオブジェクトには、波形チャネルと信号に対応する追加のオブジェクト セットが含まれており、次のアップリンク キャリア構成パラメーターを設定できます。

  • UL キャリア構成のラベル

  • リソース ブロックの SCS キャリア帯域幅

  • キャリア セル ID

  • サブフレームで生成する波形の長さ

  • ウィンドウ処理

  • OFDM 変調波形のサンプル レート

  • シンボル位相補償の搬送周波数

nrSCSCarrierConfigオブジェクトの NStartGrid プロパティと NSizeGrid プロパティを使用して、SCS キャリア帯域幅と保護帯域を制御できます。

waveconfig = nrULCarrierConfig;    % Create an uplink carrier configuration object
waveconfig.Label = 'UL carrier 1'; % Label for this uplink waveform configuration
waveconfig.NCellID = 0;            % Cell identity
waveconfig.ChannelBandwidth = 40;  % Channel bandwidth (MHz)
waveconfig.FrequencyRange = 'FR1'; % 'FR1' or 'FR2'
waveconfig.NumSubframes = 10;      % Number of 1 ms subframes in generated waveform (1, 2, 4, 8 slots per 1 ms subframe, depending on SCS)
waveconfig.WindowingPercent = 0;   % Percentage of windowing relative to FFT length
waveconfig.SampleRate = [];        % Sample rate of the OFDM-modulated waveform
waveconfig.CarrierFrequency = 0;   % Carrier frequency in Hz. This property is used for symbol phase
                                   % compensation before OFDM modulation

% Define a set of SCS-specific carriers, using the maximum sizes for a
% 40 MHz NR channel. See TS 38.101-1 for more information on defined
% bandwidths and guardband requirements.
scscarriers = {nrSCSCarrierConfig,nrSCSCarrierConfig};
scscarriers{1}.SubcarrierSpacing = 15;
scscarriers{1}.NSizeGrid = 216;
scscarriers{1}.NStartGrid = 0;

scscarriers{2}.SubcarrierSpacing = 30;
scscarriers{2}.NSizeGrid = 106;
scscarriers{2}.NStartGrid = 1;

BWP

BWP は、特定の SCS キャリアに対して numerology を共有する連続したリソースのセットで形成されます。cell 配列を使用して、複数の BWP を定義できます。nrWavegenBWPConfigオブジェクトの cell 配列の各要素によって、BWP を定義します。それぞれの BWP に対して、SCS、サイクリック プレフィックス (CP) 長、帯域幅を指定できます。SubcarrierSpacing プロパティで、先に定義済みの SCS 固有のキャリアの 1 つに BWP をリンクします。NStartBWP プロパティで、キャリア内の BWP のポイント A に対する相対位置を制御します。NStartBWP は、BWP numerology を基準に共通リソース ブロック (CRB) で表します。異なる BWP が互いにオーバーラップすることもあります。

% BWP configurations
bwp = {nrWavegenBWPConfig,nrWavegenBWPConfig};
bwp{1}.BandwidthPartID = 1;        % BWP ID
bwp{1}.Label = 'BWP 1 @ 15 kHz';   % Label for this BWP
bwp{1}.SubcarrierSpacing = 15;     % BWP subcarrier spacing
bwp{1}.CyclicPrefix = 'Normal';    % BWP cyclic prefix for 15 kHz
bwp{1}.NSizeBWP = 25;              % Size of BWP in PRBs
bwp{1}.NStartBWP = 10;             % Position of BWP, relative to point A, in CRBs

bwp{2}.BandwidthPartID = 2;        % BWP ID
bwp{2}.Label = 'BWP 2 @ 30 kHz';   % Label for this BWP
bwp{2}.SubcarrierSpacing = 30;     % BWP subcarrier spacing
bwp{2}.CyclicPrefix = 'Normal';    % BWP cyclic prefix for 30 kHz
bwp{2}.NSizeBWP = 51;              % Size of BWP in PRBs
bwp{2}.NStartBWP = 40;             % Position of BWP, relative to point A, in CRBs

PUSCH インスタンスの構成

cell 配列を使用して、波形内の PUSCH 送信インスタンスのセットを指定します。nrWavegenPUSCHConfigオブジェクトの cell 配列の各要素によって、PUSCH 送信インスタンスのシーケンスを定義します。この例では、2 つのユーザー端末 (UE) の送信をモデル化する 2 つの PUSCH シーケンスを定義しています。

基本パラメーター

次のパラメーターを PUSCH シーケンスごとに設定します。

  • PUSCH シーケンスの有効化/無効化。

  • PUSCH シーケンスのラベルの指定。

  • PUSCH を伝送する BWP の指定。PUSCH は、BWP に指定された SCS を使用します。

  • dB 単位のパワー スケーリング。

  • UL-SCH トランスポート チャネル符号化の有効化/無効化。

  • RNTI。

  • PUSCH ビットのスクランブル用の NID。

  • トランスフォーム プリコーディング。トランスフォーム プリコーディングが true の場合、トランスフォーム プリコーディングが有効になり、結果として得られる波形は DFT-s-OFDM となります。トランスフォーム プリコーディングが false の場合、結果として得られる波形は CP-OFDM となります。

  • トランスポート ブロック サイズの計算に使用するターゲット符号化率。

  • オーバーヘッド パラメーター。

  • トランスミッション スキーム。トランスミッション スキームが 'codebook' の場合、MIMO プリコーディングが有効になり、レイヤーの数、アンテナ ポートの数、および送信されるプリコーディング行列インジケーターに基づいてプリコーディング行列が選択されます。トランスミッションが 'nonCodebook' に設定された場合、単位行列が使用され、MIMO プリコーディングは行われません。

  • シンボル変調。

  • レイヤーの数。アップリンクではコード ワードが 1 つしか送信されないため、レイヤーの数は最大で 4 つに制限されています。トランスフォーム プリコーディングが有効な場合は、名目上、レイヤーの数が 1 に設定されます。DMRS.PortSet プロパティが指定されている場合、この値は無視されます。

  • アンテナ ポートの数。これは、コードブックの送信が有効な場合に使用されます。アンテナ ポートの数は、構成された DM-RS ポートの数以上でなければなりません。

  • 送信されるプリコーディング行列インジケーター。

  • 冗長バージョン (RV) シーケンス。

  • 周波数ホッピング。

  • 2 番目のホップのリソース ブロック オフセット。

  • トランスポート ブロックのデータ ソース。ビット配列、または標準 PN シーケンス ('PN9-ITU''PN9''PN11''PN15''PN23' のいずれか) を使用できます。発生器のシードを {'PN9', seed} の形式の cell 配列として指定できます。シードを指定しない場合は、すべて 1 で発生器が初期化されます。

pusch = {nrWavegenPUSCHConfig};           % Create a PUSCH configuration object for the first UE
pusch{1}.Enable = 1;                      % Enable PUSCH sequence
pusch{1}.Label = 'UE 1 - PUSCH @ 15 kHz'; % Label for this PUSCH sequence
pusch{1}.BandwidthPartID = 1;             % BWP of PUSCH transmission
pusch{1}.Power = 0;                       % Power scaling in dB
pusch{1}.Coding = 1;                      % Enable the UL-SCH transport channel coding
pusch{1}.NID = 1;                         % Scrambling for data part
pusch{1}.RNTI = 11;                       % RNTI for the first UE
pusch{1}.TransformPrecoding = false;      % Transform precoding
pusch{1}.TargetCodeRate = 0.47;           % Code rate used to calculate transport block sizes
pusch{1}.XOverhead = 0;                   % Rate matching overhead

% Transmission settings
pusch{1}.TransmissionScheme = 'codebook'; % 'codebook','nonCodebook'
pusch{1}.Modulation = 'QPSK';             % 'pi/2-BPSK','QPSK','16QAM','64QAM','256QAM'
pusch{1}.NumLayers = 2;                   % Number of PUSCH layers
pusch{1}.NumAntennaPorts = 4;             % Number of antenna ports
pusch{1}.TPMI = 0;                        % Transmitted precoding matrix indicator (0...27)
pusch{1}.RVSequence = [0 2 3 1];          % RV sequence to be applied cyclically across the PUSCH allocation sequence
pusch{1}.FrequencyHopping = 'interSlot';  % Frequency hopping configuration
pusch{1}.SecondHopStartPRB = 10;          % Resource block offset for second hop

% Data source
pusch{1}.DataSource = 'PN9';              % Channel data source

割り当て

次の図では、PUSCH の割り当てのパラメーターを示しています。

次のパラメーターを設定して、PUSCH の割り当てを制御できます。これらのパラメーターは BWP が基準になります。

  • PUSCH マッピング タイプ。

  • 各 PUSCH インスタンスに割り当てるスロット内のシンボル。PUSCH マッピング タイプが 'A' の場合、スロット内の開始シンボルはゼロでなければならず、長さは 4 ~ 14 (通常の CP の場合) および最大 12 まで (拡張 CP の場合) を選択できます。PUSCH マッピング タイプが 'B' の場合、スロット内の任意のシンボルを開始シンボルに使用できます。

  • PUSCH のシーケンスに使用するフレーム内のスロット。

  • スロットの割り当て周期。空の周期は、スロット パターンの繰り返しがないことを示します。

  • BWP に対して割り当てられる PRB。

pusch{1}.MappingType = 'A';         % PUSCH mapping type ('A'(slot-wise),'B'(non slot-wise))
pusch{1}.SymbolAllocation = [0 14]; % First symbol and length
pusch{1}.SlotAllocation = [0 1];    % Allocated slots indices for PUSCH sequence
pusch{1}.Period = 5;                % Allocation period in slots
pusch{1}.PRBSet = 0:10;             % PRB allocation

PUSCH DM-RS 構成

DM-RS パラメーターを設定します。

% Antenna port and DM-RS configuration (TS 38.211 section 6.4.1.1)
pusch{1}.DMRSPower = 0;                    % Additional power boosting in dB

pusch{1}.DMRS.DMRSConfigurationType = 1;   % DM-RS configuration type (1,2)
pusch{1}.DMRS.NumCDMGroupsWithoutData = 2; % Number of DM-RS CDM groups without data. The value can be one of the set {1,2,3}
pusch{1}.DMRS.DMRSPortSet = [0 2];         % DM-RS antenna ports used ([] gives port numbers 0:NumLayers-1)
pusch{1}.DMRS.DMRSTypeAPosition = 2;       % Mapping type A only. First DM-RS symbol position (2,3)
pusch{1}.DMRS.DMRSLength = 1;              % Number of front-loaded DM-RS symbols (1(single symbol),2(double symbol))
pusch{1}.DMRS.DMRSAdditionalPosition = 2;  % Additional DM-RS symbol positions (max range 0...3)
pusch{1}.DMRS.NIDNSCID = 1;                % Scrambling identity for CP-OFDM (0...65535). Use empty ([]) to use physical layer cell identity
pusch{1}.DMRS.NSCID = 0;                   % Scrambling initialization for CP-OFDM (0,1)
pusch{1}.DMRS.NRSID = 0;                   % Scrambling identity for DFT-s-OFDM DM-RS (0...1007). Use empty ([]) to use physical layer cell identity

pusch{1}.DMRS.GroupHopping = true;         % Group hopping configuration. This property is used only when transform precoding is enabled
pusch{1}.DMRS.SequenceHopping = false;     % Sequence hopping configuration. This property is used only when transform precoding is enabled

GroupHopping プロパティは、トランスフォーム プリコーディングが有効な場合に DM-RS シーケンスを生成するために使用されます。GroupHopping には次を設定できます。

  • 'enable': グループ ホッピングが存在することを示します。これは、上位レイヤーのパラメーター sequenceGroupHopping で構成します。

  • 'disable': シーケンス ホッピングが存在することを示します。これは、上位レイヤーのパラメーター sequenceHopping で構成します。

  • 'neither': グループ ホッピングもシーケンス ホッピングも存在しないことを示します。

データが存在しない DM-RS CDM グループの数は、構成タイプによって決まります。DM-RS CDM グループの最大数は、DM-RS 構成タイプ 1 では 2 つ、DM-RS 構成タイプ 2 では 3 つです。

PUSCH PT-RS 構成

PT-RS パラメーターを設定します。

% PT-RS configuration (TS 38.211 section 6.4.1.2)
pusch{1}.EnablePTRS = 0;            % Enable or disable the PT-RS (1 or 0)
pusch{1}.PTRSPower = 0;             % Additional PT-RS power boosting in dB for CP-OFDM

pusch{1}.PTRS.TimeDensity = 1;      % Time density (L_PT-RS) of PT-RS (1,2,4)
pusch{1}.PTRS.FrequencyDensity = 2; % Frequency density (K_PT-RS) of PT-RS for CP-OFDM (2,4)
pusch{1}.PTRS.NumPTRSSamples = 2;   % Number of PT-RS samples (NGroupSamp) for DFT-s-OFDM (2,4)
pusch{1}.PTRS.NumPTRSGroups = 2;    % Number of PT-RS groups (NPTRSGroup) for DFT-s-OFDM (2,4,8)
pusch{1}.PTRS.REOffset = '00';      % PT-RS resource element offset for CP-OFDM ('00','01','10','11')
pusch{1}.PTRS.PTRSPortSet = 0;      % PT-RS antenna ports must be a subset of DM-RS ports for CP-OFDM
pusch{1}.PTRS.NID = 0;              % PT-RS scrambling identity for DFT-s-OFDM (0...1007)

CP-OFDM で PT-RS を有効にする場合、DM-RS ポートは、DM-RS 構成タイプ 1 では範囲 0 ~ 3、DM-RS 構成タイプ 2 では範囲 0 ~ 5 でなければなりません。DFT-s-OFDM で PT-RS が有効になっており、PT-RS グループの数が 8 に設定されている場合、PT-RS サンプルの数を 4 に設定しなければなりません。

PUSCH 上の UCI

次のパラメーターを設定して、PUSCH 上の UCI の送信を構成できます。

  • HARQ-ACK、CSI part 1、CSI part2、および CG-UCI の送信の有効化/無効化

  • HARQ-ACK、CSI part 1、CSI part2、および CG-UCI のビット数。

  • TS 38.213 の Table 9.3-1 および 9.3-2 に基づいて、BetaOffsetACKBetaOffsetCSI1BetaOffsetCSI2、および BetaOffsetCGUCI の設定が可能。

  • HARQ-ACK、CSI part 1、CSI part2、および CG-UCI のデータ ソース。ビット配列、または標準 PN シーケンス ('PN9-ITU''PN9''PN11''PN15''PN23' のいずれか) を使用できます。発生器のシードを {'PN9', seed} の形式の cell 配列として指定できます。シードを指定しない場合は、すべて 1 で発生器が初期化されます。

  • UCI を伴う UL-SCH 送信の有効化。

  • UCIScaling は、TS 38.212 の Section 6.3.2.4 に基づき、上位レイヤーのパラメーター scaling で与えられる。

pusch{1}.EnableACK = true;        % Enable or disable HARQ-ACK
pusch{1}.NumACKBits = 5;          % Number of HARQ-ACK bits
pusch{1}.BetaOffsetACK = 1;       % Power factor of HARQ-ACK
pusch{1}.DataSourceACK = 'PN9';   % HARQ-ACK data source
pusch{1}.EnableCSI1 = true;       % Enable or disable CSI part 1
pusch{1}.NumCSI1Bits = 10;        % Number of CSI part 1 bits
pusch{1}.BetaOffsetCSI1 = 2;      % Power factor of CSI part 1
pusch{1}.DataSourceCSI1 = 'PN9';  % CSI part 1 data source
pusch{1}.EnableCSI2 = true;       % Enable or disable CSI part 2
pusch{1}.NumCSI2Bits = 10;        % Number of CSI part 2 bits
pusch{1}.BetaOffsetCSI2 = 2;      % Power factor of CSI part 2
pusch{1}.DataSourceCSI2 = 'PN9';  % CSI part 2 data source
pusch{1}.EnableCGUCI = false;     % Enable or disable CG-UCI
pusch{1}.NumCGUCIBits = 10;       % Number of CG-UCI bits
pusch{1}.BetaOffsetCGUCI = 2;     % Power factor of CG-UCI
pusch{1}.DataSourceCGUCI = 'PN9'; % CG-UCI data source
pusch{1}.EnableULSCH = true;      % Enable or disable UL-SCH when there is UCI transmission on PUSCH
pusch{1}.UCIScaling = 1;          % Scaling factor (0.5, 0.65, 0.8, 1)

HARQ-ACK と CG-UCI が両方とも有効な場合、TS 38.212 の Section 6.3.2.1.4 では、UCI ビット シーケンスが CG-UCI ビットと HARQ-ACK ビットの共用体として指定されています。そのため、このような場合、PUSCH 上の UCI の処理ではアクティブな CG-UCI ソースが HARQ-ACK の拡張であるとみなされ、BetaOffsetACK の値のみが使用されます。

複数の PUSCH シーケンスの指定

2 番目の BWP に対して 2 番目の PUSCH シーケンスを指定します。

pusch{2} = pusch{1};                 % Create a PUSCH configuration object for the second UE
pusch{2}.Enable = 1;
pusch{2}.Label = 'UE 2 - PUSCH @ 30 kHz';
pusch{2}.BandwidthPartID = 2;        % PUSCH mapped to the second BWP
pusch{2}.RNTI = 12;                  % RNTI for the second UE
pusch{2}.SymbolAllocation = [0 12];
pusch{2}.SlotAllocation = [5 6 7 8];
pusch{2}.PRBSet = 5:10;              % PRB allocation, relative to BWP
pusch{2}.Period = 10;
pusch{2}.TransformPrecoding = 1;
pusch{2}.FrequencyHopping = 'interSlot';
pusch{2}.NumLayers = 1;
pusch{2}.RNTI = 1;

pusch{2}.DMRS.GroupHopping = false;
pusch{2}.DMRS.DMRSPortSet = 1;

SRS インスタンスの構成

波形内の SRS を指定します。nrWavegenSRSConfigオブジェクトの cell 配列の各要素によって、BWP に関連付けられた SRS インスタンスのシーケンスを定義します。無効化された 2 つの SRS シーケンスを定義します。

基本パラメーター

次のパラメーターを SRS シーケンスごとに設定します。

  • SRS シーケンスの有効化/無効化。

  • SRS シーケンスのラベルの指定。

  • SRS シーケンスを伝送する BWP の指定。SRS シーケンスの構成は、BWP に指定された SCS を使用します。

  • dB 単位でのパワー スケーリングの指定。

srs = {nrWavegenSRSConfig};
srs{1}.Enable = 0;
srs{1}.Label = 'SRS @ 15 kHz';
srs{1}.BandwidthPartID = 1;
srs{1}.Power = 3; % Power scaling in dB

SRS 構成

次のパラメーターを SRS シーケンスごとに構成できます。

  • SRS アンテナ ポートの数。

  • 各 SRS シーケンスに割り当てるスロット内のシンボル。

  • SRS の送信に使用される、周期内のスロット。

  • スロットの割り当て周期。空の周期は、スロット パターンの繰り返しがないことを示します。

  • RB 内の BWP における SRS シーケンスの開始位置。

  • 4-PRB ブロックにおける開始位置からの追加の周波数オフセット。

  • 帯域幅および周波数ホッピングの構成。占有帯域幅は、CSRSBSRS、および BHop の各プロパティによって決まります。周波数ホッピングを有効にするには、BHop < BSRS を設定します。

  • サブキャリアで SRS 周波数密度を指定する送信櫛。

  • サブキャリア内の送信櫛のオフセット。

  • 低 PAPR ベース シーケンスを回転させるサイクリック シフト。送信櫛の数が 2 と 4 のどちらであるかによって、サイクリック シフトの最大数は 8 または 12 になります。SRS アンテナ ポートが 4 つの場合、1 番目および 3 番目のアンテナ ポートの SRS に割り当てられるサブキャリア セットはサイクリック シフトによって決まります。

  • スロット内で繰り返される SRS シンボルの数。Repetition シンボルのブロックでの周波数ホッピングを無効にします。繰り返しなしの場合は、Repetition = 1 に設定します。

  • グループ ホッピングまたはシーケンス ホッピング。'neither''groupHopping'、または 'sequenceHopping' を指定できます。

  • スクランブリング アイデンティティ。グループ ホッピングまたはシーケンス ホッピングが有効な場合、これによって 2 値疑似乱数列が初期化されます。

srs{1}.NumSRSPorts = 1;             % Number of SRS ports (1,2,4)
srs{1}.NumSRSSymbols = 4;           % Number of SRS symbols in a slot (1,2,4)
srs{1}.SymbolStart = 10;            % Time-domain position of the SRS in the slot. (8...13) for normal CP and (6...11) for extended CP
srs{1}.SlotAllocation = 2;          % Allocated slots indices
srs{1}.Period = 5;                  % Allocation period in slots
srs{1}.FrequencyStart = 0;          % Frequency position of the SRS in BWP in RBs
srs{1}.NRRC = 0;                    % Additional offset from FreqStart specified in blocks of 4 PRBs (0...67)
srs{1}.CSRS = 13;                   % Bandwidth configuration C_SRS (0...63). It controls the allocated bandwidth to the SRS
srs{1}.BSRS = 2;                    % Bandwidth configuration B_SRS (0...3). It controls the allocated bandwidth to the SRS
srs{1}.BHop = 1;                    % Frequency hopping configuration (0...3). Set BHop < BSRS to enable frequency hopping
srs{1}.KTC = 2;                     % Comb number (2,4). It indicates the allocation of the SRS every KTC subcarriers
srs{1}.KBarTC = 0;                  % Subcarrier offset of the SRS sequence (0...KTC-1)
srs{1}.CyclicShift = 0;             % Cyclic shift number (0...NCSmax-1). NCSmax = 8 for KTC = 2 and NCSmax = 12 for KTC = 4.
srs{1}.Repetition = 1;              % Repetition factor (1,2,4). It indicates the number of equal consecutive SRS symbols in a slot
srs{1}.GroupSeqHopping = 'neither'; % Group or sequence hopping ('neither', 'groupHopping', 'sequenceHopping')
srs{1}.NSRSID = 0;                  % Scrambling identity (0...1023)
srs{1}.SRSPositioning = false;      % Enable SRS for user positioning

複数の SRS シーケンスの指定

2 番目の BWP に対して 2 番目の SRS シーケンスを指定します。

srs{2} = srs{1};
srs{2}.Enable = 0;
srs{2}.Label = 'SRS @ 30 kHz';
srs{2}.BandwidthPartID = 2;
srs{2}.NumSRSSymbols = 2;
srs{2}.SymbolStart = 12;
srs{2}.SlotAllocation = [5 6 7 8];
srs{2}.Period = 10;
srs{2}.BSRS = 0;
srs{2}.BHop = 0;

波形生成

すべてのチャネルと信号のパラメーターをメインのキャリア構成オブジェクト nrULCarrierConfig に割り当て、波形を生成してプロットします。

waveconfig.SCSCarriers = scscarriers;
waveconfig.BandwidthParts = bwp;
waveconfig.PUSCH = pusch;
waveconfig.SRS = srs;

% Generate complex baseband waveform
[waveform,info] = nrWaveformGenerator(waveconfig);

定義したアンテナ ポートのセットについて、ベースバンド波形の振幅をプロットします。

figure;
plot(abs(waveform));
title('Magnitude of 5G Uplink Baseband Waveform');
xlabel('Sample Index');
ylabel('Magnitude');

最初のアンテナ ポートの波形のスペクトログラムをプロットします。

samplerate = info.ResourceGrids(1).Info.SampleRate;
nfft = info.ResourceGrids(1).Info.Nfft;
figure;
spectrogram(waveform(:,1),ones(nfft,1),0,nfft,'centered',samplerate,'yaxis','MinThreshold',-130);
title('Spectrogram of 5G Uplink Baseband Waveform');

波形発生器関数は、時間領域の波形と構造体 info を返します。info 構造体には、基となるリソース エレメント グリッドと、すべての PUSCH と SRS のインスタンスが波形で使用するリソースの内訳が格納されます。

ResourceGrids フィールドは、次のフィールドを含む構造体配列です。

  • 各 BWP に対応するリソース グリッド。

  • 各 BWP のチャネルと信号を含む帯域幅全体のリソース グリッド。

  • 各 BWP に対応する情報をもつ情報構造体。たとえば、最初の BWP の情報を表示します。

disp('Modulation information associated with BWP 1:')
disp(info.ResourceGrids(1).Info)
Modulation information associated with BWP 1:
                   Nfft: 4096
             SampleRate: 61440000
    CyclicPrefixLengths: [320 288 288 288 288 288 288 320 ... ] (1x14 double)
          SymbolLengths: [4416 4384 4384 4384 4384 4384 ... ] (1x14 double)
              Windowing: 0
           SymbolPhases: [0 0 0 0 0 0 0 0 0 0 0 0 0 0]
         SymbolsPerSlot: 14
       SlotsPerSubframe: 1
          SlotsPerFrame: 10
                     k0: 0

生成されるリソース グリッドは 3 次元行列です。グリッドの各平面は、ポート番号の昇順でアンテナ ポートを表します。

参考

関数

オブジェクト

関連するトピック