nrWaveformGenerator

Сгенерируйте 5G сигнал NR

Описание

пример

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

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

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

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

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

Примеры

свернуть все

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

carrier = nrSCSCarrierConfig('NSizeGrid',100);

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

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

Создайте объект строения пакета SS с шаблоном блока Case 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 с шаблоном блока Case 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 включен, а 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','RNTI',1,'NID',1,'SymbolAllocation',[0 13]), ...
    nrWavegenPUSCHConfig('BandwidthPartID',1,'Modulation','QPSK','RNTI',2,'NID',2,'PRBSet',50:59,'SymbolAllocation',[0 10])};

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

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

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

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

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

waveform = nrWaveformGenerator(cfgUL);

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

свернуть все

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

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

свернуть все

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

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

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

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

ОбластьЗначениеОписание
ResourceGridBWPКомплексный 2-D или трехмерный массивРесурсная сетка BWP
ResourceGridInCarrierКомплексный 2-D или трехмерный массивРесурсная сетка 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-by- N массив структур PDCCH, где N PDCCH является количеством сконфигурированных PDCCH во входных cfg

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

ОбластьЗначениеОписание
NameСимвольный массивИмя строения PDCCH
CDMLengthsДвухэлементный вектор целых чиселУстройство МЧР для опорных сигналов
Resources

1-by- M массив структур PDCCH, 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-by- N массив структур PDSCH, N котором PDSCH является количеством сконфигурированных PDSCH в cfg

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

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

1-by- M массив структур PDSCH, 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-by N массив структур PUSCH, N котором PUSCH является количеством сконфигурированных PUSCH в cfg

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

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

1-by M массив структур PUSCH, 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)

SRS

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

1-by- N массив структур SRS, где N SRS - количество сконфигурированных SRS в cfg

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

ОбластьЗначениеОписание
NameСимвольный массивИмя строения SRS
Resources

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

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

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

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

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

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

.
Введенный в R2020b