SC-FDMA deprecoding


  • out = lteULDeprecode(in,nrb)



out = lteULDeprecode(in,nrb) performs SC-FDMA deprecoding of the complex modulation symbols in for PUSCH configuration with a bandwidth of nrb resource blocks. in is a Msymb-by-NLayers matrix of values and out has the same dimensions.


collapse all

Deprecode Symbols After SC-FDMA Demodulation

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

in — Complex modulation symbolsnumeric matrix

Complex modulation symbols, specified as a numeric matrix of size Msymb-by-NLayers.

Data Types: double | single
Complex Number Support: Yes

nrb — Number of resource blocksscalar integer

Number of resource blocks, specified as a scalar integer.

Data Types: double

Output Arguments

collapse all

out — Deprecoded PUSCH output symbolsnumeric matrix

Deprecoded PUSCH output symbols, returned as a numeric matrix of size Msymb-by-NLayers.

Data Types: double
Complex Number Support: Yes

Introduced in R2014a

Was this topic helpful?