Main Content

nrPRACHOFDMInfo

Get PRACH OFDM information

Since R2020b

Description

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.

example

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: [1176 1024 1168 1024 1168 1024 1176 1024 1168 1024 1168 1024 1024 1168]
           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

Generate PRACH OFDM information for multiple PRACH slots. The example shows that the actual PRACH slot duration deviates from the nominal duration to ensure that the slot spans the entire active PRACH preambles.

Specify carrier configuration parameters.

carrier = nrCarrierConfig;

Configure PRACH for format 1.

prach = nrPRACHConfig;
prach.DuplexMode = 'FDD';
configurationIndex = 47; % Format 1
prach.ConfigurationIndex = configurationIndex;

Obtain the nominal PRACH slot duration.

totSubframes = prach.SubframesPerPRACHSlot
totSubframes = 
3

Obtain the starting subframes for the active PRACH preambles from the PRACH configuration tables.

configTable = prach.Tables.ConfigurationsFR1PairedSUL;
subframeNumber = configTable.SubframeNumber{configurationIndex+1,:}
subframeNumber = 1×2

     1     6

Display the PRACH OFDM information for PRACH slot number 0. The first nominal PRACH slot period, lasting totSubframes number of subframes, spans subframes 0, 1, and 2. However, according to TS 38.211 Table 6.3.3.2-2, the first active PRACH preamble starts in subframe 1 and ends in subframe 3. To ensure that the PRACH slot spans the whole active preamble, the PRACH slot must contain one additional subframe. Therefore, the value of OffsetLength is equal to one subframe.

prach.NPRACHSlot = 0; % Default value
ofdmInfo = nrPRACHOFDMInfo(carrier,prach);
disp(ofdmInfo);
                   Nfft: 12288
             SampleRate: 15360000
    CyclicPrefixLengths: [10512 0]
           GuardLengths: [0 10992]
          SymbolLengths: [22800 23280]
           OffsetLength: 15360
              Windowing: 430

Display the PRACH OFDM information for PRACH slot number 1. The lengths of the symbol, cyclic prefix, and guard are empty. Therefore, the corresponding waveform lasts zero subframes. In this case, the PRACH slots are balanced with the nominal PRACH slot period. The value of OffsetLength is zero.

prach.NPRACHSlot = 1;
ofdmInfo = nrPRACHOFDMInfo(carrier,prach);
disp(ofdmInfo);
                   Nfft: 12288
             SampleRate: 15360000
    CyclicPrefixLengths: [1x0 double]
           GuardLengths: [1x0 double]
          SymbolLengths: [1x0 double]
           OffsetLength: 0
              Windowing: 430

Display the PRACH OFDM information for PRACH slot number 2. The first subframe of the PRACH slot is subframe 4 and spans subframes 4, 5, and 6, without the additional subframes. However, according to TS 38.211, the first active PRACH preamble starts in subframe 6 and occupies subframes 6, 7, and 8. To ensure that the PRACH slot spans the whole active preamble, the PRACH slot must contain two additional subframes. Therefore, the value of OffsetLength is equal to two subframes.

prach.NPRACHSlot = 2;
ofdmInfo = nrPRACHOFDMInfo(carrier,prach);
disp(ofdmInfo);
                   Nfft: 12288
             SampleRate: 15360000
    CyclicPrefixLengths: [10512 0]
           GuardLengths: [0 10992]
          SymbolLengths: [22800 23280]
           OffsetLength: 30720
              Windowing: 430

Input Arguments

collapse all

Carrier configuration parameters for a specific OFDM numerology, specified as an nrCarrierConfig object. Only these object properties are relevant for this function.

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

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 you do not specify this input, or if you specify it as [], the function sets this input to the maximum value E that does not impact error vector magnitude (EVM) tests, as specified in TS 38.101-1 Annex F.5.5 and TS 38.101-2 Annex F.5.5. 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

Version History

Introduced in R2020b