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

После создания необходимых объектов, описанных в разделе Создать конфигурацию (Create Configuration) или Системные объекты (System Objects), можно использовать эти объекты для генерации требуемой формы волны. Измените параметры объекта и постройте график формы волны.

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

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

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

  • Сгенерируйте сигнал конкретного формата и постройте график.

Сгенерируйте сигнал TC CCSDS

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

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

Сгенерируйте сигнал CCSDS TM

Создание Консультативного комитета по системам космических данных (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 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. Системный объект для отображения частотного спектра сгенерированной волны CCSDS TM во временной области.

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 and other objects of type uiflowcontainer, uimenu, uitoolbar. The axes 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('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);

Сгенерируйте DVB-S2X сигнал

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

См. также

| | | |

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте