После создания необходимых объектов, описанных в разделе Создать конфигурацию (Create Configuration) или Системные объекты (System Objects), можно использовать эти объекты для генерации требуемой формы волны. Измените параметры объекта и постройте график формы волны.
В каждом разделе этих примеров вы:
Создайте специфичный для формата объект строения или системный object™.
Создайте вектор-столбец или массив ячеек векторов-столбцов из информационных бит для генерации сигналов.
Сгенерируйте сигнал конкретного формата и постройте график.
Создайте объект строения Консультативного комитета по системам космических данных (CCSDS) Telecommand (TC) и форму волны. Использование Name,Value пар, чтобы задать параметры передачи.
cfg = ccsdsTCConfig ('ChannelCoding', "LDPC", 'LDPCCodewordLength', 512); TFLength = 12; % Transfer frame length bits = randi([0 1],8*TFLength,1); % Bits in TC transfer frame waveform = ccsdsTCWaveform(bits,cfg);
Создайте dsp. Системный объект для отображения спектра сигналов сгенерированной волны CCSDS TC.
scope = dsp.SpectrumAnalyzer; scope.SampleRate = cfg.SamplesPerSymbol*cfg.SymbolRate; scope(waveform)

Создание Консультативного комитета по системам космических данных (CCSDS) телеметрия (TM) Системного объекта и форма волны.
Объект ccsdsTMWaveformGenerator поддерживает эти два стандарта CCSDS TM, в зависимости от типа входов WaveformSource свойство.
Стандарт синхронизации TM CCSDS и канального кодирования (CCSDS 131.0-B-3)
Гибкая расширенная схема кодирования и модуляции CCSDS для высокоскоростного стандарта телеметрии (CCSDS 131.2-B-1)
Стандартом по умолчанию для этого объекта является синхронизация CCSDS TM и кодирование канала.
Создайте системный объект и Сгенерируйте сигнал для синхронизации CCSDS TM и схемы канального кодирования
tmWaveGen = ccsdsTMWaveformGenerator % CCSDS TM object with defualt propertiestmWaveGen =
ccsdsTMWaveformGenerator with properties:
WaveformSource: "synchronization and channel coding"
HasRandomizer: true
HasASM: true
PCMFormat: "NRZ-L"
Channel coding properties:
ChannelCoding: "RS"
RSMessageLength: 223
RSInterleavingDepth: 1
IsRSMessageShortened: false
Digital modulation and filter properties:
Modulation: "QPSK"
PulseShapingFilter: "root raised cosine"
RolloffFactor: 0.3500
FilterSpanInSymbols: 10
SamplesPerSymbol: 10
Show all properties
bits = randi([0 1], tmWaveGen.NumInputBits,1); % Input information bits
waveform = tmWaveGen(bits);Создайте dsp. Системный объект для отображения частотного спектра сгенерированной волны CCSDS TM во временной области.
BW = 36e6; % Typical satellite channel bandwidth Fsamp = tmWaveGen.SamplesPerSymbol*BW; scope = dsp.SpectrumAnalyzer('SampleRate',Fsamp,'AveragingMethod','Exponential'); scope(waveform)

Создайте системный объект и Сгенерируйте форму волны для гибкой схемы кодирования и модуляции CCSDS TM
В данном примере используйте запись через точку для определения параметров передачи.
tmWaveGen = ccsdsTMWaveformGenerator; tmWaveGen.WaveformSource = "flexible advanced coding and modulation"; tmWaveGen.ACMFormat = 14; % 16APSK
Вычислите количество систем координат передачи в одной системе координат физического слоя. Сгенерируйте форму волны, используя информационные биты, data.
NumTFInOnePLFrame = tmWaveGen.MinNumTransferFrames*16 % One PL frame consists of 16 codewords, as specified in the standardNumTFInOnePLFrame = 192
waveform = []; % Initialize waveform as null % Generate waveform for iTF = 1:NumTFInOnePLFrame bits = randi([0 1], tmWaveGen.NumInputBits, 1); waveform = [waveform;tmWaveGen(bits)]; end
Этот пример использует MAT-файлы с матрицами четности LDPC. Если MAT-файлы недоступны в пути, загрузите и разархивируйте MAT-файлы, введя этот код в командной строке MATLAB.
if ~exist('s2xLDPCParityMatrices.zip','file') url = 'https://ssd.mathworks.com/supportfiles/spc/satcom/DVB/s2xLDPCParityMatrices.zip'; websave('s2xLDPCParityMatrices.zip',url); unzip('s2xLDPCParityMatrices.zip'); addpath('s2xLDPCParityMatrices') end
Создайте цифровой видеовещательный спутник второй Генерации (DVB-S2) Системного объекта и форму волны. Использование Name,Value пар, чтобы задать параметры передачи.
s2WaveGen = dvbs2WaveformGenerator("NumInputStreams",2,"MODCOD",[6 19],"RolloffFactor",0.25 ); disp(s2WaveGen)
dvbs2WaveformGenerator with properties:
StreamFormat: "TS"
NumInputStreams: 2
FECFrame: "normal"
MODCOD: [6 19]
DFL: 15928
ScalingMethod: "outer radius as 1"
HasPilots: 0
RolloffFactor: 0.2500
FilterSpanInSymbols: 10
SamplesPerSymbol: 4
ISSYI: false
Show all properties
Инициализируйте параметры симуляции.
numFramesPerStream = 1; % Number of PL frames generated per stream syncBits = [0 1 0 0 0 1 1 1]'; % Sync byte of TS packet (47 HEX) pktLen = 1496; % User packet (UP) length without sync bits is 1496 numPktsPerStream = s2WaveGen.MinNumPackets*numFramesPerStream; % Number of packets required to fill data field per stream
Сгенерируйте пакеты транспортного потока (TS) на поток.
data = cell(s2WaveGen.NumInputStreams,1); for i = 1:s2WaveGen.NumInputStreams txRawPkts = randi([0 1],pktLen,numPktsPerStream(i)); txPkts = [repmat(syncBits,1,numPktsPerStream(i)); txRawPkts]; data{i} = txPkts(:); end
Сгенерируйте DVB-S2 сигнал временной области, используя информационные биты, data.
txWaveform = s2WaveGen(data);
Создайте dsp. Системный объект для отображения спектра сигнала сгенерированной DVB-S2 волны во временной области.
BW = 36e6; % Typical satellite channel bandwidth Fsym = BW/(1+s2WaveGen.RolloffFactor); Fsamp = Fsym*s2WaveGen.SamplesPerSymbol; spectrum = dsp.SpectrumAnalyzer('SampleRate',Fsamp); spectrum(txWaveform); release(spectrum);

Этот пример использует MAT-файлы с матрицами четности LDPC. Если MAT-файлы недоступны в пути, загрузите и разархивируйте MAT-файлы, введя этот код в командной строке MATLAB.
if ~exist('s2xLDPCParityMatrices.zip', 'file') url = 'https://ssd.mathworks.com/supportfiles/spc/satcom/DVB/s2xLDPCParityMatrices.zip'; websave('s2xLDPCParityMatrices.zip',url); unzip('s2xLDPCParityMatrices.zip'); addpath('s2xLDPCParityMatrices') end
Создайте цифровой видеовещательный спутник Второй Генерации расширенной (DVB-S2X) Системного объекта и формы волны.
s2xWaveGen = dvbs2xWaveformGenerator % DVB-S2X object with defualt propertiess2xWaveGen =
dvbs2xWaveformGenerator with properties:
StreamFormat: "TS"
HasTimeSlicing: false
NumInputStreams: 1
PLSDecimalCode: 132
DFL: 18448
PLScramblingIndex: 0
RolloffFactor: 0.3500
FilterSpanInSymbols: 10
SamplesPerSymbol: 4
Show all properties
Инициализируйте параметры симуляции.
numFrames = 3; % Number of PL frames generated per stream syncBits = [0 1 0 0 0 1 1 1]'; % Sync byte of TS packet (47 HEX) pktLen = 1496; % User packet (UP) length without sync bits is 1496 numPkts = s2xWaveGen.MinNumPackets*numFrames; % Number of packets required to fill data field per stream
Сгенерируйте пакеты транспортного потока (TS) на поток.
txRawPkts = randi([0 1], pktLen, numPkts); txPkts = [repmat(syncBits, 1, numPkts);txRawPkts]; data = txPkts(:);
Сгенерируйте DVB-S2X сигнал временной области, используя информационные биты, data.
txWaveform = s2xWaveGen(data);
[1] Синхронизация TM и кодирование канала. Рекомендация по стандартам системы космических данных. CCSDS 131.0-B-3. Синяя книга. Выпуск 3. Вашингтон, округ Колумбия: CCSDS, сентябрь 2017 года.
[2] Гибкая расширенная схема кодирования и модуляции для высокоскоростных приложений телеметрии. Рекомендация по стандартам системы космических данных. CCSDS 131.2-B-1. Синяя книга. Выпуск 1. Вашингтон, округ Колумбия: CCSDS, март 2012 года.
ccsdsTCConfig | ccsdsTCWaveform | ccsdsTMWaveformGenerator | dvbs2WaveformGenerator | dvbs2xWaveformGenerator