lteULPrecode

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

Описание

пример

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 структуру строения, получите индексы 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);

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

Задайте строение NB-IoT с десятью пазами и интервалом между поднесущими 15 кГц.

NSlots = 10;
ue.NBULSubcarrierSpacing = '15kHz';

Установите местоположения поднесущей и сгенерируйте случайные биты для передачи.

chs.NBULSubcarrierSet = 0:2;
bits = randi([0,1],7*NSlots*length(chs.NBULSubcarrierSet)*2,1);

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

symbols = lteSymbolModulate(bits,'QPSK');
precodedSymbols = lteULPrecode(symbols,length(chs.NBULSubcarrierSet),'Subcarrier');

Сгенерируйте узкополосный ресурсный массив

grid = repmat(lteNBResourceGrid(ue),1,NSlots);
grid(chs.NBULSubcarrierSet + 1,:) = reshape(precodedSymbols,length(chs.NBULSubcarrierSet),7*NSlots);

Сгенерируйте модулированную форму волны SC-FDMA для заданного строения и отобразите ее размер.

waveform = lteSCFDMAModulate(ue,chs,grid);
size(waveform)
ans = 1×2

        9600           1

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

Задайте строение NB-IoT с 16 пазами и интервалом между поднесущими 3,75 кГц.

NSlots = 16;
ue.NBULSubcarrierSpacing = '3.75kHz';

Задайте строение передачи по каналу.

chs = struct('NULSlots',4,'NRU',1,'NRep',4,'SlotIdx',0, ...
    'Modulation','BPSK','NBULSubcarrierSet',41);

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

bits = randi([0,1],7*NSlots*length(chs.NBULSubcarrierSet),1);
symbols = lteSymbolModulate(bits,chs.Modulation);
precodedSymbols = lteULPrecode(symbols,length(chs.NBULSubcarrierSet),'Subcarrier');

Сгенерируйте узкополосный ресурсный массив

grid = repmat(lteNBResourceGrid(ue),1,NSlots);
grid(chs.NBULSubcarrierSet+1,:) = reshape(precodedSymbols,length(chs.NBULSubcarrierSet),7*NSlots);

Сгенерируйте модулированную форму волны SC-FDMA для заданного строения и отобразите ее размер.

waveform = lteSCFDMAModulate(ue,chs,grid);
size(waveform)
ans = 1×2

       61440           1

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

свернуть все

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

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

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

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

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

Зависимости

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

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

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

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

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

свернуть все

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

Размерность и размер матриц входных и выходных символов одинаковы.

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

Введенный в R2014a