Характеристическая информация об объекте
Получение информации из 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) Системный объект Digital Video Broadcasting, а затем укажите его свойства.
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;
Создайте Digital Video Broadcasting Satellite Second Генерации extended (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) телеметрия (ТМ) Системного объекта. Установите тип формы волны следующим 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
функция объекта.
Создайте канал Райса Европейского института телекоммуникационных стандартов (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 Ricis.
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 | Строковый скаляр (по умолчанию) или массив ячеек из векторов символов | Схема модуляции, возвращенная как строковый скаляр для одновходного потока и массив ячеек из векторов символов длины, равной NumInputStreams свойство dvbs2WaveformGenerator объект для мультивходов. |
LDPCCodeIdentifier | Строковый скаляр (по умолчанию) или массив ячеек из векторов символов | Идентификатор кода LDPC, используемый в прямой коррекции ошибок (FEC), возвращаемый как строковый скаляр для потока с одним входом и массив ячеек из векторов символов с длиной, равной NumInputStreams свойство dvbs2WaveformGenerator объект для мультивходов. |
Если obj
является dvbs2xWaveformGenerator
Системный объект, структура output имеет эти поля, состоящие из информации физического слоя о DVB-S2X генераторе формы волны.
Область | Значение | Описание |
---|---|---|
FECFrame | Строковый скаляр (по умолчанию) или массив ячеек из векторов символов | Формат системы координат, возвращенный как строковый скаляр для одновходного потока и массив ячеек из векторов символов длины, равной NumInputStreams свойство dvbs2xWaveformGenerator объект для мультивходов. |
ModulationScheme | Строковый скаляр (по умолчанию) или массив ячеек из векторов символов | Схема модуляции, возвращенная как строковый скаляр для одновходного потока и массив ячеек из векторов символов длины, равной NumInputStreams свойство dvbs2xWaveformGenerator объект для мультивходов. |
LDPCCodeIdentifier | Строковый скаляр (по умолчанию) или массив ячеек из векторов символов | Идентификатор кода LDPC, используемый в прямой коррекции ошибок (FEC), возвращаемый как строковый скаляр для потока с одним входом и массив ячеек из векторов символов с длиной, равной NumInputStreams свойство dvbs2xWaveformGenerator объект для мультивходов. |
Если obj
является etsiRicianChannel
Системный объект, структура output имеет эти поля, состоящие из информации о замирающем канале.
Область | Значение | Описание |
---|---|---|
ChannelFilterDelay | 0 | Задержка фильтра канала в выборках, возвращенных как 0 всегда (из-за плоско-затухающего характера канала). |
ChannelFilterCoefficients | 1 | Коэффициент фильтра канала, используемый для преобразования коэффициентов усиления пути в коэффициенты усиления отвода канала, возвращенный как 1 всегда (как etsiRicianChannel описывает один канал пути). |
NumSamplesProcessed | положительное целое число | Количество выборок, обработанных объектом канала с момента последнего сброса, возвращенное в виде положительного целого числа. |
Если obj
является ccsdsTMWaveformGenerator
Системный объект, структура output имеет эти поля, состоящие из информации физического слоя о генераторе формы волны CCSDS TM.
Область | Значение | Описание |
---|---|---|
ActualCodeRate | положительная скалярная величина в области значений [0 1] | Числовое значение скорости кода схемы кодирования канала, измененное как положительная скалярная величина в область значений [0, 1]. Это значение используется для генерации сигнала CCSDS TM. |
NumBitsPerSymbol | положительное целое число | Количество бит на модулируемый символ, возвращаемое как положительное целое число. |
SubcarrierFrequency | положительная скалярная величина | Частота поднесущей, возвращенная как положительная скалярная величина. Это поле применимо только при Modulation свойство ccsdsTMWaveformGenerator для объекта задано значение "PCM/PSK/PM" . В других случаях это значение возвращается как null. |
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.