nrOFDMModulate

Сгенерируйте модулированную форму волны OFDM

Описание

пример

[waveform,info] = nrOFDMModulate(carrier,grid) генерирует waveform, форму волны временной области, путем выполнения ортогонального частотного мультиплексирования (OFDM) модуляции массива ресурсов несущей grid для параметров конфигурации поставщика услуг carrier. Функция также возвращается infoструктуру, содержащую информацию OFDM.

[waveform,info] = nrOFDMModulate(grid,scs,initialNSlot) модулирует массив ресурсов несущей с интервалом между поднесущими scs и начальный номер паза initialNSlot.

пример

[waveform,info] = nrOFDMModulate(___,Name,Value) задает опции с помощью одного или нескольких аргументов пары "имя-значение" в дополнение к входным параметрам в любом из предыдущих синтаксисов.

Примеры

свернуть все

Сгенерируйте форму волны путем выполнения OFDM модуляции ресурсного массива, который содержит зондирующие опорные сигналы (SRS). Массив ресурсов охватывает целую систему координат.

Установите параметры конфигурации несущей, задав интервал между поднесущими 30 кГц и 24 ресурсных блока (RB) в массиве ресурсов несущей.

carrier = nrCarrierConfig('SubcarrierSpacing',30,'NSizeGrid',24);

Сконфигурируйте параметры SRS, установив периодичность паза равной 2 и смещение в нуль.

srs = nrSRSConfig('SRSPeriod',[2 0]);

Получите информацию OFDM для указанного строения поставщика услуг.

info = nrOFDMInfo(carrier);

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

grid = [];
for nslot = 0:(info.SlotsPerFrame - 1)
    carrier.NSlot = nslot;
    slotGrid = nrResourceGrid(carrier);
    ind = nrSRSIndices(carrier,srs);
    sym = nrSRS(carrier,srs);
    slotGrid(ind) = sym;
    grid = [grid slotGrid];
end

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

[waveform,info] = nrOFDMModulate(carrier,grid);

Сгенерируйте форму волны путем выполнения OFDM модуляции ресурсного массива, который содержит физические символы опорного сигнала демодуляции (DM-RS) нисходящего общего канала (PDSCH).

Установите параметры конфигурации несущей, задав интервал между поднесущими 60 кГц.

scs = 60;
carrier = nrCarrierConfig('SubcarrierSpacing',scs);

Сгенерируйте символы и индексы DM-RS PDSCH.

p = 2;
pdsch = nrPDSCHConfig('NumLayers',p);
sym = nrPDSCHDMRS(carrier,pdsch);
ind = nrPDSCHDMRSIndices(carrier,pdsch);

Создайте массив ресурсов поставщика услуг связи, содержащий символы PDSCH DM-RS.

grid = nrResourceGrid(carrier,p);
grid(ind) = sym;

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

initialNSlot = carrier.NSlot;
cpl = 'extended';
[waveform,info] = nrOFDMModulate(grid,scs,initialNSlot,'CyclicPrefix',cpl);
disp(info)
                   Nfft: 1024
             SampleRate: 61440000
    CyclicPrefixLengths: [1x48 double]
          SymbolLengths: [1x48 double]
              Windowing: 36
           SymbolPhases: [1x48 double]
         SymbolsPerSlot: 12
       SlotsPerSubframe: 4
          SlotsPerFrame: 40

Сгенерируйте форму волны путем выполнения OFDM модуляции ресурсного массива, который содержит символы PDSCH DM-RS.

Установите параметры конфигурации поставщика услуг, задав 106 RB в массиве ресурсов поставщика услуг.

carrier = nrCarrierConfig('NSizeGrid',106);

Сконфигурируйте PDSCH и сгенерируйте соответствующие символы и индексы.

p = 4;
pdsch = nrPDSCHConfig('NumLayers',p);
sym = nrPDSCHDMRS(carrier,pdsch);
ind = nrPDSCHDMRSIndices(carrier,pdsch);

Создайте массив ресурсов поставщика услуг связи и сопоставьте символы PDSCH.

grid = nrResourceGrid(carrier,p,'OutputDataType','single');
grid(ind) = sym;

Сгенерируйте модулированный сигнал OFDM, задавая частоту дискретизации.

sr = 1e8;
[waveform,info] = nrOFDMModulate(carrier,grid,'SampleRate',sr);

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

свернуть все

Параметры конфигурации несущей для определенной нумерологии OFDM, заданные как nrCarrierConfig объект. Только эти свойства объекта релевантны для этой функции.

Количество RB в ресурсной сетке поставщика услуг, заданное в виде целого числа от 1 до 275. Значение по умолчанию 52 соответствует максимальному количеству RB несущей 10 МГц с 15 кГц SCS.

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

Интервалы между поднесущими в кГц, для всех каналов и опорных сигналов несущей, заданные как 15, 30, 60, 120, или 240.

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

Номер слота, заданный как неотрицательное целое число. Можно задать NSlot значение, больше, чем количество пазов на систему координат. Для примера можно задать это значение с помощью счетчиков цикла передачи в MATLAB® симуляция. В этом случае, возможно, вам придется убедиться, что значение свойства по модулю является количеством пазов на систему координат в коде вызова.

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

Длина циклического префикса, заданная как один из следующих опций.

  • 'normal' - Используйте это значение, чтобы задать нормальный циклический префикс. Эта опция соответствует 14 символам OFDM в пазе.

  • 'extended' - Используйте это значение для задания расширенного циклического префикса. Эта опция соответствует 12 символам OFDM в пазе. Для нумераций, указанных в TS 38.211 Раздел 4.2, удлиненная длина циклического префикса применяется только для интервалов между поднесущими 60 кГц.

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

Массив ресурсов поставщика услуг, заданный как комплексный массив размера K -by- N -by- P.

  • K - количество поднесущих.

  • N - количество символов OFDM.

  • P - количество передающих антенн.

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

Интервалы между поднесущими в кГц, заданные как 15, 30, 60, 120, или 240.

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

Начальное число паза, в основанной на 0 форме, задается как неотрицательное целое число. Функция выбирает соответствующие длины циклического префикса для модуляции OFDM с помощью значения initialNSlot mod S, где S количество пазов на подрамник.

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

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'CyclicPrefix','extended' задает расширенные длины циклического префикса.

Длина циклического префикса, заданная как разделенная разделенными запятой парами, состоящая из 'CyclicPrefix' и одно из следующих значений:

  • 'normal' - Используйте это значение, чтобы задать нормальный циклический префикс. Эта опция соответствует 14 символам OFDM в пазе.

  • 'extended' - Используйте это значение для задания расширенного циклического префикса. Эта опция соответствует 12 символам OFDM в пазе. Для нумераций, указанных в TS 38.211 Раздел 4.2, расширенная длина циклического префикса применяется только к интервалу между поднесущими 60 кГц.

Примечание

Если вы задаете carrier введите, используйте CyclicPrefix свойство carrier вход для задания длины циклического префикса. Вы не можете использовать этот аргумент пары "имя-значение" вместе со carrier вход.

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

Количество точек быстрого преобразования Фурье (FFT), заданное как разделенная разделенными запятой парами, состоящая из 'Nfft' и неотрицательное целое число, больше 127 или []. Заданное значение должно привести к целочисленным длинам циклического префикса и максимальной заполненности 100%. Заполнение определяется как значение (12 × N RB )/ Nfft, где N RB - количество ресурсных блоков.

Если вы не задаете этот вход, или если вы задаете 'Nfft',[], функция устанавливает целочисленное значение, больше 127, как значение по умолчанию для этого входа. Фактическое значение по умолчанию зависит от других входных значений.

  • Если вы не задаете SampleRate вход, или если вы задаете 'SampleRate',[], функция устанавливает Nfft удовлетворение этих условий.

    • Nfft - целочисленная степень 2.

    • Nfft обеспечивает максимальное заполнение 85%.

  • Если вы задаете SampleRate вход, функция устанавливает Nfft удовлетворение этих условий.

    • Nfft Результаты в целочисленных длинах циклического префикса.

    • Nfft максимизирует значение gcd (Nfft × SCS, SampleRate), где SCS задается carrier.SubcarrierSpacing свойство или scs вход.

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

Частота выборки формы волны, заданная как разделенная разделенными запятой парами, состоящая из 'SampleRate' и либо положительная скалярная величина, либо [].

Если вы не задаете этот вход, или если вы задаете 'SampleRate',[], затем функция устанавливает этот вход в значение N fft × SCS.

  • N fft является значением 'Nfft' вход.

  • SCS - интервал между поднесущими. В зависимости от синтаксиса функции, SCS задается carrier.SubcarrierSpacing свойство или scs вход.

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

Количество выборок во временной области, над которыми функция применяет приподнятое оконное окно косинуса и перекрытие символов OFDM, заданное как разделенная разделенными запятой парами, состоящая из 'Windowing' и неотрицательное целое число или [].

Если вы не задаете этот вход, или если вы задаете 'Windowing',[]функция устанавливает этот вход в E максимальных значений, которая не влияет на тесты величины вектора ошибок (EVM), как указано в TS 38.101-1 Приложения F.5.3 и F.5.4, TS 38.101-2 Приложения F.5.3 и F.5.4 и TS 38.104 Приложения B.5.2 и C.5.2. E равно значению floor ((N CP − <reservedrangesplaceholder1>) × <reservedrangesplaceholder0>.NfftN БПФ, номинальный), где N CP, W и N БПФ, номинальными являются значения в столбцах таблицы, обозначенных «Длина циклического префикса», «Длина окна EVM» и «Размер FFT», соответственно.

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

Несущая частота в Гц, заданная как разделенная разделенными запятой парами, состоящая из 'CarrierFrequency' и действительное число. Этот вход соответствует f 0, определенному в TS 38,211 Section 5,4.

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

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

свернуть все

Модулированная OFDM форма волны, возвращенная как комплексная матрица размера T -by- P.

  • T - количество выборок во временной области в форме волны.

  • P - количество передающих антенн.

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

Информация OFDM, возвращенная как структура, содержащая эти поля.

ОбластиЗначенияОписание
NfftПоложительное целое числоКоличество точек БПФ
SampleRateПоложительная скалярная величинаЧастота выборки формы волны
CyclicPrefixLengths1-by N вектор положительных целых чисел, где N - количество символов OFDM в подкадре.Длины циклического префикса каждого символа OFDM в выборках
SymbolLengths1-by - N вектор положительных целых чиселДлины символов OFDM, в выборках
WindowingПоложительное целое числоКоличество выборок во временной области, над которыми функция применяет приподнятое оконное окно косинуса и перекрытие символов OFDM
SymbolPhases1-by - N вектор скаляров в интервале [-

Фазовая компенсация каждого символа OFDM в радианах

Функция применяет эту компенсацию во время модуляции для расчета членов фазы на символ OFDM, как указано в TS 38.211 Раздел 5.4 [4]. nrOFDMDemodulate функция инвертирует эту фазу компенсацию во время демодуляции.

SymbolsPerSlotПоложительное целое числоКоличество символов OFDM в пазе
SlotsPerSubframeПоложительное целое числоКоличество пазов в подрамнике 1 мс
SlotsPerFrameПоложительное целое числоКоличество пазов в системе координат 10 мс

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

Ссылки

[1] 3GPP TS 38.101-1. "NR; радиопередача и прием пользовательского оборудования (UE); Часть 1: Область значений 1 Standalone ". 3rd Генерация Partnership Project; Группа технических спецификаций Радиосеть доступ.

[2] 3GPP TS 38.101-2. "NR; радиопередача и прием пользовательского оборудования (UE); Часть 2: Область значений 2 Standalone ". 3rd Генерация Partnership Project; Группа технических спецификаций Радиосеть доступ.

[3] 3GPP TS 38.104. "NR; радиопередача и прием базовой станции (BS). "3-ья Генерация партнерский проект; Группа технических спецификаций Радиосеть доступ.

[4] 3GPP TS 38.211. "NR; Физические каналы и модуляция ". 3rd Генерация Partnership Project; Группа технических спецификаций Радиосеть доступ.

Расширенные возможности

.

См. также

Функции

Объекты

Введенный в R2020b