out = lteULDeprecode(in,nrb)
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.
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.