Характеристическая информация об объекте
Получите информацию от dvbs2WaveformGenerator Системный объект при помощи info функция. Затем получите выборки невязки фильтра при помощи flushFilter объектная функция.
Этот пример использует 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) Системный объект, и затем задайте его свойства.
s2WaveGen = dvbs2WaveformGenerator; s2WaveGen.NumInputStreams = 2; s2WaveGen.MODCOD = [21 16]; s2WaveGen.DFL = 47008; s2WaveGen.ISSYI = true; s2WaveGen.SamplesPerSymbol = 2; disp(s2WaveGen)
dvbs2WaveformGenerator with properties:
StreamFormat: "TS"
NumInputStreams: 2
FECFrame: "normal"
MODCOD: [21 16]
DFL: 47008
ScalingMethod: "outer radius as 1"
HasPilots: 0
RolloffFactor: 0.3500
FilterSpanInSymbols: 10
SamplesPerSymbol: 2
ISSYI: true
ISCRFormat: "short"
Show all properties
Получите характеристическую информацию о генераторе формы волны DVB-S2.
info(s2WaveGen)
ans = struct with fields:
ModulationScheme: {'16APSK' '8PSK'}
LDPCCodeIdentifier: {'5/6' '8/9'}
Создайте битовый вектор битов информации о входе, 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 data = cell(1,s2WaveGen.NumInputStreams); for i = 1:s2WaveGen.NumInputStreams numPkts = s2WaveGen.MinNumPackets(i)*numFrames; txRawPkts = randi([0 1],pktLen,numPkts); ISSY = randi([0 1],16,numPkts); % ISCRFormat is 'short' by default % 'short' implies the default length of ISSY as 2 bytes txPkts = [repmat(syncBits,1,numPkts);txRawPkts;ISSY]; % ISSY is appended at the end of UP data{i} = txPkts(:); end
Сгенерируйте форму волны временного интервала DVB-S2 с помощью информационных битов.
txWaveform = [s2WaveGen(data)];
Проверяйте выборки данных о невязке фильтра, которые остаются в задержке фильтра.
flushFilter(s2WaveGen)
ans = 20×1 complex
0.0153 + 0.4565i
0.2483 + 0.5535i
0.3527 + 0.3972i
0.3541 - 0.0855i
0.3505 - 0.4071i
0.4182 - 0.1962i
0.5068 + 0.0636i
0.4856 - 0.1532i
0.3523 - 0.4153i
0.1597 - 0.2263i
⋮
Получите информацию от dvbs2xWaveformGenerator Системный объект при помощи info функция. Затем получите выборки невязки фильтра при помощи flushFilter объектная функция.
Этот пример использует 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 = 2;
Создайте Второе поколение Спутника Цифрового телевидения, расширенное (DVB-S2X) Системный объект, и задайте его свойства. Используйте метод квантования времени и переменный режим настройки кодирования и модуляции.
s2xWaveGen = dvbs2xWaveformGenerator();
s2xWaveGen.HasTimeSlicing = true;
s2xWaveGen.NumInputStreams = 2;
s2xWaveGen.PLSDecimalCode = [135 145]; % QPSK 9/20 and 8PSK 25/36
s2xWaveGen.DFL = [18048 44656];
s2xWaveGen.PLScramblingIndex = [0 1];
disp(s2xWaveGen) dvbs2xWaveformGenerator with properties:
StreamFormat: "TS"
HasTimeSlicing: true
NumInputStreams: 2
PLSDecimalCode: [135 145]
DFL: [18048 44656]
PLScramblingIndex: [0 1]
RolloffFactor: 0.3500
FilterSpanInSymbols: 10
SamplesPerSymbol: 4
ISSYI: false
Show all properties
Получите характеристическую информацию о генераторе формы волны DVB-S2X.
info(s2xWaveGen)
ans = struct with fields:
FECFrame: {'normal' 'normal'}
ModulationScheme: {'QPSK' '8PSK'}
LDPCCodeIdentifier: {'9/20' '25/36'}
Создайте битовый вектор битов информации о входе, 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 data = cell(1, s2xWaveGen.NumInputStreams); for i = 1:s2xWaveGen.NumInputStreams numPkts = s2xWaveGen.MinNumPackets(i)*numFrames; txRawPkts = randi([0 1], pktLen, numPkts); txPkts = [repmat(syncBits, 1, numPkts); txRawPkts]; data{i} = txPkts(:); end
Сгенерируйте форму волны временного интервала DVB-S2X с помощью информационных битов.
txWaveform = s2xWaveGen(data);
Проверяйте выборки данных о невязке фильтра, которые остаются в задержке фильтра.
flushFilter(s2xWaveGen)
ans = 40×1 complex
-0.2412 - 0.0143i
-0.2619 - 0.0861i
-0.2726 - 0.1337i
-0.2511 - 0.1597i
-0.1851 - 0.1680i
-0.0780 - 0.1602i
0.0448 - 0.1288i
0.1598 - 0.0751i
0.2482 - 0.0049i
0.3026 + 0.0702i
⋮
Получите информацию от dvbrcs2WaveformGenerator Системный объект при помощи info объектная функция.
Создайте Системный объект DVB-RCS2, и затем задайте его свойства.
wg = dvbrcs2WaveformGenerator;
wg.ContentType = "control";
wg.WaveformID = 33;
wg.FilterSpanInSymbols = 12;
disp(wg) dvbrcs2WaveformGenerator with properties:
TransmissionFormat: "TC-LM"
ContentType: "control"
IsCustomWaveform: false
WaveformID: 33
PreBurstGuardLength: 0
PostBurstGuardLength: 0
FilterSpanInSymbols: 12
SamplesPerSymbol: 4
Use get to show all properties
Получите характеристическую информацию о генераторе формы волны DVB-RCS2.
info(wg)
ans = struct with fields:
BurstLength: 566
PayloadLengthInBytes: 100
MappingScheme: "QPSK"
CodeRate: "3/4"
PreambleLength: 32
PostambleLength: 0
PilotPeriod: 0
PilotBlockLength: 0
PermutationParameters: [23 10 8 2 1]
UniqueWord: "0C330C0FF3F3033F"
PilotSum: 0
Получите информацию от ccsdsTMWaveformGenerator Системный объект при помощи info функция. Затем получите выборки невязки фильтра при помощи flushFilter объектная функция.
Создайте Консультативный Комитет по Системам передачи и обработки данных Пробела (CCSDS) Системный объект Telemetry(TM). Установите тип формы волны как synchronization and channel coding с кодированием канала имеющей малую плотность проверки четности (LDPC). Отобразите свойства.
tmWaveGen = ccsdsTMWaveformGenerator; tmWaveGen.WaveformSource = "synchronization and channel coding"; tmWaveGen.ChannelCoding = "LDPC"; tmWaveGen.NumBitsInInformationBlock = 1024; tmWaveGen.Modulation = "QPSK"; tmWaveGen.CodeRate = "1/2"; disp(tmWaveGen)
ccsdsTMWaveformGenerator with properties:
WaveformSource: "synchronization and channel coding"
HasRandomizer: true
HasASM: true
PCMFormat: "NRZ-L"
Channel coding
ChannelCoding: "LDPC"
NumBitsInInformationBlock: 1024
CodeRate: "1/2"
IsLDPCOnSMTF: false
Digital modulation and filter
Modulation: "QPSK"
PulseShapingFilter: "root raised cosine"
RolloffFactor: 0.3500
FilterSpanInSymbols: 10
SamplesPerSymbol: 10
Use get to show all properties
Задайте количество передаваемых кадров.
numTF = 20;
Получите характеристическую информацию о генераторе формы волны TM CCSDS.
info(tmWaveGen)
ans = struct with fields:
ActualCodeRate: 0.5000
NumBitsPerSymbol: 2
SubcarrierFrequency: []
Сгенерируйте входные биты для генератора формы волны TM CCSDS, и затем сгенерируйте форму волны.
bits = randi([0 1], tmWaveGen.NumInputBits*numTF,1); waveform = tmWaveGen(bits);
Проверяйте выборки данных о невязке фильтра, которые остаются в задержке фильтра.
flushFilter(tmWaveGen)
ans = 100×1 complex
-0.0772 - 0.0867i
-0.0751 - 0.0859i
-0.0673 - 0.0788i
-0.0549 - 0.0654i
-0.0388 - 0.0469i
-0.0200 - 0.0250i
0.0002 - 0.0012i
0.0208 + 0.0227i
0.0405 + 0.0453i
0.0587 + 0.0653i
⋮
Получите информацию от etsiRicianChannel Системный объект при помощи info объектная функция.
Создайте Системный объект канала Института европейских стандартов по связи (ETSI) Rician, и затем задайте его свойства.
chan = etsiRicianChannel; chan.SampleRate = 2e5; chan.KFactor = 10; chan.MaximumDopplerShift = 20; chan.NumSinusoids = 58; disp(chan)
etsiRicianChannel with properties:
SampleRate: 200000
KFactor: 10
MaximumDopplerShift: 20
Use get to show all properties
Передайте данные через канал.
txWaveform = randi([0 1],500,1); rxWaveform = chan(txWaveform);
Получите характеристическую информацию о ETSI Rician канал.
info(chan)
ans = struct with fields:
ChannelFilterDelay: 0
ChannelFilterCoefficients: 1
NumSamplesProcessed: 500
Получите информацию от gpsPCode Система object™ при помощи info объектная функция. Наблюдайте, как точность начального времени влияет на генерацию Псевдокода.
Создайте Систему генератора Псевдокода object™, и затем задайте ее свойства.
format long
pgen = gpsPCodepgen =
gpsPCode with properties:
PRNID: 1
OutputCodeLength: 10230
InitialStateFormat: "seconds"
InitialTime: 0
pgen.InitialStateFormat = "chips";
pgen.InitialNumChipsElapsed = 8388600;Получите характеристическую информацию о генераторе Псевдокода.
pgen.info
ans = struct with fields:
TotalNumChipsElapsed: 8388600
TotalSecondsElapsed: 0.820000000000000
Усовершенствуйте время к четверти времени чипа Псевдокода (то есть, 0.25/10.23e6).
pgen1 = gpsPCode; pgen1.InitialTime = pgen.info.TotalSecondsElapsed + 0.25/10.23e6
pgen1 =
gpsPCode with properties:
PRNID: 1
OutputCodeLength: 10230
InitialStateFormat: "seconds"
InitialTime: 0.820000024437928
pgen1.info
ans = struct with fields:
TotalNumChipsElapsed: 8388600
TotalSecondsElapsed: 0.820000000000000
info функциональный выход не показывает шага в TotalNumChipsElapsed в этом случае, потому что TotalNumChipsElapsed вычисляется внутренне с помощью функционального round.
Усовершенствуйте время к половине времени чипа Псевдокода теперь (то есть, 0.5/10.23e6).
pgen2 = gpsPCode; pgen2.InitialTime = pgen.info.TotalSecondsElapsed + 0.5/10.23e6
pgen2 =
gpsPCode with properties:
PRNID: 1
OutputCodeLength: 10230
InitialStateFormat: "seconds"
InitialTime: 0.820000048875855
pgen2.info
ans = struct with fields:
TotalNumChipsElapsed: 8388601
TotalSecondsElapsed: 0.820000097751711
info функциональный выход теперь показывает TotalNumChipsElapsed постепенно увеличивается одним, из-за внутреннего использования round() функция.
Сравните выход каждого вызова Системного объекта.
code = pgen();
code1 = pgen1();
code2 = pgen2();
isequal(code, code1) % code and code1 are equalans = logical
1
isequal(code1,code2) % code1 and code2 are unequalans = logical
0
obj — Входной объектdvbs2WaveformGenerator | dvbs2xWaveformGenerator | dvbrcs2WaveformGenerator | ccsdsTMWaveformGenerator | etsiRicianChannel | gpsPCodeВходной объект, чтобы получить информацию от в виде dvbs2WaveformGenerator, dvbs2xWaveformGenerator, dvbrcs2WaveformGenerator, ccsdsTMWaveformGenerator, etsiRicianChannel, или gpsPCode Система object™.
s — Характеристическая информация заданного объектаХарактеристическая информация заданного объекта, возвращенного как структура. Поля структуры зависят от obj входной параметр.
Если obj dvbs2WaveformGenerator Системный объект, структура output имеет эти поля, состоя из информации о физическом уровне о Втором поколении Спутника Цифрового телевидения (DVB-S2) генератор формы волны.
| Поле | Значение | Описание |
|---|---|---|
ModulationScheme | Строковый скаляр (значение по умолчанию) или массив ячеек из символьных векторов | Схема Modulation, возвращенная как строковый скаляр для потока одно входа и массива ячеек из символьных векторов длины, равняется NumInputStreams свойство dvbs2WaveformGenerator объект для мультивходных потоков. |
LDPCCodeIdentifier | Строковый скаляр (значение по умолчанию) или массив ячеек из символьных векторов | Идентификатор LDPC кода, используемый в прямом исправлении ошибок (FEC), возвращенном как строковый скаляр для потока одно входа и массива ячеек из символьных векторов длины, равняется NumInputStreams свойство dvbs2WaveformGenerator объект для мультивходных потоков. |
Если obj dvbs2xWaveformGenerator Системный объект, структура output имеет эти поля, состоять из информации о физическом уровне о Втором поколении Спутника Цифрового телевидения расширило (DVB-S2X) генератор формы волны.
| Поле | Значение | Описание |
|---|---|---|
FECFrame | Строковый скаляр (значение по умолчанию) или массив ячеек из символьных векторов | Формат системы координат FEC, возвращенный как строковый скаляр для потока одно входа и массива ячеек из символьных векторов длины, равняется NumInputStreams свойство dvbs2xWaveformGenerator объект для мультивходных потоков. |
ModulationScheme | Строковый скаляр (значение по умолчанию) или массив ячеек из символьных векторов | Схема Modulation, возвращенная как строковый скаляр для потока одно входа и массива ячеек из символьных векторов длины, равняется NumInputStreams свойство dvbs2xWaveformGenerator объект для мультивходных потоков. |
LDPCCodeIdentifier | Строковый скаляр (значение по умолчанию) или массив ячеек из символьных векторов | Идентификатор LDPC кода, используемый в прямом исправлении ошибок (FEC), возвращенном как строковый скаляр для потока одно входа и массива ячеек из символьных векторов длины, равняется NumInputStreams свойство dvbs2xWaveformGenerator объект для мультивходных потоков. |
Если obj dvbrcs2WaveformGenerator Системный объект, структура output имеет эти поля, состоять из информации о физическом уровне о Втором поколении Цифрового телевидения Возвращает Канал по Спутнику (DVB-RCS2) генератор формы волны.
| Поле | Значение | Описание |
|---|---|---|
BurstLength | положительное целое число | Длина пакета, в символах, до импульсного формирования, возвратилась как положительное целое число. |
PayloadLengthInBytes | целое число в области значений [3, 65,535] | Длина входных данных, в байтах, к энкодеру прямого исправления ошибок (FEC), возвратилась как целое число в области значений [3, 65,535]. |
MappingScheme | "pi/2-BPSK", "QPSK", "8PSK", или "16QAM" | Отображение символа и схема модуляции сгенерировать форму волны DVB-RCS2, возвращенную как "pi/2-BPSK", "QPSK", "8PSK", или "16QAM". |
CodeRate | "1/3", "1/2", "2/3", "3/4", "4/5", "5/6", "6/7", или "7/8" | Скорость кода энкодера канала, возвращенного как "1/3", "1/2", "2/3", "3/4", "4/5", "5/6", "6/7", или "7/8". |
PreambleLength | целое число в области значений [0, 255] | Количество символов преамбулы, которые снабжаются префиксом к пакетным символам до модуляции, возвратилось как целое число в области значений [0, 255]. Когда вы устанавливаете |
PostambleLength | целое число в области значений [0, 255] | Количество символов постиноходи, которые снабжаются суффиксом к пакетным символам до модуляции, возвратилось как целое число в области значений [0, 255]. Когда вы устанавливаете |
PilotPeriod | целое число в области значений [0, 4095] | Экспериментальная периодичность символа, включая пакетные символы, возвратилась как целое число в области значений [0, 4095]. Этот период представляет длину последовательности от первого символа экспериментального блока к первому символу следующего экспериментального блока в символах или микросхемах. |
PilotBlockLength | целое число в области значений [1, 255] | Длина экспериментального блока, в символах, возвратилась как целое число в области значений [1, 255]. |
PermutationParameters | вектор с пятью элементами | Турбо сочетание энкодера DVB-RCS2 управляет параметрами, которые используются, чтобы сгенерировать турбо энкодер interleaver индексы, возвращенные как вектор с пятью элементами в порядке: P, Q 0, Q 1, Q 2, и Q 3. |
UniqueWord | символьный массив или строковый скаляр | Шестнадцатеричная строка, состоящая из объединенных символов преамбулы, одного экспериментального блока, и последовательности постиноходи, возвратилась как символьный массив или строковый скаляр. |
Если obj ccsdsTMWaveformGenerator Системный объект, структура output имеет эти поля, состоя из информации о физическом уровне о Консультативном Комитете по Системам передачи и обработки данных Пробела (CCSDS) генератор формы волны Telemetry(TM).
| Поле | Значение | Описание |
|---|---|---|
ActualCodeRate | положительная скалярная величина в области значений [0 1] | Числовое значение скорости кода схемы кодирования канала, возвращенной как положительная скалярная величина в области значений [0, 1]. Это значение используется, чтобы сгенерировать форму волны TM CCSDS. |
NumBitsPerSymbol | положительное целое число | Количество битов на модулируемый символ, возвращенный как положительное целое число. |
SubcarrierFrequency | положительная скалярная величина | Частота поднесущей, возвращенная как положительная скалярная величина. Это поле применимо только когда Modulation свойство ccsdsTMWaveformGenerator объект установлен в "PCM/PSK/PM". Для других случаев это значение возвращено как пустой указатель. |
Если obj etsiRicianChannel Системный объект, структура output имеет эти поля, состоя из информации об исчезающем канале.
| Поле | Значение | Описание |
|---|---|---|
ChannelFilterDelay | 0 | Фильтр канала задерживается в выборках, возвращенных как 0 всегда (из-за плоско исчезающей природы канала). |
ChannelFilterCoefficients | 1 | Коэффициент фильтра канала, используемый, чтобы преобразовать усиления пути, чтобы образовать канал усиления касания фильтра, возвратился как 1 всегда (как etsiRicianChannel описывает один канал пути). |
NumSamplesProcessed | положительное целое число | Количество отсчетов обрабатывается объектом канала начиная с последнего сброса, возвращенного как положительное целое число. |
Если obj gpsPCode Системный объект, структура output имеет эти поля, состоя из информации состояния о генераторе Псевдокода GPS.
| Поле | Значение | Описание |
|---|---|---|
TotalNumChipsElapsed | положительное целое число | Общее количество микросхем Псевдокода, которые протекли с начала недели, возвратилось как положительное целое число. Начало недели отмечено в полночь в субботу ночью - в воскресенье утром. |
TotalSecondsElapsed | скаляр с действительным знаком | Общие секунды протекли с начала недели, возвращенной как скаляр с действительным знаком. |
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.