Main Content

nrPRACHOFDMInfo

Get PRACH OFDM information

Description

example

info = nrPRACHOFDMInfo(carrier,prach) provides dimensional information relevant to physical random access channel (PRACH) orthogonal frequency-division multiplexing (OFDM) modulation for carrier configuration parameters carrier and PRACH configuration parameters prach.

example

info = nrPRACHOFDMInfo(carrier,prach,'Windowing',samples) specifies the number of time-domain samples over which the function applies raised cosine windowing and overlapping of OFDM symbols in addition to the input arguments from the previous syntax.

Examples

collapse all

Specify carrier configuration parameters.

carrier = nrCarrierConfig;

Configure PRACH for format A1.

prach = nrPRACHConfig('ConfigurationIndex',106,'SubcarrierSpacing',15);

Generate and display the PRACH OFDM information.

info = nrPRACHOFDMInfo(carrier,prach)
info = struct with fields:
                   Nfft: 1024
             SampleRate: 15360000
    CyclicPrefixLengths: [152 0 144 0 144 0 152 0 144 0 144 0 0 0]
           GuardLengths: [0 0 0 0 0 0 0 0 0 0 0 0 0 144]
          SymbolLengths: [1x14 double]
           OffsetLength: 0
              Windowing: 72

Set carrier configuration parameters, specifying a subcarrier spacing of 60 kHz.

carrier = nrCarrierConfig('SubcarrierSpacing',60);

Configure and generate PRACH symbols.

prach = nrPRACHConfig;

Generate and display the PRACH OFDM information, specifying the number of samples over which the OFDM modulator applies windowing and overlapping of OFDM symbols.

samples = 95;
info = nrPRACHOFDMInfo(carrier,prach,'Windowing',samples)
info = struct with fields:
                   Nfft: 49152
             SampleRate: 61440000
    CyclicPrefixLengths: 6336
           GuardLengths: 5952
          SymbolLengths: 61440
           OffsetLength: 0
              Windowing: 95

Input Arguments

collapse all

Carrier configuration parameters for a specific OFDM numerology, specified as an nrCarrierConfig object. The function uses only these properties of this input.

Number of RBs in the carrier resource grid, specified as an integer from 1 to 275. The default value of 52 corresponds to the maximum number of RBs of a 10 MHz carrier with 15 kHz SCS.

Data Types: double

Subcarrier spacing in kHz, for all channels and reference signals of the carrier, specified as 15, 30, 60, 120, or 240.

Data Types: double

Cyclic prefix length, specified as one of these options.

  • 'normal' — Use this value to specify normal cyclic prefix. This option corresponds to 14 OFDM symbols in a slot.

  • 'extended' — Use this value to specify extended cyclic prefix. This option corresponds to 12 OFDM symbols in a slot. For the numerologies specified in TS 38.211 Section 4.2, extended cyclic prefix length applies for only 60 kHz subcarrier spacing.

Data Types: char | string

PRACH configuration parameters, specified as an nrPRACHConfig object. The function uses only these properties of this input.

Frequency range, specified as 'FR1' or 'FR2'.

Use this property together with the DuplexMode property to specify these PRACH configuration tables from TS 38.211.

  • To specify Table 6.3.3.2-2, set FrequencyRange to 'FR1' and DuplexMode to 'FDD' or 'SUL'.

  • To specify Table 6.3.3.2-3, set FrequencyRange to 'FR1' and DuplexMode to 'TDD'.

  • To specify Table 6.3.3.2-4, set FrequencyRange to 'FR2' and DuplexMode to 'TDD'.

Data Types: char | string

Duplex mode for uplink transmission, specified as one of these values:

  • 'FDD' — Use this value to specify frequency division duplex (FDD) mode for paired spectrum.

  • 'TDD' — Use this value to specify time division duplex (TDD) mode for unpaired spectrum.

  • 'SUL' — Use this value to specify supplementary uplink.

Use this property together with the FrequencyRange property to specify these PRACH configuration tables from TS 38.211:

  • To specify Table 6.3.3.2-2, set FrequencyRange to 'FR1' and DuplexMode to 'FDD' or 'SUL'.

  • To specify Table 6.3.3.2-3, set FrequencyRange to 'FR1' and DuplexMode to 'TDD'.

  • To specify Table 6.3.3.2-4, set FrequencyRange to 'FR2' and DuplexMode to 'TDD'.

Data Types: char | string

Time resource of PRACH preamble, specified as an integer from 0 to 255. This property specifies a configuration index from Tables 6.3.3.2-2 to 6.3.3.2-4 in TS 38.211. Properties FrequencyRange and DuplexMode determine the actual configuration table to consider.

This property is the higher layer parameter prach-ConfigurationIndex.

Data Types: double

Subcarrier spacing for the PRACH in kHz, specified as 1.25, 5, 15, or 30 for frequency range FR1 and 60 or 120 for frequency range FR2.

Set this property in relation to the preamble format property Format. To identify valid preamble format and subcarrier spacing combinations, see the LongPreambleFormats and ShortPreambleFormats fields of the Tables property. For more information, see Table 6.3.3.1-1 for long preambles and Table 6.3.3.1-2 for short preambles.

Data Types: double

PRACH slot number, specified as a nonnegative integer. You can set NPRACHSlot to a value larger than the number of slots per frame. For example, you can set this value using transmission loop counters in a MATLAB® simulation. In this case, you might have to ensure that the property value is modulo the number of slots per frame in a calling code.

Data Types: double

Number of time-domain samples over which the function applies raised cosine windowing and overlapping of OFDM symbols, specified as a nonnegative integer or [].

If this input as [], the function sets this input to the maximum value E that does not impact error vector magnitude (EVM) tests, as specified in Annexes F.5.5 of [2] and [3]. E is equal to value of floor((NCPW) × info.NfftNFFT, nominal), where NCP, W, and NFFT, nominal are the values in the table columns labeled "Cyclic prefix length", "EVM window length", and "FFT size", respectively.

Data Types: double

Output Arguments

collapse all

OFDM information, returned as a structure containing these fields.

FieldsValuesDescription
NfftPositive integerNumber of FFT points
SampleRatePositive integerWaveform sample rate
CyclicPrefixLengths1-by-N vector of nonnegative integers, where N is the number of OFDM symbols in a PRACH slotCyclic prefix lengths of each OFDM symbol, in samples
GuardLengths1-by-N vector of positive integers, where N is the number of OFDM symbols in a PRACH slotGuard lengths of OFDM symbols, in samples
SymbolLengths1-by-N vector of nonnegative integers, where N is the number of OFDM symbols in a PRACH slotOFDM symbol lengths, in samples
OffsetLengthNonnegative integerLength, in samples, of the initial time offset between the start of the configured PRACH slot period to the start of the cyclic prefix
WindowingNonnegative integerNumber of time-domain samples over which the function applies raised cosine windowing and overlapping of OFDM symbols

For long formats, for which the LRA property of the prach input is 839, the first slot of a PRACH preamble can occur part of the way through the nominal PRACH slot period. In this case, the function increases the value of the OffsetLength field, which ensures that the OFDM waveform spans the entire active PRACH preamble. To balance these slots with the nominal PRACH slot period, some inactive PRACH slots have OFDM waveforms that are shorter than the nominal PRACH slot period. The function conveys this by returning the CyclicPrefixLengths and GuardLengths fields as [], corresponding to no OFDM symbols, and setting the OffsetLength field equal to the number of empty subframes required.

Data Types: struct

References

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

[2] 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.

[3] 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.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Introduced in R2020b