nrWaveformGenerator

Сгенерируйте 5G форма волны NR

Описание

пример

[wave,info] = nrWaveformGenerator(cfg) генерирует 5G форма волны NR wave для заданной настройки cfg. Вход cfg задает или нисходящие или восходящие параметры конфигурации для сингла или нескольких расстояния между поднесущими (SCS) несущие и части полосы пропускания (BWPs).

  • Если cfg nrDLCarrierConfig объект, настройка также задает пакет сигнала синхронизации (SS), наборы ресурсов управления (CORESETs), пространства поиска, физические нисходящие каналы управления (PDCCH) и сопоставленные опорные сигналы демодуляции (DM-RS), физический нисходящий канал совместно использовал каналы (PDSCH) и сопоставил DM-RS и опорные сигналы отслеживания фазы (PT-RS) и информационные опорные сигналы состояния каналом (CSI-RS).

  • Если cfg nrULCarrierConfig объект, настройка также указывает, что физический восходящий канал совместно использовал каналы (PUSCH) и сопоставил DM-RS и PT-RS, физические восходящие каналы управления (PUCCH) и сопоставил DM-RS и звучание опорными сигналами (SRS).

Функция также возвращает структуру, info, содержа информацию о сетке ресурса и ресурсах формы волны.

nrWaveformGenerator открывает приложение 5G Waveform Generator.

Примеры

свернуть все

Создайте объект настройки несущей SCS с SCS по умолчанию 15 кГц и 100 блоками ресурса.

carrier = nrSCSCarrierConfig('NSizeGrid',100);

Создайте индивидуально настраиваемый объект настройки BWP для несущей SCS.

bwp = nrWavegenBWPConfig('NStartBWP',carrier.NStartGrid+10);

Создайте пакетный объект настройки SS со Случаем состава блока A.

ssb = nrWavegenSSBurstConfig('BlockPattern','Case A');

Создайте объект настройки PDCCH, задав агрегацию размера два и четвертый кандидат на экземпляр PDCCH.

pdcch = nrWavegenPDCCHConfig('AggregationLevel',2,'AllocatedCandidate',4);

Создайте объект настройки CORESET, задав четыре ресурса частоты и длительность трех символов OFDM.

coreset = nrCORESETConfig;
coreset.FrequencyResources = [1 1 1 1];
coreset.Duration = 3;

Создайте объект настройки набора пространства поиска, задав два уровня агрегации.

ss = nrSearchSpaceConfig;
ss.NumCandidates = [8 4 0 0 0];

Создайте объект настройки PDSCH, задав схему модуляции и целевую скорость кода. Включите PDSCH PT-RS.

pdsch = nrWavegenPDSCHConfig( ...
    'Modulation','16QAM','TargetCodeRate',658/1024,'EnablePTRS',true);

Создайте PDSCH DM-RS и объект настройки PDSCH PT-RS с заданными значениями свойств.

dmrs = nrPDSCHDMRSConfig('DMRSTypeAPosition',3);
pdsch.DMRS = dmrs;
ptrs = nrPDSCHPTRSConfig('TimeDensity',2);
pdsch.PTRS = ptrs;

Создайте объект настройки CSI-RS с заданными значениями свойств.

csirs = nrWavegenCSIRSConfig('RowNumber',4,'RBOffset',10);

Создайте однопользовательский объект настройки формы волны нисходящего канала 5G, задав ранее заданные настройки.

cfgDL = nrDLCarrierConfig( ...
    'FrequencyRange','FR1', ...
    'ChannelBandwidth',40, ...
    'NumSubframes',20, ...
    'SCSCarriers',{carrier}, ...
    'BandwidthParts',{bwp}, ...
    'SSBurst',ssb, ...
    'CORESET',{coreset}, ...
    'SearchSpaces',{ss}, ...
    'PDCCH',{pdcch}, ...
    'PDSCH',{pdsch}, ...
    'CSIRS',{csirs});

Сгенерируйте форму волны нисходящего канала 5G с помощью заданной настройки.

waveform = nrWaveformGenerator(cfgDL);

Создайте два объекта настройки несущей SCS со смешанной нумерологией и пользовательскими количествами блоков ресурса.

carriers = {
    nrSCSCarrierConfig('SubcarrierSpacing',15,'NStartGrid',10,'NSizeGrid',100), ...
    nrSCSCarrierConfig('SubcarrierSpacing',30,'NStartGrid',0,'NSizeGrid',70)};
    

Создайте два пользовательских объекта настройки BWP, один для каждой из несущих.

bwp = {
    nrWavegenBWPConfig('BandwidthPartID',1,'SubcarrierSpacing',15,'NStartBWP',10,'NSizeBWP',80), ...
    nrWavegenBWPConfig('BandwidthPartID',2,'SubcarrierSpacing',30,'NStartBWP',0,'NSizeBWP',60)};

Создайте пакетный объект настройки SS со Случаем состава блока A, соответствуя SCS 15 кГц.

ssb = nrWavegenSSBurstConfig('BlockPattern','Case A');

Создайте два объекта настройки PDCCH.

pdcch = {
    nrWavegenPDCCHConfig('SearchSpaceID',1,'BandwidthPartID',1,'RNTI',1,'DMRSScramblingID',1), ...
    nrWavegenPDCCHConfig('SearchSpaceID',2,'BandwidthPartID',2,'RNTI',2,'DMRSScramblingID',2, ...
        'AggregationLevel',4)};
    

Создайте два объекта настройки CORESET и два объекта настройки набора пространства поиска для двух PDCCH.

coreset = {
    nrCORESETConfig('CORESETID',1,'FrequencyResources',[1 1 1 1 1 0 0 0 0 0 1],'Duration',3), ...
    nrCORESETConfig('CORESETID',2,'FrequencyResources',[0 0 0 0 0 0 0 0 1 1])};

ss = {
    nrSearchSpaceConfig('SearchSpaceID',1,'CORESETID',1,'StartSymbolWithinSlot',4), ...
    nrSearchSpaceConfig('SearchSpaceID',2,'CORESETID',2,'NumCandidates',[8 8 4 0 0])};

Создайте два объекта настройки PDSCH со смешанными схемами модуляции.

pdsch = {
    nrWavegenPDSCHConfig('BandwidthPartID',1,'Modulation','16QAM','RNTI',1,'NID',1), ...
    nrWavegenPDSCHConfig('BandwidthPartID',2,'Modulation','QPSK','RNTI',2,'NID',2, ...
            'PRBSet', 50:59)};

Создайте два объекта настройки CSI-RS.

 csirs = {
     nrWavegenCSIRSConfig('BandwidthPartID',1,'RowNumber',2,'RBOffset',10), ... 
     nrWavegenCSIRSConfig('BandwidthPartID',2,'Density','three','RowNumber',4)};

Создайте многопользовательский объект настройки формы волны нисходящего канала 5G, задав ранее заданные настройки.

cfgDL = nrDLCarrierConfig( ...
    'FrequencyRange','FR1', ...
    'ChannelBandwidth',40, ...
    'NumSubframes',20, ...
    'SCSCarriers',carriers, ...
    'BandwidthParts',bwp, ...
    'SSBurst',ssb, ...
    'CORESET',coreset, ...
    'SearchSpaces',ss, ...
    'PDCCH',pdcch, ...
    'PDSCH',pdsch, ...
    'CSIRS',csirs);

Сгенерируйте форму волны нисходящего канала 5G с помощью заданной настройки.

waveform = nrWaveformGenerator(cfgDL);

Создайте объект настройки несущей SCS с SCS по умолчанию 15 кГц и 100 блоками ресурса.

carrier = nrSCSCarrierConfig('NSizeGrid',100);

Создайте индивидуально настраиваемый объект настройки BWP для несущей SCS.

bwp = nrWavegenBWPConfig('NStartBWP',carrier.NStartGrid+10);

Создайте однопользовательский объект настройки формы волны восходящего канала 5G, задав ранее заданные настройки. В восходящем объекте настройки, по умолчанию, включен PUSCH, в то время как PUCCH и SRS отключены.

cfgUL = nrULCarrierConfig( ...
    'FrequencyRange','FR1', ...
    'ChannelBandwidth',40, ...
    'NumSubframes',20, ...
    'SCSCarriers',{carrier}, ...
    'BandwidthParts',{bwp});

Сгенерируйте форму волны восходящего канала 5G с помощью заданной настройки.

waveform = nrWaveformGenerator(cfgUL);

Создайте два объекта настройки несущей SCS со смешанной нумерологией и пользовательскими количествами блоков ресурса.

carriers = {
    nrSCSCarrierConfig('SubcarrierSpacing',15,'NStartGrid',10,'NSizeGrid',100), ...
    nrSCSCarrierConfig('SubcarrierSpacing',30,'NStartGrid',0,'NSizeGrid',70)};

Создайте два пользовательских объекта настройки BWP, один для каждой из несущих.

bwp = {
    nrWavegenBWPConfig('BandwidthPartID',0,'SubcarrierSpacing',15,'NStartBWP',30,'NSizeBWP',80), ...
    nrWavegenBWPConfig('BandwidthPartID',1,'SubcarrierSpacing',30,'NStartBWP',0,'NSizeBWP',60)};

Создайте два объекта настройки PUSCH, один для каждой из несущих, со смешанными схемами модуляции.

pusch = {
    nrWavegenPUSCHConfig('BandwidthPartID',0,'Modulation','16QAM','SlotAllocation',0:2:9,'PRBSet',0:19,'RNTI',1,'NID',1), ...
    nrWavegenPUSCHConfig('BandwidthPartID',1,'Modulation','QPSK','RNTI',2,'NID',2,'PRBSet',50:59)};

Создайте один объект настройки PUCCH, только для второй несущей. По умолчанию PUCCH включен в этой настройке.

pucch = {nrWavegenPUCCH0Config('BandwidthPartID',1,'SlotAllocation',0:9,'PRBSet',2,'DataSourceUCI', 'PN9')};

Создайте два объекта настройки SRS, один для каждой из несущих. По умолчанию SRS включен в обеих настройках.

srs = {
    nrWavegenSRSConfig('BandwidthPartID',0,'SlotAllocation',1:2:9,'NumSRSPorts',2), ... 
    nrWavegenSRSConfig('BandwidthPartID',1,'FrequencyStart',4)};

Создайте многопользовательский объект настройки формы волны восходящего канала 5G, задав ранее заданные настройки.

cfgUL = nrULCarrierConfig( ...
    'FrequencyRange','FR1', ...
    'ChannelBandwidth',40, ...
    'NumSubframes',20, ...
    'SCSCarriers',carriers, ...
    'BandwidthParts',bwp, ...
    'PUSCH',pusch, ...
    'PUCCH',pucch, ...
    'SRS',srs);

Сгенерируйте форму волны восходящего канала 5G с помощью заданной настройки.

waveform = nrWaveformGenerator(cfgUL);

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

свернуть все

Параметры конфигурации для 5G генерация сигналов NR в виде nrDLCarrierConfig или nrULCarrierConfig объект.

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

свернуть все

5G временного интервала форма волны NR, возвращенная как комплексная матрица. Количество столбцов матрицы соответствует количеству передающих антенн.

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

Метаданные формы волны 5G, возвращенной как структура с этими полями.

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

Поле ЗначениеОписание
ResourceGridBWPОбъедините 2D или трехмерный массивСетка ресурса BWP
ResourceGridInCarrierОбъедините 2D или трехмерный массивСетка ресурса BWP в несущей
InfoМассив структур

Каждая структура в массиве содержит эти поля.

Поле ЗначениеОписание
NfftПоложительное целое числоКоличество точек быстрого преобразования Фурье (FFT)
SampleRateВещественное числоЧастота дискретизации формы волны
CyclicPrefixLengthsВектор-строка из положительных целых чиселДлины циклического префикса каждого символа OFDM в подкадре, в выборках
SymbolLengthsВектор-строка из положительных целых чиселДлины символа OFDM, в выборках
WindowingПоложительное целое числоКоличество выборок временного интервала, по которым функция применяет повышенную работу с окнами косинуса и наложение символов OFDM
SymbolPhasesВектор из целых чисел

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

SymbolsPerSlot12 или 14Количество символов OFDM в пазе
SlotsPerSubframe1, 2, 4, или 8 Количество пазов в подкадре на 1 мс
SlotsPerFrameПоложительное целое числоКоличество пазов в системе координат на 10 мс
k0Неотрицательное целое числоСтартовая позиция частоты на порт антенны и символ OFDM

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

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

Поле ЗначениеОписание

PDCCH

(возвращенный для только передают в нисходящем направлении формы волны),

1 NPDCCH массивом структур, где N PDCCH является количеством сконфигурированного PDCCH во входе cfg

Каждая структура в массиве содержит эти поля.

Поле ЗначениеОписание
NameМассив символовИмя настройки PDCCH
CDMLengthsДвухэлементный вектор из целых чиселРасположение CDM относительно опорных сигналов
Resources

1 MPDCCH массивом структур, где M PDCCH является количеством выделенных пазов для заданного PDCCH

Каждая структура в массиве содержит эти поля.

Поле ЗначениеОписание
NSlotНеотрицательное целое числоНомер слота
DCIBitsВектор-столбец с бинарным знакомБиты нисходящей управляющей информации (DCI)
CodewordВектор-столбец с бинарным знакомЗакодированная кодовая комбинация DCI
GНеотрицательное целое числоЕмкость в битах PDCCH
GdНеотрицательное целое числоКоличество элементов ресурса на слой или порт
ChannelIndicesВектор-столбец положительных целых чиселИндексы PDCCH относительно связанного BWP
ChannelSymbolsКомплексный вектор-столбецСимволы PDCCH
DMRSIndicesВектор-столбец положительных целых чиселИндексы PDCCH DM-RS относительно связанного BWP
DMRSSymbolsКомплексный вектор-столбецСимволы PDCCH DM-RS

PDSCH

(возвращенный для только передают в нисходящем направлении формы волны),

1 NPDSCH массивом структур, где N PDSCH является количеством сконфигурированного PDSCH в cfg

Каждая структура в массиве содержит эти поля.

Поле ЗначениеОписание
NameМассив символовИмя настройки PDSCH
CDMLengthsДвухэлементный целочисленный векторРасположение CDM относительно опорных сигналов
Resources

1 MPDSCH массивом структур, где M PDSCH является количеством выделенных пазов для заданного PDSCH

Каждая структура в массиве содержит эти поля.

Поля Значения 
NSlotНеотрицательное целое числоНомер слота
TransportBlockSizeНеотрицательное целое числоРазмер PDSCH транспортирует блок
TransportBlockВектор-столбец с бинарным знакомPDSCH транспортируют блок
RVНеотрицательное целое числоВерсия сокращения
Codeword

Вектор-столбец с бинарным знаком

Массив ячеек двух вектор-столбцов с бинарным знаком

Кодовая комбинация (комбинации) от DL-SCH транспортирует канал
GНеотрицательное целое числоЕмкость в битах PDSCH. Это значение равно длине кодовой комбинации от транспортного канала DL-SCH.
GdНеотрицательное целое число

Количество элементов ресурса на слой или порт

ChannelIndicesВектор-столбец положительных целых чиселИндексы PDSCH относительно связанного BWP
ChannelSymbolsКомплексный вектор-столбецСимволы PDSCH
DMRSIndicesВектор-столбец положительных целых чиселИндексы PDSCH DM-RS относительно связанного BWP
DMRSSymbolsКомплексный вектор-столбецСимволы PDSCH DM-RS
DMRSSymbolSetВектор из неотрицательных целых чисел

Местоположения символа OFDM в пазе, содержащем DM-RS (на основе 0)

PTRSIndicesВектор-столбец положительных целых чиселИндексы PDSCH PT-RS относительно связанного BWP
PTRSSymbolsКомплексный вектор-столбецСимволы PDSCH PT-RS
PTRSSymbolSetВектор из неотрицательных целых чисел

Местоположения символа OFDM в пазе, содержащем PT-RS (на основе 0)

PUSCH

(возвращенный только для восходящих форм волны)

1 NPUSCH массивом структур, где N PUSCH является количеством сконфигурированного PUSCH в cfg

Каждая структура в массиве содержит эти поля.

Поле ЗначениеОписание
NameМассив символовИмя настройки PUSCH
CDMLengthsДвухэлементный целочисленный векторРасположение CDM относительно опорных сигналов
Resources

1 MPUSCH массивом структур, где M PUSCH является количеством выделенных пазов для заданного PUSCH

Каждая структура в массиве содержит эти поля.

Поле Значение 
NSlotНеотрицательное целое числоНомер слота
TransportBlockSizeНеотрицательное целое числоРазмер PUSCH транспортирует блок
TransportBlockВектор-столбец с бинарным знакомPUSCH транспортируют блок
RVНеотрицательное целое числоВерсия сокращения
Codeword

Вектор-столбец с бинарным знаком

Кодовая комбинация от UL-SCH транспортирует канал
GНеотрицательное целое числоЕмкость в битах PUSCH. Это значение равно длине кодовой комбинации от транспортного канала UL-SCH.
GdНеотрицательное целое число

Количество элементов ресурса на слой или порт

ChannelIndicesВектор-столбец положительных целых чиселИндексы PUSCH относительно связанного BWP
ChannelSymbolsКомплексный вектор-столбецСимволы PUSCH
DMRSIndicesВектор-столбец положительных целых чиселИндексы PUSCH DM-RS относительно связанного BWP
DMRSSymbolsКомплексный вектор-столбецСимволы PUSCH DM-RS
DMRSSymbolSetВектор из неотрицательных целых чисел

Местоположения символа OFDM в пазе, содержащем DM-RS (на основе 0)

PTRSIndicesВектор-столбец положительных целых чиселИндексы PUSCH PT-RS относительно связанного BWP
PTRSSymbolsКомплексный вектор-столбецСимволы PUSCH PT-RS
PTRSSymbolSetВектор из неотрицательных целых чисел

Местоположения символа OFDM в пазе, содержащем PT-RS (на основе 0)

PUCCH

(возвращенный только для восходящих форм волны)

1 NPUCCH массивом структур, где N PUCCH является количеством сконфигурированного PUCCH в cfg

Каждая структура в массиве содержит эти поля.

Поле ЗначениеОписание
NameМассив символовИмя настройки PUCCH
FormatЦелое число от 0 до 4 или []Формат PUCCH
CDMLengthДвухэлементный целочисленный векторРасположение CDM относительно опорных сигналов
Resources

1 MPUCCH массивом структур, где M PUCCH является количеством выделенных пазов для заданного PUCCH

Каждая структура в массиве содержит эти поля.

Поле Значение 
NSlotНеотрицательное целое числоНомер слота
SRBit (возвращенный только для формата 0)Скаляр с бинарным знакомБит планирования запроса (SR)
UCIBitsВектор-столбец с бинарным знакомБиты восходящей управляющей информации (UCI)
UCI2Bits (возвращенный только для форматов 3 и 4)Вектор-столбец с бинарным знакомЧасть UCI 2 бита
Codeword

Вектор-столбец с бинарным знаком

Двухэлементный массив ячеек вектор-столбцов с бинарным знаком (применяется только к формату 0),

Кодовая комбинация, содержащая биты UCI
GНеотрицательное целое числоЕмкость в битах PUCCH. Это значение равно длине кодовой комбинации.
GdНеотрицательное целое число

Способность символа PUCCH

ChannelIndicesВектор-столбец положительных целых чиселИндексы PUCCH относительно связанного BWP
ChannelSymbolsКомплексный вектор-столбецСимволы PUCCH
DMRSIndices (возвращенный только для форматов 1, 2, 3, и 4)Вектор-столбец положительных целых чиселИндексы PUCCH DM-RS относительно связанного BWP
DMRSSymbols (возвращенный только для форматов 1, 2, 3, и 4)Комплексный вектор-столбецСимволы PUCCH DM-RS

SRS

(возвращенный только для восходящих форм волны)

1 NSRS массивом структур, где N SRS является количеством сконфигурированного SRS в cfg

Каждая структура в массиве содержит эти поля.

Поле ЗначениеОписание
NameМассив символовИмя настройки SRS
Resources

1 MSRS массивом структур, где M SRS является количеством выделенных пазов для заданного SRS

Каждая структура в массиве содержит эти поля.

Поле Значение 
NSlotНеотрицательное целое числоНомер слота
SignalIndicesВектор-столбец положительных целых чиселИндексы SRS относительно связанного BWP
SignalSymbolsКомплексный вектор-столбецСимволы SRS

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

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

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

Введенный в R2020b