deprecoding of the complex modulation symbols for PUSCH or NPUSCH
out = lteULPrecode(...)
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);
in— Complex modulation symbols
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.
Complex Number Support: Yes
nrb— Number of resource blocks
Number of resource blocks, specified as a nonnegative integer.
n— Number of resource blocks or subcarriers
Number of resource blocks or subcarriers, specified as a nonnegative integer.
n is the number of resource blocks. If the
n is the
number of subcarriers.
resourcetype— Resource type
Resource type, specified as
out— Deprecoded PUSCH output symbols
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.