После того, как вы создаете необходимые объекты, описанные в, Создают Настройку или Системные объекты, можно использовать эти объекты сгенерировать желаемую форму волны. Варьируйтесь параметры объекта и постройте формы волны.
В каждом разделе этих примеров, вас:
Создайте специфичный для формата объект настройки или Систему object™.
Создайте вектор-столбец или массив ячеек вектор-столбцов информационных битов для генерации сигналов.
Сгенерируйте специфичную для формата форму волны и постройте ее.
Создайте Консультативный Комитет по Системам передачи и обработки данных Пробела (CCSDS) Дистанционное управление (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.SpectrumAnalyzer Системный объект, чтобы отобразить спектр сигнала сгенерированной формы волны TC CCSDS.
scope = dsp.SpectrumAnalyzer; scope.SampleRate = cfg.SamplesPerSymbol*cfg.SymbolRate; scope(waveform)
Создайте Консультативный Комитет по Системам передачи и обработки данных Пробела (CCSDS) Системный объект Telemetry(TM) и форма волны.
Объект ccsdsTMWaveformGenerator
поддержки эти два стандарта TM CCSDS, в зависимости от типа входа к WaveformSource
свойство.
Синхронизация ТМ CCSDS и стандарт кодирования канала (CCSDS 131.0-B-3)
CCSDS гибкая усовершенствованная схема кодирования и модуляции телеметрического стандарта высокого показателя (CCSDS 131.2-B-1)
Стандарт по умолчанию для этого объекта является синхронизацией TM CCSDS и кодированием канала.
Создайте Системный объект и Сгенерируйте Форму волны для Схемы Кодирования Синхронизации и Канала CCSDS TM
tmWaveGen = ccsdsTMWaveformGenerator % CCSDS TM object with defualt properties
tmWaveGen = 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.SpectrumAnalyzer Системный объект, чтобы отобразить спектр частоты сгенерированной формы волны временного интервала TM CCSDS.
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 standard
NumTFInOnePLFrame = 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.SpectrumAnalyzer Системный объект, чтобы отобразить спектр сигнала сгенерированной формы волны временного интервала 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 properties
s2xWaveGen = 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