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