Positioning Reference Sequence (PRS)
The positioning reference signal (PRS) is used in 5G-NR systems to estimate the location of the UE in downlink (DL). The
reference signal is generated using DL PRS ID (dlPRSSequenceID), slot-index (slotNumber) and, OFDM symbol index
(ofdmSymbolNumber). The details of PRS generation is provided in Section 7.4.1.7 of [3GPPTS38211_PRS].
Important
The seed (\(c_{init}\)) value is computed using dlPRSSequenceID, slotNumber and ofdmSymbolNumber.
If slotNumber and symbolNumber are scalar:
dlPRSSequenceID = 23 # DL PRS ID
slotNumber = 5 # slot Index where PRS is loaded
ofdmSymbolNumber = 4 # ofdm symbol Index
prsLength = 600 # PRS length per ofdm symbol Index
prsObject = PRS(dlPRSSequenceID, slotNumber, ofdmSymbolNumber)
prsSequence = prsObject(prsLength)
If slotNumber is scalar and symbolNumber is NumPy Array:
dlPRSSequenceID = 1075 # DL PRS ID
slotNumber = 5 # slot Index where PRS is loaded
ofdmSymbolNumber = np.array([2,3,4,5,6]) # ofdm symbol Index
prsLength = 600 # PRS length per ofdm symbol Index
prsObject = PRS(dlPRSSequenceID, slotNumber, ofdmSymbolNumber)
prsSequence = prsObject(prsLength)
If slotNumber and symbolNumber are NumPy Array:
dlPRSSequenceID = 187 # DL PRS ID
slotNumber = np.array([0,0,1,1]) # slot Index where PRS is loaded
ofdmSymbolNumber = np.array([2,3,2,3]) # ofdm symbol Index
prsLength = 864 # PRS length per ofdm symbol Index
prsObject = PRS(dlPRSSequenceID, slotNumber, ofdmSymbolNumber)
prsSequence = prsObject(prsLength)
The details about the input-output interface of the SSS implementation is provided below.
- class toolkit5G.SequenceGeneration.PRS(dlPRSSequenceID, slotNumber, ofdmSymbolNumber)[source]
Generates the positioning reference sequence (PRS) for 5G system. The constructor expects PRS resource ID, slot index, and symbol index. The call method expect the length to be generated for the PRS and returns 1 or multiple PS sequences based on the size of slot index and symbol index passed as input. The details about the implementation of the sequence are provided in section 7.4.1.7 of [3GPPTS38211_PRS].
- Parameters:
dlPRSSequenceID (int) – Defines the dl PRS sequence ID \(\in \{0,1,...,4095\}\).
slotNumber (int or NumPy array, np.integer) – Defines the slot number within a frame \(n_{s,f}^{\mu} \in \{0,1,2,..,10*2^{\mu}-1\}\) where \({\mu = \frac{\Delta f}{15 kHz}}\).
ofdmSymbolNumber (int or NumPy array, np.integer) – Defines the OFDM symbol number (\(l\)), within the slot \(\in \{0,1,2,..,13\}\).
- Input:
length (int) – Defines length of the PN Sequence
- Output:
[…, length], np.int8 – Positioning reference sequence (PRS).
- Raises:
ValueError – [Error]:
lengthof PN Sequence must be a positive (>0) integer!ValueError – [Error-PRS]:
dlPRSSequenceIDmust be in interval [0 4095]!ValueError – [Error-PRS]:
dlPRSSequenceIDmust be integer!ValueError – [Error-PRS]:
slotNumbermust be an integer or NumPy array of integers!ValueError – [Error-PRS]:
slotNumbermust be non-negative!ValueError – [Error-PRS]:
symbolNumber(OFDM symbol number) must be integer or ndarray of int!ValueError – [Error-PRS]:
symbolNumber(OFDM symbol number) must be in the range [0-13]!ValueError – [Error-PRS]: Size of
symbolNumberandsymbolNumberis inconsistent!
- References: