Сгенерируйте 5G сигнал NR
[
генерирует 5G NR сигнал wave
,info
] = nrWaveformGenerator(cfg
)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);
cfg
- Параметры конфигурации для 5G генерации сигналов NRnrDLCarrierConfig
| объекта nrULCarrierConfig
объектПараметры конфигурации для 5G генерации сигналов NR, заданные как nrDLCarrierConfig
или nrULCarrierConfig
объект.
wave
- Частотная 5G NR сигналЧастотная 5G NR сигнал, возвращенная как комплексная матрица. Количество матричных столбцов соответствует количеству передающих антенн.
Типы данных: double
Поддержка комплексного числа: Да
info
- Метаданные 5G волныМетаданные 5G волны, возвращенные как структура с этими полями.
ResourceGrids
- Информация BWPИнформация BWP, возвращенная как структура с этими полями.
Область | Значение | Описание | |||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ResourceGridBWP | Комплексный 2-D или трехмерный массив | Ресурсная сетка BWP | |||||||||||||||||||||||||||||||||
ResourceGridInCarrier | Комплексный 2-D или трехмерный массив | Ресурсная сетка BWP в несущей | |||||||||||||||||||||||||||||||||
Info | Массив структур | Каждая структура массива содержит эти поля.
|
Типы данных: struct
WaveformResources
- Информация о ресурсах формы волныСведения о ресурсах формы волны, возвращенные как структура с этими полями.
Область | Значение | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
(возвращается только для нисходящих сигналов) | 1-by- N массив структур PDCCH, где N PDCCH является количеством сконфигурированных PDCCH во | Каждая структура массива содержит эти поля.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
(возвращается только для нисходящих сигналов) | 1-by- N массив структур PDSCH, N котором PDSCH является количеством сконфигурированных PDSCH | Каждая структура массива содержит эти поля.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
(возвращается только для формы волны восходящего канала) | 1-by N массив структур PUSCH, N котором PUSCH является количеством сконфигурированных PUSCH | Каждая структура массива содержит эти поля.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
(возвращается только для формы волны восходящего канала) | 1-by- N массив структур SRS, где N SRS - количество сконфигурированных SRS | Каждая структура массива содержит эти поля.
|
Типы данных: struct
Типы данных: struct
Указания и ограничения по применению:
Когда cfg
вход является nrDLCarrierConfig
объект, эти ограничения применяются.
The cfg.
WindowingPercent
свойство должно быть установлено в 0
или []
.
The cfg.
CarrierFrequency
свойство должно быть установлено в 0
.
The cfg.
SampleRate
свойство должно быть установлено в []
или значение, равное cfg.BWP.
SubcarrierSpacing
умножить размер БПФ. Размер БПФ должен быть степенью двойки в области значений от 128 до FFTMAX, где:
FFTMAX = 4 096 × 60 ÷ <reservedrangesplaceholder0>
для FR1
FFTMAX = 4 096 × 240 ÷ <reservedrangesplaceholder0>
для FR2
The cfg.PDCCH.
DataSource
, cfg.PDSCH.
DataSource
, и cfg.SSBurst.
DataSource
свойства не могут быть заданы с помощью случайного seed. Установите эти свойства с помощью двоичного формата вектора или с помощью одного из предопределенных векторов символов.
The info.WaveformResources.PDSCH.Resources.Codeword
выход всегда является массивом ячеек. Когда существует только одно кодовое слово, вторая камера элемент является пустым массивом (для примера {[1 0 ...],[]}
).
Когда cfg
вход является nrULCarrierConfig
объект, эти ограничения применяются.
The cfg.
WindowingPercent
свойство должно быть установлено в 0
или []
.
The cfg.
CarrierFrequency
свойство должно быть установлено в 0
.
The cfg.
SampleRate
свойство должно быть установлено в []
или значение, равное cfg.BWP.
SubcarrierSpacing
умножить размер БПФ. Размер БПФ должен быть степенью двойки в области значений от 128 до FFTMAX, где:
FFTMAX = 4 096 × 60 ÷ <reservedrangesplaceholder0>
для FR1
FFTMAX = 4 096 × 240 ÷ <reservedrangesplaceholder0>
для FR2
The cfg.PUSCH.
DataSource
, cfg.PUSCH.
DataSourceACK
, cfg.PUSCH.
DataSourceCSI1
, cfg.PUSCH.
DataSourceCSI2
, и cfg.PUSCH.
DataSourceCGUCI
свойства не могут быть заданы с помощью случайного seed. Установите эти свойства с помощью двоичного формата вектора или с помощью одного из предопределенных векторов символов.
The info.WaveformResources.PUSCH.Resources.Codeword
Выход всегда является массивом ячеек, где второй камерой элементом является пустой массив (для примера {[1 0 ...],[]}
).
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.