Информация о характеристиках объекта
Получение информации из 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 объектная функция.
Создание объекта системы телеметрии (TM) Консультативного комитета по системам космических данных (CCSDS). Установите тип сигнала как 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;
Получите характеристическую информацию о генераторе сигналов CCSDS TM.
info(tmWaveGen)
ans = struct with fields:
ActualCodeRate: 0.5000
NumBitsPerSymbol: 2
SubcarrierFrequency: []
Генерируют входные биты для генератора формы сигнала CCSDS TM, а затем генерируют форму сигнала.
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 объектная функция.
Создайте объект Rician channel System Европейского института телекоммуникационных стандартов (ETSI), а затем укажите его свойства.
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 Системный объект, выходная структура имеет эти поля, состоящие из информации физического уровня о генераторе сигнала DVB-S2.
| Область | Стоимость | Описание |
|---|---|---|
ModulationScheme | Строковый скаляр (по умолчанию) или массив ячеек символьных векторов | Схема модуляции, возвращаемая как строковый скаляр для потока с одним входом и массив ячеек символьных векторов длиной, равной NumInputStreams имущества dvbs2WaveformGenerator объект для потоков с множеством входов. |
LDPCCodeIdentifier | Строковый скаляр (по умолчанию) или массив ячеек символьных векторов | Идентификатор кода LDPC, используемый в прямой коррекции ошибок (FEC), возвращаемый как скаляр строки для потока с одним входом и массив ячеек символьных векторов длиной, равной NumInputStreams имущества dvbs2WaveformGenerator объект для потоков с множеством входов. |
Если obj является dvbs2xWaveformGenerator Системный объект, выходная структура имеет эти поля, состоящие из информации физического уровня о генераторе сигнала DVB-S2X.
| Область | Стоимость | Описание |
|---|---|---|
FECFrame | Строковый скаляр (по умолчанию) или массив ячеек символьных векторов | Формат кадра FEC, возвращаемый как строковый скаляр для потока с одним входом и массив ячеек символьных векторов длиной, равной NumInputStreams имущество dvbs2xWaveformGenerator объект для потоков с множеством входов. |
ModulationScheme | Строковый скаляр (по умолчанию) или массив ячеек символьных векторов | Схема модуляции, возвращаемая в виде строкового скаляра для потока с одним входом и массива ячеек символьных векторов длиной, равной NumInputStreams имущество dvbs2xWaveformGenerator объект для потоков с множеством входов. |
LDPCCodeIdentifier | Строковый скаляр (по умолчанию) или массив ячеек символьных векторов | Идентификатор кода LDPC, используемый в прямой коррекции ошибок (FEC), возвращаемый как скаляр строки для потока с одним входом и массив ячеек символьных векторов длиной, равной NumInputStreams имущество dvbs2xWaveformGenerator объект для потоков с множеством входов. |
Если obj является etsiRicianChannel Системный объект, структура вывода имеет эти поля, состоящие из информации о канале замирания.
| Область | Стоимость | Описание |
|---|---|---|
ChannelFilterDelay | 0 | Задержка фильтра канала в выборках, возвращенных как 0 всегда (из-за плоско-замирающего характера канала). |
ChannelFilterCoefficients | 1 | Коэффициент фильтра канала, используемый для преобразования коэффициентов усиления тракта в коэффициенты усиления отводов фильтра канала, возвращаемый как 1 всегда (как etsiRicianChannel описывает канал с одним трактом). |
NumSamplesProcessed | положительное целое число | Число выборок, обработанных объектом канала с момента последнего сброса, возвращенных как положительное целое число. |
Если obj является ccsdsTMWaveformGenerator Системный объект, выходная структура имеет эти поля, состоящие из информации физического уровня о генераторе формы сигнала CCSDS TM.
| Область | Стоимость | Описание |
|---|---|---|
ActualCodeRate | положительный скаляр в диапазоне [0 1] | Числовое значение кодовой скорости схемы кодирования канала, пересчитанное как положительный скаляр в диапазоне [0, 1]. Это значение используется для генерации сигнала CCSDS TM. |
NumBitsPerSymbol | положительное целое число | Число битов на модулированный символ, возвращаемое как положительное целое число. |
SubcarrierFrequency | положительный скаляр | Частота поднесущей, возвращаемая как положительный скаляр. Это поле применимо только в том случае, если Modulation имущество ccsdsTMWaveformGenerator объект имеет значение "PCM/PSK/PM". В других случаях это значение возвращается как null. |
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.