Сгенерируйте форму волны DVB-S2
dvbs2WaveformGenerator Система object™ генерирует Второе поколение Спутника Цифрового телевидения (DVB-S2) форма волны временного интервала, состоящая из сингла или нескольких систем координат физического уровня. Объект реализует аспекты генерации сигналов ETSI EN 302 307-1 V1.4.1 (2014-11) [1].
Сгенерировать форму волны DVB-S2:
Создайте dvbs2WaveformGenerator объект и набор его свойства.
Вызовите объект с аргументами, как будто это была функция.
Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты?
создает Системный объект генератора формы волны DVB-S2 по умолчанию.s2waveGen = dvbs2WaveformGenerator
свойства наборов с помощью одной или нескольких пар "имя-значение". Заключите каждое имя свойства в кавычки. Например, s2waveGen = dvbs2WaveformGenerator(Name,Value)dvbs2WaveformGenerator('NumInputStreams',4,'UPL',100) задает четыре входных потока, каждого с пользовательской пакетной длиной 100 битов.
Если в противном случае не обозначено, свойства являются ненастраиваемыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируют, когда вы вызываете их, и release функция разблокировала их.
Если свойство является настраиваемым, можно изменить его значение в любое время.
Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты.
StreamFormat — Введите потоковый формат"TS" (значение по умолчанию) | "GS"Введите потоковый формат в виде одного из этих значений.
"TS" — Для транспортного потокового формата
"GS" — Для типового потокового формата
Типы данных: char | string
NumInputStreams — Количество входных потоков (значение по умолчанию) | целое число в области значений [1, 256]Количество входных потоков в виде целого числа в области значений [1, 256].
Типы данных: double
UPL — Пользовательская пакетная длина (значение по умолчанию) | неотрицательное целое число | вектор из неотрицательных целых чисел Длина пользовательского пакета (UP) в битах в виде одной из этих опций.
Неотрицательное целое число — Использование эта опция с одно входом и мультивходными потоками. Если вы устанавливаете NumInputStreams свойство к значению, больше, чем 1, UP в каждом потоке должен быть равен целочисленному значению UPL свойство.
Вектор из неотрицательных целых чисел — Использование эта опция с мультивходными потоками только. Если вы устанавливаете NumInputStreams свойство к значению, больше, чем 1, UP в каждом потоке должен быть размером соответствующего элемента в этом векторе. Длина этого вектора должна быть равна NumInputStreams.
Примечание
Когда вы задаете UPL как мультивходной поток, все ВЗЛЕТЫ должны быть или packetized или в непрерывном потоке. Смешивание потоковых типов не поддерживается.
Максимальное значение UPL когда целочисленный скаляр или целочисленный элемент в векторе-строке должны быть меньше чем или равны соответствующему DFL значение свойства.
Для типового непрерывного потока, набор UPL к 0.
Чтобы включить это свойство, установите StreamFormat свойство к "GS". Если вы устанавливаете StreamFormat свойство к "TS", UPL фиксируется к 1 504 битам.
Типы данных: double
FECFrame — Формат системы координат FEC"normal" (значение по умолчанию) | "short"Формат системы координат прямого исправления ошибок (FEC) в виде одной из этих двух опций.
"normal" — Устанавливает длину кодовой комбинации низкой проверки четности плотности (LDPC) до 64 800 битов
"short" — Устанавливает длину кодовой комбинации LDPC до 16 200 битов
Настраиваемый: да
Типы данных: char | string
MODCOD — Схема Modulation и уровень FEC (значение по умолчанию) | целое число в области значений [1, 28] | вектор из целых чисел в области значений [1, 28]Схема Modulation и уровень FEC для входной передачи в виде одной из этих опций, как задано в ETSI EN 302 Раздел 307-1 5.5.2.2 Таблицы 12 [1].
Целое число в области значений [1, 28] — Использование эта опция с одно входом и мультивходными потоками. Если вы устанавливаете NumInputStreams свойство к значению, больше, чем 1, каждый поток имеет ту же схему модуляции и уровень кодирования.
Вектор из целых чисел в области значений [1, 28] — Использование эта опция с мультивходными потоками только. Если вы устанавливаете NumInputStreams свойство к значению, больше, чем 1, каждый входной поток имеет схему модуляции и уровень кодирования, равный соответствующему элементу в этом векторе. Длина этого вектора должна быть равна NumInputStreams.
Примечание
MODCOD значения 11, 17, 23, и 28 не допустимы, когда вы устанавливаете FECFrame свойство к "short" (как задано в ETSI EN 302 Раздел 307-1 5.3 Таблиц 5b [1]).
Настраиваемый: да
Типы данных: double
DFL — Длина поля данных (значение по умолчанию) | целое число в области значений [1, (K BCH−80)] | вектор из целых чисел в области значений [1, (K BCH−80)]Длина поля данных (DF) в битах в виде одной из этих опций. K BCH является незакодированной длиной блока BCH, как задано в ETSI EN 302 Раздел 307-1 5.3 Таблиц 5a и 5b [1].
Целое число в области значений [1, (K BCH−80)] — Использование эта опция с одно входом и мультивходными потоками. Если вы устанавливаете NumInputStreams свойство к значению, больше, чем 1, длина DF в основополосной системе координат каждого потока является тем же значением.
Вектор из целых чисел в области значений [1, (K BCH−80)] — Использование эта опция с мультивходными потоками только. Если вы устанавливаете NumInputStreams свойство к значению, больше, чем 1, длина поля данных в основополосной системе координат каждого потока должна быть размером соответствующего элемента в этом векторе. Длина этого вектора должна быть равна NumInputStreams.
Настраиваемый: да
Типы данных: double
ScalingMethod — Амплитуда созвездия масштабирующийся метод"outer radius as 1" (значение по умолчанию) | "unit average power"Амплитуда созвездия масштабирующийся метод в виде "outer radius as 1" или "unit average power".
Чтобы включить это свойство, установите MODCOD свойство к значению в области значений [18, 28], который указывает только 16APSK и 32APSK схемы модуляции.
Типы данных: char | string
HasPilots — Экспериментальная индикация блока или false (значение по умолчанию) | 1 или true | вектор из logical значенияЭкспериментальная индикация блока в виде логического значения 0 ложь), 1 TRUE), или вектор из logical значения. Установите это значение к 1 TRUE) чтобы указать на пилотов вставляются в систему координат физического уровня.
Если вы устанавливаете NumInputStreams свойство к значению, больше, чем 1, можно сконфигурировать пилотов для каждого потока путем определения этого свойства как вектора. Длина этого вектора должна быть равна NumInputStreams.
Настраиваемый: да
Типы данных: логический
RolloffFactor — Передайте фактор спада фильтра (значение по умолчанию) | 0.25| 0.2 Передайте фактор спада фильтра для формирования видеоимпульса в виде 0.35, 0.25, или 0.2.
Типы данных: double
FilterSpanInSymbols — Отфильтруйте промежуток в символах (значение по умолчанию) | положительное целое числоОтфильтруйте промежуток в символах в виде положительного целого числа.
Идеальная импульсная характеристика фильтра приподнятого косинуса является усеченной к длине, которая охватывает количество символов, заданных в этом свойстве.
Типы данных: double
SamplesPerSymbol — Количество отсчетов на символ (значение по умолчанию) | положительное целое числоКоличество отсчетов на символ в виде положительного целого числа.
Типы данных: double
ISSYI — Введите потоковый индикатор синхронизации или false (значение по умолчанию) | 1 или trueВведите потоковый индикатор (ISSY) синхронизации в виде логического значения 0 ложь) или 1 TRUE). Указать, которые вводят потоковую синхронизацию, используется, установите это значение к 1 TRUE).
Чтобы включить это свойство, установите NumInputStreams свойство к значению, больше, чем 1 и набор UPL свойство к ненулевому значению.
Типы данных: логический
ISCRFormat — Введите потоковый формат ссылки часов"short" (значение по умолчанию) | "long"Введите потоковый формат ссылки часов в виде одной из этих опций.
"short" — Указывает на длину ISSY как 2 байта
"long" — Указывает на длину ISSY как 3 байта
Когда вы устанавливаете StreamFormat свойство к "GS", NumInputStreams свойство к значению, больше, чем 1, UPL свойство к ненулевому значению и ISSYI к 1 TRUE), только "short" опция этого ISCRFormat свойство применимо.
Чтобы включить это свойство, установите StreamFormat свойство к "TS", NumInputStreams свойство к значению, больше, чем 1, и ISSYI свойство к 1 TRUE).
Типы данных: char | string
MinNumPackets — Минимальное количество пакетов, требуемых создать DFЭто свойство доступно только для чтения.
Минимальное количество пакетов, требуемых создать DF, возвратилось как одна из этих опций.
Целое число в области значений [1, 58,112] — Эта опция применяется с потоками одно входа только.
Вектор-строка из целых чисел в области значений [1, 58,112] — Эта опция применяется с мультивходными потоками только. Если вы устанавливаете NumInputStreams свойство к значению, больше, чем 1, минимальное количество пакетов, требуемых для каждого потока, равно соответствующему элементу в этом векторе. Длина этого вектора должна быть равна NumInputStreams.
Значение MinNumPackets вычисляется базирующийся значений DFL и UPL свойства.
Чтобы включить это свойство, установите UPL свойство к ненулевому значению.
Типы данных: double
генерирует форму волны временного интервала DVB-S2 от битов информации о входе.txWaveform = s2waveGen(data)
data — Введите информационные битыВведите информационные биты в виде одной из этих опций. Каждый элемент вектор-столбца или массива ячеек может иметь тип данных doubleint8, или logical.
Вектор-столбец с бинарным знаком — Использование эта опция с потоками одно входа.
Массив ячеек вектор-столбцов с бинарным знаком — Использование эта опция с мультивходными потоками. Каждый элемент массива представляет соответствующий входной поток. Длина массива ячеек должна быть равна значению NumInputStreams свойство.
Введите data, или как одно вход или как мультивходной поток, должен быть введен в одной из следующих форм.
Поток Packetized — Количество пакетов в каждом потоке должно быть целочисленным кратным MinNumPackets свойство.
Для packetized потока 8-битное синхронизирующее поле должно быть включено в начале каждого пакета. Объединенная длина пакета и его синхронизирующие биты должны быть равны соответствующему значению UPL свойство.
Непрерывный поток — количество битов для каждого потока должно быть целочисленным кратным DFL свойство.
Примечание
Когда вы устанавливаете StreamFormat свойство к "TS", синхронизирующий байт фиксируется как 47 шестнадцатеричных чисел.
Типы данных: double | int8 | logical | cell
txWaveform — Сгенерированный временной интервал форма волны DVB-S2Сгенерированный временной интервал форма волны DVB-S2, возвращенная как вектор-столбец. Форма волны сгенерирована в форме комплексных выборок синфазной квадратуры (IQ) и может состоять из одной системы координат физического уровня или нескольких систем координат физического уровня.
Когда вы устанавливаете NumInputStreams свойство к значению, больше, чем 1, поля данных, сгенерированные от различных входных потоков, объединено с помощью циклического метода.
Типы данных: double
Поддержка комплексного числа: Да
Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:
release(obj)
dvbs2WaveformGeneratorinfo | Характеристическая информация об объекте |
flushFilter | Сбросьте фильтр передачи |
step | Запустите алгоритм Системного объекта |
release | Высвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики |
clone | Создайте объект дублированной системы |
isLocked | Определите, используется ли Системный объект |
reset | Сбросьте внутренние состояния Системного объекта |
Сгенерируйте Второе поколение Спутника Цифрового телевидения (DVB-S2) форма волны временного интервала для транспортного потока (TS) одно входа с одной системой координат физического уровня (PL) на поток. Визуализируйте форму волны с помощью графиков созвездия и спектра сигнала.
Этот пример использует MAT-файлы с матрицами четности LDPC. Если MAT-файлы не доступны на пути, загрузите и разархивируйте MAT-файлы путем ввода этого кода в командной строке MATLAB.
if ~exist('dvbs2xLDPCParityMatrices.mat','file') if ~exist('s2xLDPCParityMatrices.zip','file') url = 'https://ssd.mathworks.com/supportfiles/spc/satcom/DVB/s2xLDPCParityMatrices.zip'; websave('s2xLDPCParityMatrices.zip',url); unzip('s2xLDPCParityMatrices.zip'); end addpath('s2xLDPCParityMatrices'); end
Задайте количество систем координат PL на поток.
numFrames = 1;
Создайте Системный объект DVB-S2. Задайте схему модуляции и уровень FEC (MODCOD) и длину поля данных (DFL).
s2WaveGen = dvbs2WaveformGenerator; s2WaveGen.MODCOD = 21; % 16APSK 5/6 s2WaveGen.DFL = 39690; s2WaveGen.HasPilots = true; % Pilot insertion indication disp(s2WaveGen)
dvbs2WaveformGenerator with properties:
StreamFormat: "TS"
NumInputStreams: 1
FECFrame: "normal"
MODCOD: 21
DFL: 39690
ScalingMethod: "outer radius as 1"
HasPilots: 1
RolloffFactor: 0.3500
FilterSpanInSymbols: 10
SamplesPerSymbol: 4
Show all properties
Создайте немного вектора информационных битов, data, из конкатенированных пользовательских пакетов TS.
syncBits = [0 1 0 0 0 1 1 1]'; % Sync byte for TS packet is 47 Hex pktLen = 1496; % UP length without sync bits is 1496 numPkts = s2WaveGen.MinNumPackets*numFrames; txRawPkts = randi([0 1],pktLen,numPkts); txPkts = [repmat(syncBits,1,numPkts); txRawPkts]; data = txPkts(:);
Сгенерируйте форму волны временного интервала DVB-S2 с помощью информационных битов, data.
txWaveform = s2WaveGen(data);
Визуализируйте график созвездия для сгенерированной формы волны временного интервала DVB-S2 путем создания comm.ConstellationDiagram Системного объекта.
sps = s2WaveGen.SamplesPerSymbol; constel = comm.ConstellationDiagram('ColorFading',true, ... 'ShowTrajectory',0, ... 'SamplesPerSymbol',sps, ... 'ShowReferenceConstellation',false, ... 'XLimits',[-0.5 0.5], 'YLimits',[-0.5 0.5]); plHeaderLen = 90*sps; % PL header length constel(txWaveform(plHeaderLen+1:end)); release(constel);

Отобразите спектр частоты сгенерированной формы волны временного интервала DVB-S2 путем создания dsp.SpectrumAnalyzer Системный объект.
BW = 36e6; % Typical satellite channel bandwidth Fsym = BW/(1+s2WaveGen.RolloffFactor); Fsamp = Fsym*sps; scope = dsp.SpectrumAnalyzer('SampleRate',Fsamp); scope(txWaveform)

Сгенерируйте Второе поколение Спутника Цифрового телевидения (DVB-S2) форма волны временного интервала для мультивходного типового потока (GS) с несколькими системами координат физического уровня (PL) на поток.
Этот пример требует MAT-файлов с матрицами четности LDPC. Если они не доступны на пути, выполните следующие команды, чтобы загрузить и разархивировать MAT-файлы.
if ~exist('dvbs2xLDPCParityMatrices.mat','file') if ~exist('s2xLDPCParityMatrices.zip', 'file') url = 'https://ssd.mathworks.com/supportfiles/spc/satcom/DVB/s2xLDPCParityMatrices.zip'; websave('s2xLDPCParityMatrices.zip',url); unzip('s2xLDPCParityMatrices.zip'); end addpath('s2xLDPCParityMatrices'); end
Задайте количество систем координат PL на поток.
numFrames = 3;
Создайте Системный объект DVB-S2 с переменной настройкой кодирования и модуляции для мультивхода GS. Задайте схему модуляции и уровень FEC (MODCOD) и длину поля данных (DFL).
s2WaveGen = dvbs2WaveformGenerator; s2WaveGen.StreamFormat = "GS"; s2WaveGen.NumInputStreams = 2; s2WaveGen.MODCOD = [6 24]; % QPSK 2/3 and 32APSK 3/4 s2WaveGen.DFL = [42960 48328]; s2WaveGen.HasPilots = true; s2WaveGen.SamplesPerSymbol = 10; disp(s2WaveGen)
dvbs2WaveformGenerator with properties:
StreamFormat: "GS"
NumInputStreams: 2
UPL: 0
FECFrame: "normal"
MODCOD: [6 24]
DFL: [42960 48328]
ScalingMethod: "outer radius as 1"
HasPilots: 1
RolloffFactor: 0.3500
FilterSpanInSymbols: 10
SamplesPerSymbol: 10
Создайте немного вектора битов информации о входе для каждого пользовательского пакета GS.
data = cell(s2WaveGen.NumInputStreams,1); for i = 1:s2WaveGen.NumInputStreams data{i} = randi([0 1],s2WaveGen.DFL(i)*numFrames,1,'int8'); end
Сгенерируйте форму волны временного интервала DVB-S2 с битами информации о входе.
txWaveform = s2WaveGen(data);
[1] EN 302 307-1 V1.4.1 Стандарта ETSI (2014-11). Цифровое телевидение (DVB); Структура Структурирования Второго поколения, Кодирование Канала и Системы Модуляции для Широковещательной передачи, Interactive Services, Сбора Новостей и других Широкополосных Спутниковых Приложений (DVB-S2).
Указания и ограничения по применению:
Для всех свойств, которые поддерживают вход массива строк и массива ячеек, генерация кода только поддерживается с входом массива ячеек.
Смотрите системные объекты в Генерации кода MATLAB (MATLAB Coder).
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.