lteSCFDMADemodulate

Демодулируйте с использованием SC-FDMA

Описание

пример

grid = lteSCFDMADemodulate(ue,waveform) возвращает массив ресурсов grid выполнением демодуляции множественного доступа (SC-FDMA) с одной несущей waveform, сигнал временной области для пользовательских настроек (специфичных для UE) ue. Можно использовать этот синтаксис для LTE-демодуляции или NB-IoT многотонной демодуляции, в зависимости от полей, в которых вы указываете ue.

Демодуляция вычисляет одну операцию быстрого преобразования Фурье (FFT) на принятый символ SC-FDMA. Он восстанавливает полученные значения поднесущих, которые затем используются для создания каждого столбца grid. БПФ позиционируется частично через циклический префикс, чтобы обеспечить степень задержки канала, избегая перекрытия между соседними символами ортогонального частотного мультиплексирования (OFDM). БПФ входа также сдвигается на половину поднесущей. Конкретное положение БПФ, выбранного здесь, избегает перекрытия символа SC-FDMA, используемого в lteSCFDMAModulate функция. Поскольку БПФ выполняется вдали от исходной нули-фазовой точки на переданных поднесущих, к каждой поднесущей после БПФ применяется фаза коррекция.

grid = lteSCFDMADemodulate(ue,waveform,cpfraction) выполняет SC-FDMA демодуляцию входного сигнала с заданным положением демодуляции относительно циклического префикса cpfraction.

пример

grid = lteSCFDMADemodulate(ue,chs,waveform) выполняет SC-FDMA демодуляцию входной формы волны и узкополосной информации PUSCH (NPUSCH), заданной chs. Можно использовать этот синтаксис для LTE, однотоновых NB-IoT и многотоновых строений NB-IoT. Когда вы используете этот синтаксис без настройки ue для NB-IoT функция игнорирует chs.

пример

grid = lteSCFDMADemodulate(ue,chs,waveform,cpfraction) выполняет демодуляцию SC-FDMA формы волны для указанной информации NPUSCH и положения демодуляции. Можно использовать этот синтаксис для LTE, однотоновых NB-IoT и многотоновых строений NB-IoT. Когда вы используете этот синтаксис без настройки ue для NB-IoT функция игнорирует chs.

Примеры

свернуть все

Выполните демодуляцию SC-FDMA ссылки канала фиксированной A3-2 (FRC) восходящей линии связи.

Инициализируйте настройки конкретного UE как A3-2 фиксированного опорного канала путем определения соответствующего строения в lteRMCUL функция.

ue = lteRMCUL('A3-2');

Задайте форму волны, которая будет демодулирована с помощью lteRMCULTool функция. Получите массив ресурсов путем демодуляции SC-FDMA.

waveform = lteRMCULTool(ue,randi([0,1],ue.PUSCH.TrBlkSizes(1),1));
grid = lteSCFDMADemodulate(ue,waveform);

Выполните демодуляцию восходящего канала NB-IoT с одним тоном SC-FDMA с 3.75-kHz интервалом между поднесущими.

Укажите количество пазов для генерации сигналов.

NSlots = 10;

Инициализируйте необходимые настройки всей ячейки путем определения интервала между поднесущими NB-IoT как поля в структуре ue.

ue.NBULSubcarrierSpacing = '3.75kHz';

Задайте основанное на нуле поле индексов поднесущей NB-IoT как скаляр, указывающий на однотональную демодуляцию SC-FDMA. Это строение требует спецификации типа модуляции, количества пазов на ресурсный модуль (RU), количества RU и количества повторений для кодового слова.

chs.NBULSubcarrierSet = 41;    % Indicate single-tone demodulation
chs.Modulation = 'BPSK';       % Specify modulation type as BPSK
chs.NULSlots = 4;              % Set four slots per RU
chs.NRU = 1;                   % Specify one RU
chs.NRep = 4;                  % Repeat codeword four times

Установите сетку входа начиная с третьего временного паза в пучке NPUSCH.

chs.SlotIdx = 2;

Задайте случайный массив бит и сопоставьте значения с символами, модулированными BPSK, используя lteSymbolModulate функция. Выполните предварительное кодирование восходящей линии связи для модулированных символов с помощью lteULPrecode функция.

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

Инициализируйте сетку ресурсного элемента (RE) с помощью предварительно кодированных символов.

reGrid = zeros(48,7*NSlots);
NSC = length(chs.NBULSubcarrierSet);
reGrid(chs.NBULSubcarrierSet+1,:) = reshape(precodedSymbols,NSC,[]);

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

[waveform,info] = lteSCFDMAModulate(ue,chs,reGrid);

Получите массив ресурсов путем демодуляции SC-FDMA на форме волны.

grid = lteSCFDMADemodulate(ue,chs,waveform);

Выполните демодуляцию SC-FDMA восходящей линии связи NB-IoT с интервалом поднесущих 15 кГц для выбранной циклической префиксной фракции.

Укажите количество пазов для генерации сигналов.

NSlots = 10;

Инициализируйте необходимые настройки всей ячейки путем определения интервала между поднесущими NB-IoT как поля в структуре ue.

ue.NBULSubcarrierSpacing = '15kHz';

Задайте основанное на нуле поле индексов поднесущей NB-IoT в качестве вектора, указывающего на демодуляцию многотонового SC-FDMA и тип модуляции.

chs.NBULSubcarrierSet = 0:2;    % Indicate multitone demodulation
chs.Modulation = 'QPSK';         % Specify modulation type as QPSK

Задайте случайный массив бит и сопоставьте значения с символами с модуляцией QPSK при помощи lteSymbolModulate функция. Выполните предварительное кодирование восходящей линии связи для модулированных символов с помощью lteULPrecode функция.

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

Инициализируйте сетку RE с помощью предварительно кодированных символов.

grid = repmat(lteNBResourceGrid(ue),1,NSlots);
NSC = length(chs.NBULSubcarrierSet);
grid(chs.NBULSubcarrierSet+1,:) = reshape(precodedSymbols,NSC,[]);

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

[waveform,info] = lteSCFDMAModulate(ue,chs,grid);

Задайте циклическую долю префикса и получите массив ресурсов путем демодуляции SC-FDMA на форме волны.

cpfraction = 0.3;
grid = lteSCFDMADemodulate(ue,chs,waveform,cpfraction);

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

свернуть все

Пользовательские настройки, заданные как структура. Поля, которые вы задаете в ue и chs определите, выполняет ли функция демодуляцию SC-FDMA для строения LTE или NB-IoT. Чтобы выбрать строение LTE, задайте NULRB поле. Чтобы выбрать строение NB-IoT, задайте NBULSubcarrierSpacing поле. The CyclicPrefixUL поле опционально и применимо только для строения LTE.

Количество ресурсных блоков восходящей линии связи, NRBУЛ., заданный как целое число в интервале [6, 110]. Чтобы вернуть информацию о модуляции SC-FDMA для строения LTE, необходимо задать это поле.

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

Длина циклического префикса, заданная как 'Normal' или 'Extended'. Это поле является необязательным.

Зависимости

Это поле применяется только при выборе строения LTE путем определения NULRB поле.

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

Интервал между поднесущими NB-IoT, заданный как '3.75kHz' или '15kHz'. Чтобы установить интервал между поднесущими 3,75 кГц, задайте NBULSubcarrierSpacing как '3.75kHz'. Чтобы установить интервал между поднесущими 15 кГц, задайте NBULSubcarrierSpacing как '15kHz'.

Использовать lteSCFDMADemodulate для демодуляции NB-IoT необходимо задать это поле. Чтобы указать строение LTE, опустите это поле.

Примечание

Для интервала между поднесущими 3,75 кГц, lteSCFDMADemodulate поддерживает только однотональные строения NB-IoT.

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

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

Информация NPUSCH, заданная как структура. Для строения NB-IoT можно задать дополнительные специфичные для восходящего канала параметры путем определения специфичных для NB-IoT полей в chs. Кроме NBULSubcarrierSet поле, поля в chs применяются либо при NBULSubcarrierSpacing является '3.75kHz' или когда ue.NBULSubcarrierSpacing является '15kHz' и длина (chs.NBULSubcarrierSet) является 1.

NB-IoT индексы поднесущей восходящей линии связи, заданные как вектор неотрицательных целых чисел в интервале [0, 11] или неотрицательное целое число в интервале [0, 47]. Индексы указаны в нулевой форме. Использовать lteSCFDMADemodulate для однотональной демодуляции NB-IoT необходимо указать NBULSubcarrierSet как скаляр. Если вы не задаете NBULSubcarrierSet, lteSCFDMADemodulate выполняет многотоновую демодуляцию NB-IoT по умолчанию. Если вы задаете NBULSubcarrierSpacing поле как '15kHz'Это поле обязательно к заполнению.

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

Тип модуляции, заданный как 'BPSK' или 'QPSK'. Для двоичных фаз сдвига keying (BPSK) задайте Modulation как 'BPSK'. Для квадратурной фазы сдвига манипуляции (QPSK) задайте Modulation как 'QPSK'.

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

Количество пазов на один ресурсный модуль (RU), заданное в виде положительного целого числа. Использовать lteSCFDMADemodulate для однотональной демодуляции NB-IoT необходимо задать это поле.

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

Количество RU, заданное как положительное целое число. Использовать lteSCFDMADemodulate для однотональной демодуляции NB-IoT необходимо задать это поле.

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

Количество повторений для кодового слова, заданное в виде неотрицательного целого числа. Использовать lteSCFDMADemodulate для однотональной демодуляции NB-IoT необходимо задать это поле.

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

Относительный индекс паза в пучке NPUSCH, заданный как неотрицательное целое число. Это поле определяет базирующийся на нуле относительный индекс паза в пучке временных пазов для передачи информационного бита транспортного блока или управления.

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

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

Сигнал временной области, заданный как комплексная матрица. Область частоты дискретизации waveform должно быть таким же, как используется в lteSCFDMAModulate функция модулятора для количества ресурсных блоков, заданных в NULRB область ue. Форма волны должна быть time-aligned таким образом, чтобы первая выборка была первой выборкой циклического префикса первого символа SC-FDMA в подкадре.

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

Циклическая дробь префикса, заданная как скаляр в интервале [0, 1]. Этот аргумент задает положение демодуляции относительно циклического префикса. Значение 0 представляет начало циклического префикса. Значение 1 представляет конец циклического префикса.

  • Для демодуляции LTE значение по умолчанию 0.55.

  • Для демодуляции NB-IoT с 3.75-kHz интервалом поднесущих, значение по умолчанию 0.18.

  • Для демодуляции NB-IoT с 15-kHz интервалом поднесущих, значение по умолчанию 0.22.

Значение по умолчанию позволяет использовать уровень окна по умолчанию в lteSCFDMAModulate функция.

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

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

свернуть все

Выходной ресурсный массив, возвращенный как комплексная матрица.

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

Введенный в R2014a