Характеристическая информация об объекте
Получите информацию от 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
⋮
Получите информацию от 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 properties: ChannelCoding: "LDPC" NumBitsInInformationBlock: 1024 CodeRate: "1/2" IsLDPCOnSMTF: false Digital modulation and filter properties: 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
obj
— Входной объектdvbs2WaveformGenerator
| dvbs2xWaveformGenerator
| etsiRicianChannel
| ccsdsTMWaveformGenerator
Входной объект, чтобы получить информацию от в виде dvbs2WaveformGenerator
, dvbs2xWaveformGenerator
, ccsdsTMWaveformGenerator
, или etsiRicianChannel
Система 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
etsiRicianChannel
Системный объект, структура output имеет эти поля, состоя из информации об исчезающем канале.
Поле | Значение | Описание |
---|---|---|
ChannelFilterDelay | 0
| Фильтр канала задерживается в выборках, возвращенных как 0 всегда (из-за плоско исчезающей природы канала). |
ChannelFilterCoefficients | 1
| Коэффициент фильтра канала, используемый, чтобы преобразовать усиления пути, чтобы образовать канал усиления касания фильтра, возвратился как 1 всегда (как etsiRicianChannel описывает один канал пути). |
NumSamplesProcessed | положительное целое число | Количество выборок обрабатывается объектом канала начиная с последнего сброса, возвращенного как положительное целое число. |
Если obj
ccsdsTMWaveformGenerator
Системный объект, структура output имеет эти поля, состоя из информации о физическом уровне о генераторе формы волны TM CCSDS.
Поле | Значение | Описание |
---|---|---|
ActualCodeRate | положительная скалярная величина в области значений [0 1] | Числовое значение уровня кода схемы кодирования канала, повторно настроенной как положительная скалярная величина в области значений [0, 1]. Это значение используется, чтобы сгенерировать форму волны TM CCSDS. |
NumBitsPerSymbol | положительное целое число | Количество битов на модулируемый символ, возвращенный как положительное целое число. |
SubcarrierFrequency | положительная скалярная величина | Частота поднесущей, возвращенная как положительная скалярная величина. Это поле применимо только когда Modulation свойство ccsdsTMWaveformGenerator объект установлен в "PCM/PSK/PM" . Для других случаев это значение возвращено как пустой указатель. |
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.