Main Content

lteULDeprecode

SC-FDMA deprecoding

Description

out = lteULDeprecode(in,nrb) performs SC-FDMA deprecoding of the complex modulation symbols in for PUSCH or NPUSCH configuration with a bandwidth of nrb resource blocks.

example

out = lteULDeprecode(in,n,resourcetype) performs SC-FDMA deprecoding of the complex modulation symbols in for PUSCH or NPUSCH configuration with a bandwidth of n resource blocks or subcarriers.

Examples

collapse all

Deprecode symbols after SC-FDMA demodulation and symbol extraction from the received resource grid.

Create an UL RMC configuration structure, resource grid, and bit stream.

rmc = lteRMCUL('A3-2');
[puschInd, info] = ltePUSCHIndices(rmc,rmc.PUSCH);
ueDim = lteULResourceGridSize(rmc);
bits = randi([0,1],info.G,rmc.PUSCH.NLayers);

Scramble bits, create modulated symbols, and perform UL precoding and resource mapping.

scrBits = lteULScramble(rmc,bits);
symbols = lteSymbolModulate(scrBits,rmc.PUSCH.Modulation);
precodedSymbols = lteULPrecode(symbols,rmc.NULRB);
grid = lteULResourceGrid(rmc);
grid(puschInd) = precodedSymbols;

Perform SC-FDMA modulation and demodulation.

[timeDomainSig,infoScfdma] = lteSCFDMAModulate(rmc,grid);
rxGrid = lteSCFDMADemodulate(rmc,timeDomainSig);

Extract PUSCH from grid and perform UL deprecoding.

rxPrecoded = rxGrid(puschInd);
dePrecodedSymbols = lteULDeprecode(rxPrecoded,rmc.NULRB);

Input Arguments

collapse all

Complex modulation symbols, specified as an NSym-by-NL matrix of complex symbols. NSym is the number of symbols and NL is the number of layers.

Data Types: double
Complex Number Support: Yes

Number of resource blocks, specified as a nonnegative integer.

Data Types: double

Number of resource blocks or subcarriers, specified as a nonnegative integer.

Dependencies

If the resourcetype is 'PRB', then n is the number of resource blocks. If the resourcetype is 'Subcarrier', then n is the number of subcarriers.

Data Types: double

Resource type, specified as 'PRB' or 'Subcarrier'.

Data Types: char | string

Output Arguments

collapse all

Deprecoded PUSCH output symbols, returned as an NSym-by-NL matrix of complex symbols. NSym is the number of symbols, and NL is the number of layers.

The dimension and size of the input and output symbol matrices are the same.

Version History

Introduced in R2014a