Secondary Synchronization Signal for Sidelink (S-SSS)
The sidelink-secondary synchronization signal (S-SSS) is a gold-sequence of length 127 generated using \(N_{ID,1}^{SL}\) and \(N_{ID,2}^{SL}\). It is used for sidelink cell ID-2 detection and frequency synchronization which aims to mitigate the carrier offsets and centre of the S-SSB grid at the sidelink user equipment (UE). The detailed implementation of the S-SSS is provided in [3GPPTS38211_S_SSS].
Important
S-SSS is an constituent of sidelink synchronization signal block (S-SSB). It is loaded in the middle 127 subcarrier (across frequency) of fourth and fifth symbol of the S-SSB.
If \(N_{ID,1}^{SL}\) and \(N_{ID,2}^{SL}\) is scalar:
nID1 = 25 # Cell ID-2 for SSS generation
nID2 = 1 # Cell ID-2 for SSS generation
ssss = S_SSS(nID1, nID2) # Generate PSS object using this cell ID-2.
ssssSequence = ssss() # Generate [1x127] pss sequence using 'sss' object
If \(N_{ID,1}^{SL}\) is scaler and \(N_{ID,2}^{SL}\) is NumPy array:
nID1 = 204 # Cell ID-2 for SSS generation
nID2 = np.array([1,0,1,1]) # Cell ID-2 for SSS generation
ssss = S_SSS(nID1, nID2) # Generate PSS object using this cell ID-2.
ssssSequence = ssss() # Generate [4x127] pss sequence using 'sss' object for each cell-ID2
If \(N_{ID,1}^{SL}\) is NumPy array and \(N_{ID,2}^{SL}\) is scaler:
nID1 = np.array([98, 213]) # Cell ID-2 for SSS generation
nID2 = 2 # Cell ID-2 for SSS generation
ssss = S_SSS(nID1, nID2) # Generate PSS object using this cell ID-2.
ssssSequence = ssss() # Generate [2x127] pss sequence using 'sss' object for each cell-ID2
If \(N_{ID,1}^{SL}\) and \(N_{ID,2}^{SL}\) are NumPy array:
nID1 = np.array([101,45,21]) # Cell ID-2 for SSS generation
nID2 = np.array([ 1, 0, 1]) # Cell ID-2 for SSS generation
ssss = S_SSS(nID1, nID2) # Generate PSS object using this cell ID-2.
ssssSequence = ssss() # Generate [3x127] pss sequence using 'sss' object for each cell-ID2
The details about the input-output interface of the SSS implementation is provided below.
- class toolkit5G.SequenceGeneration.S_SSS(nID1, nID2)[source]
Generates the sidelink secondary synchronization signal (SSS) for 5G system. The constructor expects two parameters as input \(N_{ID,1}^{SL}\) and \(N_{ID,2}^{SL}\). The two IDs can be scaler and/or vector. When both the IDs are vector they should have equal length. The call method returns 1 or multiple SS sequences of length 127 based on the number of \(N_{ID,1}^{SL}\) and \(N_{ID,2}^{SL}\) passed as input. The details about the implementation of the sequence are provided in the document “Physical channels and modulation (Release 17)” TS 38.211 Section 8.4.2.3 version V17.1.0 (2022-03).
Tip
As per 3GPP specifications, cell ID-2 \(N_{ID,1}^{SL} \in \{0, 1, 2, \dots, 335\}\).
Tip
As per 3GPP specifications, cell ID-1 \(N_{ID,2}^{SL} \in \{0, 1\}\).
Note
The physical-layer sidelink synchronization identity is given by \(N_{ID,1}^{SL} + 336 \\times N_{ID,2}^{SL} = N_{ID}^{SL}\).
- Parameters:
nID1 (int or NumPy integer array) – denotes the \(N_{ID,1}^{SL}\). All the values should be taken from the interval \(\{0, 1, 2, \dots, 335\}\).
nID2 (int or NumPy integer array) – denotes the \(N_{ID,2}^{SL}\). All the values should be taken from the interval {0, 1}.
- Input:
None – No inputs Required.
- Output:
(…,127), np.integer – sssSequence of shape \(\text{N} \times 127\) where N is the number of SSS sequences.
Note
If both
nID1
andnID2
are scalar: N(number of SS sequence) = 1.If
nID1
is an array andnID2
is scalar: N(number of SS sequence) = length ofnID1
.If
nID1
is a scalar andnID2
is an array: N(number of SS sequence) = length ofnID2
If
nID1
is an array andnID2
is also an array: N(number of SS sequence) = length ofnID1
or length ofnID2
. In this case length ofnID1
and length ofnID2
must be equal.
- Raises:
ValueError – [Error-S_SSS]: Size of ‘nID1’ and ‘nID2’ is inconsistent!
Warning – [Warning S_SSS]: ‘nID1’ should belong to interval {0, 1, 2, …, 335}
ValueError – [Error S-SSS]: ‘nID1’ must be an integer or integer numpy array!
Warning – [Warning S_SSS]: ‘nID2’ should belong to interval {0, 1}
ValueError – [Error S-SSS]: ‘nID2’ must be an integer or integer numpy array!
- References:
- [3GPPTS38211_S_SSS]
3GPP TS 38.211 “Physical channels and modulation (Release 17)”, V17.1.0 (2022-03).