Характеристическая информация об объекте
Получите информацию от 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 = gpsPCode
pgen = 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 equal
ans = logical
1
isequal(code1,code2) % code1 and code2 are unequal
ans = 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.