Предварительное кодирование SC-FDMA
выполняет предварительное кодирование SC-FDMA символов комплексной модуляции out = lteULPrecode(in,n,resourceType)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
in - Символы комплексной модуляцииСимволы комплексной модуляции, задаваемые как комплекснозначная матрица NSym-by-NL. NSym - количество символов, а NL - количество слоев.
Типы данных: double
Поддержка комплексного номера: Да
nrb - Количество блоков ресурсовЧисло блоков ресурсов, указанное как неотрицательное целое число.
Типы данных: double
n - Количество блоков ресурсов или поднесущихЧисло блоков ресурсов или поднесущих, указанных как неотрицательное целое число.
Если resourceType вход - 'PRB', то n - количество блоков ресурсов. Если resourceType является 'Subcarrier', то n - количество поднесущих.
Типы данных: double
resourceType - Тип ресурса'PRB' | 'Subcarrier'Тип ресурса, указанный как 'PRB' или 'Subcarrier'.
Типы данных: char | string
out - Предварительно закодированные символы PUSCHПредварительно кодированные символы PUSCH, возвращаемые в виде комплексной матрицы NSym-by-NL. NSym - количество символов, а NL - количество слоев.
Размеры и размеры матриц входных и выходных символов одинаковы.
Типы данных: double
Поддержка комплексного номера: Да
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.