lteULChannelEstimateNPUSCH
Syntax
Description
[
estimates the channel between transmit and receive antennas for user equipment (UE) settings
hEst
,noiseEst
] = lteULChannelEstimateNPUSCH(ue
,chs
,rxGrid
)ue
, channel transmission configuration chs
, and
received resource grid rxGrid
. The function returns
hEst
, the estimated channel, and noiseEst
, the
estimated noise power spectral density.
The function calculates hEst
and noiseEst
by
averaging least-squares estimates of the narrowband physical uplink shared channel (NPUSCH)
demodulation reference signal (DRS) symbols over time and copying these symbols across the
allocated resource elements (REs) within the time-frequency grid.
Examples
Estimate Uplink Channel Characteristics
Perform NPUSCH channel estimation on a received resource grid.
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');
Configure the channel estimation type and parameters.
cec = struct('FreqWindow',7,'TimeWindow',1,'InterpType','cubic','PilotAverage','UserDefined');
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.
waveform = lteSCFDMAModulate(ue,chs,grid);
Perform SC-FDMA demodulation, assuming that the received waveform matches the transmitted waveform.
rxGrid = lteSCFDMADemodulate(ue,chs,waveform);
Estimate the channel.
[hEst,noiseEst] = lteULChannelEstimateNPUSCH(ue,chs,cec,rxGrid);
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 |
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 | 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 If
you specify the If you specify the
If you specify
the | double |
Data Types: struct
rxGrid
— Received resource grid
complex-valued matrix
Received resource grid, specified as a complex-valued matrix of size T-by-P.
T is the number of time-domain samples.
P is the number of transmit antennas.
You can generate this input by performing SC-FDMA demodulation on a received
resource grid using the lteSCFDMADemodulate
function.
Data Types: double
Complex Number Support: Yes
cec
— Channel estimation configuration
structure
Channel estimation configuration, specified as a structure containing these fields.
Field | Values | Description | Data Types |
---|---|---|---|
FreqWindow | Positive odd integer, positive multiple of 12 | Size of window for frequency averaging, in resource elements | double |
TimeWindow | Positive odd integer | Size of window for time averaging, in resource elements | double |
InterpType | 'nearest' , 'linear' ,
'natural' , 'cubic' ,
'v4' , 'none' | Type of interpolation between pilot symbols, specified as one of these values.
For more information, see the | char , string |
PilotAverage | 'TestEVM' , 'UserDefined' | Type of pilot averaging If you specify this field as
When you specify this
field as | char , string |
Data Types: struct
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
hEst
— Channel estimate
complex-valued array
Channel estimate, returned as a complex-valued array of size K-by-L-by-R.
K is the total number of subcarriers.
L is the number of SC-FDMA symbols.
R is the number of receive antennas.
Data Types: double
Complex Number Support: Yes
noiseEst
— Noise power spectral density
real-valued scalar
Noise power spectral density, returned as a real-valued scalar. This output represents the power spectral density of the noise present on the estimated channel response coefficients.
Data Types: double
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.
[2] 3GPP TS 36.101. “Evolved Universal Terrestrial Radio Access (E-UTRA); User Equipment (UE) radio transmission and reception.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network. https://www.3gpp.org.
Version History
Introduced in R2020a
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 (한국어)