exponenta event banner

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

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

свернуть все

Символы комплексной модуляции, задаваемые как комплекснозначная матрица NSym-by-NL. NSym - количество символов, а NL - количество слоев.

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

Число блоков ресурсов, указанное как неотрицательное целое число.

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

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

Зависимости

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

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

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

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

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

свернуть все

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

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

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

Представлен в R2014a