Сгенерируйте формы волны

После того, как вы создаете необходимые объекты, описанные в, Создают Настройку или Системные объекты, можно использовать эти объекты сгенерировать желаемую форму волны. Варьируйтесь параметры объекта и постройте формы волны.

В каждом разделе этих примеров, вас:

  • Создайте специфичный для формата объект настройки или Систему object™.

  • Создайте вектор-столбец или массив ячеек вектор-столбцов информационных битов для генерации сигналов.

  • Сгенерируйте специфичную для формата форму волны и постройте ее.

Сгенерируйте форму волны TC CCSDS

Создайте Консультативный Комитет по Системам передачи и обработки данных Пробела (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)

Figure Spectrum Analyzer contains an axes object and other objects of type uiflowcontainer, uimenu, uitoolbar. The axes object contains an object of type line. This object represents Channel 1.

Сгенерируйте форму волны CCSDS TM

Создайте Консультативный Комитет по Системам передачи и обработки данных Пробела (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
           ChannelCoding: "RS"
         RSMessageLength: 223
     RSInterleavingDepth: 1
    IsRSMessageShortened: false

   Digital modulation and filter
              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)

Figure Spectrum Analyzer contains an axes object and other objects of type uiflowcontainer, uimenu, uitoolbar. The axes object contains an object of type line. This object represents Channel 1.

Создайте Системный объект и Сгенерируйте Форму волны для 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

Сгенерируйте форму волны DVB-S2

Этот пример использует 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

Создайте Второе поколение Спутника Цифрового телевидения (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);

Сгенерируйте форму волны DVB-S2X

Этот пример использует 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

Создайте Второе поколение Спутника Цифрового телевидения, расширенное (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);

Сгенерируйте форму волны DVB-RCS2

Создайте Второе поколение Цифрового телевидения, Возвращают Канал по Спутнику (DVB-RCS2) Системный объект и форма волны. Используйте Name,Value пары, чтобы задать параметры передачи.

wg = dvbrcs2WaveformGenerator("WaveformID",2,"PreBurstGuardLength",6,"SamplesPerSymbol",6);
disp(wg)
  dvbrcs2WaveformGenerator with properties:

      TransmissionFormat: "TC-LM"
             ContentType: "traffic"
        IsCustomWaveform: false
              WaveformID: 2
     PreBurstGuardLength: 6
    PostBurstGuardLength: 0
     FilterSpanInSymbols: 10
        SamplesPerSymbol: 6

  Use get to show all properties

Сгенерируйте модуль данных о протоколе (PDU) системы координат.

framePDU = randi([0 1],wg.FramePDULength,1);

Сгенерируйте пакетные выборки DVB-RCS2.

txWaveform = wg(framePDU);

Ссылки

[1] Синхронизация TM и кодирование канала. Рекомендация для стандартов системы передачи и обработки данных пробела. CCSDS 131.0-B-3. Синяя книга. Выпуск 3. Вашингтон, округ Колумбия: CCSDS, сентябрь 2017.

[2] Гибкая усовершенствованная схема кодирования и модуляции телеметрических приложений высокого показателя. Рекомендация для стандартов системы передачи и обработки данных пробела. CCSDS 131.2-B-1. Синяя книга. Выпуск 1. Вашингтон, округ Колумбия: CCSDS, март 2012.

Смотрите также

Объекты

Функции

Похожие темы