lteULFrameOffsetNPUSCH
Syntax
Description
[
performs slot synchronization on offset
,corr
] = lteULFrameOffsetNPUSCH(ue
,chs
,waveform
)waveform
, the input time-domain
waveform, by using the narrowband physical uplink shared channel (NPUSCH) demodulation
reference signal (DRS) symbols for user equipment (UE) settings ue
and
channel transmission configuration chs
.
The function returns offset
, the number of samples between the
start of waveform
and the sample within waveform
at which the NPUSCH DRS symbols begin. The function also returns corr
,
the signal that the function uses to calculate offset
.
The offset estimation process comprises these steps.
Extract the timing of the peak correlation between
waveform
and internally generated reference waveforms containing the NPUSCH DRS symbols.Calculate the correlation for each antenna.
Compute the offset for the antenna with the strongest correlation.
Examples
Estimate NPUSCH DRS Timing Offset
Synchronize and demodulate a transmission containing NPUSCH DRS symbols.
Configure UE-specific settings.
ue = struct('NNCellID',0,'NBULSubcarrierSpacing','15kHz','NSlot',0);
Specify a channel transmission configuration.
chs = struct('NPUSCHFormat','Data','NRUsc',1,'NULSlots',16,'NRU',1, ... 'NRep',1,'NBULSubcarrierSet',0,'Modulation','QPSK');
Generate the NPUSCH DRS symbols and allocate them to the appropriate locations on a resource grid.
grid = lteNBResourceGrid(ue); grid(lteNPUSCHDRSIndices(ue,chs)) = lteNPUSCHDRS(ue,chs);
Generate a waveform by performing single-carrier frequency-division multiple access (SC-FDMA) modulation on the NPUSCH DRS symbols.
txWaveform = lteSCFDMAModulate(ue,chs,grid);
Create a received waveform by adding a time delay of 11 samples.
delay = 11; waveform = [zeros(delay,1); txWaveform];
Specify an empty encoder state and calculate the timing offset in samples. Confirm that the result matches the added delay.
stateIn = struct(); [offset,corr] = lteULFrameOffsetNPUSCH(ue,chs,waveform,stateIn); disp(isequal(offset,delay))
1
Input Arguments
ue
— UE-specific settings
structure
UE-specific settings, specified as a structure containing these fields.
Field | Values | Description | Data Types |
---|---|---|---|
NBULSubcarrierSpacing | '3.75kHz' , '15kHz' | NB-IoT uplink subcarrier spacing To set a subcarrier
spacing of 3.75 kHz, specify this field as | char , string |
Windowing | Nonnegative even integer Default depends on the value
of the | Number of time-domain samples over which the function applies windowing and overlapping of SC-FDMA symbols | double |
NNCellID | Integer in the interval [0, 503] | Narrowband physical layer cell identity (PCI) | double |
NFrame | 0 (default), nonnegative integer | Frame number | double |
NSlot | Nonnegative integer | Slot number When you specify the
| double |
Data Types: struct
chs
— Channel transmission configuration
structure
Channel transmission configuration, specified as a structure containing these fields.
Field | Values | Description | Data Types |
---|---|---|---|
NPUSCHFormat | 'Data' , 'Control' | NPUSCH format To indicate that the NPUSCH carries
narrowband uplink shared channel (UL-SCH) data, specify this field as
| char , string |
NRUsc | 1 , 3 , 6 ,
12 | Number of consecutive subcarriers in a resource unit (RU) If you specify the | double |
NRep | 1 , 2 , 4 ,
8 , 16 , 32 ,
64 , 128 | Number of repetitions for a codeword | double |
NRU | 1 , 2 , 3 ,
4 , 5 , 6 ,
8 , 10 | Number of RUs | double |
NULSlots | 2 , 4 , 8 ,
16 | Number of slots per RU If you specify the
If you
specify the
| double |
BaseSeqIdx | Integer in the interval [0, 29]. Default depends on the value of the
NRUsc field. | Multitone NPUSCH DRS base sequence index
Dependencies.
To enable this field, specify the | double |
SeqGroupHopping | 'On' (default), 'Off' | To enable sequence-group hopping, specify this field as
'On' . To disable sequence group hopping, specify this
field as 'Off' . For more information, see section 5.5.1.3
of [1]. | char , string |
SeqGroup | 0 (default), integer in the interval [0, 29] | Sequence-group assignment for sequence shift pattern calculation. For more information, see section 10.1.4.1.3 of [1]. Dependencies. To enable
this field, specify the | double |
CyclicShift | 0 (default), integer in the interval [0, 3] | Cyclic shift
Dependencies.
To enable this field, specify the | double |
NBULSubcarrierSet | Integer in the interval [0, 47], vector of integers in the interval [0, 11] | NB-IoT uplink subcarrier indices, in zero-based form, specified as one of these values:
| double |
Modulation | 'BPSK' , 'QPSK' ,
'16QAM' | Modulation type To enable binary phase-shift keying
(BPSK), specify this field as If you specify the
| char , string |
SlotIdx | Integer in the interval [0, (chs.NRU ×
chs.NULSlots × chs.NRep ) –
1] | Index of a slot within a bundle, in zero-based form | double |
Data Types: struct
waveform
— Time-domain waveform
complex-valued matrix
Time-domain waveform, specified as a complex-valued matrix of size T-by-R.
T is the number of time-domain samples.
R is the number of receive antennas.
You can generate this input by performing SC-FDMA modulation on a resource matrix
using the lteSCFDMAModulate
function. Alternatively,
you can generate this input by using either of these channel model functions: lteFadingChannel
or lteMovingChannel
.
Data Types: double
Complex Number Support: Yes
stateIn
— Encoder state
struct()
(default) | structure
Encoder state for NPUSCH DRS generation, specified as a structure. This input
corresponds to the stateIn
input of the lteNPUSCHDRS
function. This
input contains the internal state of each transport block in these fields.
Field | Values | Description | Data Types |
---|---|---|---|
SlotIdx | Integer in the interval [0, (chs.NRU ×
chs.NULSlots × chs.NRep ) –
1] | Index of a slot within a bundle, in zero-based form | double |
InitNSlot | Nonnegative integer | Slot number for scrambling sequence initialization | double |
InitNFrame | Nonnegative integer | Frame number for scrambling sequence initialization | double |
EndOfBlk | Logical 1 (true ) or
0 (false ) | To indicate that the transmission has reached the end of a transport
block, specify this field as 1 (true ).
Otherwise, specify this field as 0
(false ). | logical |
EndOfTx | Logical 1 (true ) or
0 (false ) | To indicate that the transmission has reached the end of a bundle,
specify this field as 1 (true ).
Otherwise, specify this field as 0
(false ). | logical |
GhpNSlot | Nonnegative integer | Slot number for the first slot in the RU Dependencies. To enable this field, specify the
| double |
Data Types: struct
Output Arguments
offset
— Timing offset
integer
corr
— Signal used to estimate timing offset
complex-valued matrix
Signal used to estimate timing offset, returned as a complex-valued matrix of the
same dimensions as the waveform
input.
Data Types: double
Complex Number Support: Yes
References
[1] 3GPP TS 36.211. “Physical channels and modulation.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network; Evolved Universal Terrestrial Radio Access (E-UTRA). https://www.3gpp.org.
Version History
Introduced in R2020aR2023b: 16-QAM
Set the Modulation
field of the chs
structure to
'16QAM'
to specify this modulation scheme.
See Also
Functions
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)