lteULPrecode

Предварительное кодирование SC-FDMA

Синтаксис

out = lteULPrecode(...)
out = lteULPrecode(in,nrb)
out = lteULPrecode(in,n,resourcetype)

Описание

out = lteULPrecode(...) выполняет предварительное кодирование SC-FDMA комплексных символов модуляции для PUSCH или настройки NPUSCH.

пример

out = lteULPrecode(in,nrb) выполняет предварительное кодирование SC-FDMA комплексных символов модуляции in для PUSCH или настройки NPUSCH с пропускной способностью блоков ресурса nrb.

out = lteULPrecode(in,n,resourcetype) выполняет предварительное кодирование SC-FDMA комплексных символов модуляции in для PUSCH или настройки NPUSCH с пропускной способностью блоков ресурса n или поднесущих.

Примеры

свернуть все

Предварительное кодирование UL является шагом в PUSCH обработка цепочки. Цепочка включает скремблирование, отображение символа, предварительное кодирование UL, отображение RE и модуляцию SC-FDMA.

Создайте конфигурационную структуру UE-specific, получите индексы PUSCH и сгенерируйте немного потока, измеренного согласно конфигурационной структуре.

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

Выполните скремблирование, модуляцию символа и предварительное кодирование UL.

scrBits = lteULScramble(ue,bits);
symbols = lteSymbolModulate(scrBits,ue.PUSCH.Modulation);
precodedSymbols = lteULPrecode(symbols,ue.NULRB);

Сгенерируйте сетку отображения ресурса, заполните сетку с предварительно закодированными символами и выполните модуляцию SC-FDMA.

grid = lteULResourceGrid(ue);
grid(puschInd) = precodedSymbols;
[timeDomainSig,infoScfdma] = lteSCFDMAModulate(ue,grid);

Восходящий канал NB-IoT с тремя тонами цепочка обработки SC-FDMA: отображение символа, предварительное кодирование UL и модуляция SC-FDMA.

NSlots = 10; % Number of slots in the generated waveform
ue.NBULSubcarrierSpacing = '15kHz'; % NB-IoT with subcarrier spacing 15kHz
chs.NBULSubcarrierSet = 0:2; % Subcarrier locations
bits = randi([0,1],7*NSlots*length(chs.NBULSubcarrierSet)*2,1);
symbols = lteSymbolModulate(bits,'QPSK');
precodedSymbols = lteULPrecode(symbols,length(chs.NBULSubcarrierSet),'Subcarrier');
reGrid = zeros([12 7*NSlots]); % Initialize the grid
reGrid(chs.NBULSubcarrierSet+1,:) = reshape(precodedSymbols,length(chs.NBULSubcarrierSet),7*NSlots);
waveform = lteSCFDMAModulate(ue,chs,reGrid);
waveform = waveform(1:5)
waveform = 5×1 complex

   0.0138 + 0.0017i
   0.0137 - 0.0017i
   0.0128 - 0.0050i
   0.0112 - 0.0079i
   0.0089 - 0.0104i

Восходящий канал Single-tone NB-IoT цепочка обработки SC-FDMA: отображение символа, предварительное кодирование UL и модуляция SC-FDMA.

NSlots = 16; % Number of slots in the generated waveform
ue.NBULSubcarrierSpacing = '3.75kHz'; % NB-IoT with subcarrier spacing 3.75kHz
chs.NULSlots = 4;
chs.NRU = 1;
chs.NRep = 4;
chs.SlotIdx = 0;
chs.Modulation = 'BPSK';
chs.NBULSubcarrierSet = 41; % Subcarrier location, should be within range 0...47
bits = randi([0,1],7*NSlots*length(chs.NBULSubcarrierSet),1);
symbols = lteSymbolModulate(bits,chs.Modulation);
precodedSymbols = lteULPrecode(symbols,length(chs.NBULSubcarrierSet),'Subcarrier');
reGrid = zeros([48 7*NSlots]); % Initialize the grid
reGrid(chs.NBULSubcarrierSet+1,:) = reshape(precodedSymbols,length(chs.NBULSubcarrierSet),7*NSlots);
waveform = lteSCFDMAModulate(ue,chs,reGrid);
waveform = waveform(1:5) 
waveform = 5×1 complex

   0.0017 + 0.0009i
   0.0015 + 0.0013i
   0.0012 + 0.0016i
   0.0008 + 0.0018i
   0.0004 + 0.0019i

Входные параметры

свернуть все

Комплексные символы модуляции, заданные как N Sym-by-NL матрица комплексных символов. N Sym является количеством символов и N L, является количеством слоев.

Типы данных: double
Поддержка комплексного числа: Да

Количество блоков ресурса, заданных как неотрицательное целое число.

Типы данных: double

Количество блоков ресурса или поднесущих, заданных как неотрицательное целое число.

Зависимости

Если resourcetype является 'PRB', то n является количеством блоков ресурса. Если resourcetype является 'Subcarrier', то n является количеством поднесущих.

Типы данных: double

Тип ресурса, заданный как 'PRB' или 'Subcarrier'.

Типы данных: char | string

Выходные аргументы

свернуть все

Предварительно закодированный PUSCH символы вывода, возвращенные как N Sym-by-NL матрица комплексных символов. N Sym является количеством символов и N L, является количеством слоев.

Размерность и размер матриц символа ввода и вывода являются тем же самым.

Смотрите также

| | |

Введенный в R2014a