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-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);

Сгенерируйте модулируемую форму волны 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-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, является количеством слоев.

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

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

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

| | |

Введенный в R2014a