info

Характеристическая информация об объекте

    Синтаксис

    Описание

    пример

    s = info(obj) возвращает структуру, содержащую характеристическую информацию заданного входного объекта obj.

    Примеры

    свернуть все

    Получите информацию от 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) Системный объект, и затем задайте его свойства.

    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;

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

    Получите информацию от dvbrcs2WaveformGenerator Системный объект при помощи info объектная функция.

    Создайте Системный объект DVB-RCS2, и затем задайте его свойства.

    wg = dvbrcs2WaveformGenerator;
    wg.ContentType = "control";
    wg.WaveformID = 33;
    wg.FilterSpanInSymbols = 12;
    disp(wg)
      dvbrcs2WaveformGenerator with properties:
    
          TransmissionFormat: "TC-LM"
                 ContentType: "control"
            IsCustomWaveform: false
                  WaveformID: 33
         PreBurstGuardLength: 0
        PostBurstGuardLength: 0
         FilterSpanInSymbols: 12
            SamplesPerSymbol: 4
    
      Use get to show all properties
    

    Получите характеристическую информацию о генераторе формы волны DVB-RCS2.

    info(wg)
    ans = struct with fields:
                  BurstLength: 566
         PayloadLengthInBytes: 100
                MappingScheme: "QPSK"
                     CodeRate: "3/4"
               PreambleLength: 32
              PostambleLength: 0
                  PilotPeriod: 0
             PilotBlockLength: 0
        PermutationParameters: [23 10 8 2 1]
                   UniqueWord: "0C330C0FF3F3033F"
                     PilotSum: 0
    
    

    Получите информацию от ccsdsTMWaveformGenerator Системный объект при помощи info функция. Затем получите выборки невязки фильтра при помощи flushFilter объектная функция.

    Создайте Консультативный Комитет по Системам передачи и обработки данных Пробела (CCSDS) Системный объект Telemetry(TM). Установите тип формы волны как 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
                    ChannelCoding: "LDPC"
        NumBitsInInformationBlock: 1024
                         CodeRate: "1/2"
                     IsLDPCOnSMTF: false
    
       Digital modulation and filter
                       Modulation: "QPSK"
               PulseShapingFilter: "root raised cosine"
                    RolloffFactor: 0.3500
              FilterSpanInSymbols: 10
                 SamplesPerSymbol: 10
    
      Use get to show all properties
    

    Задайте количество передаваемых кадров.

    numTF = 20;

    Получите характеристическую информацию о генераторе формы волны TM CCSDS.

    info(tmWaveGen)
    ans = struct with fields:
             ActualCodeRate: 0.5000
           NumBitsPerSymbol: 2
        SubcarrierFrequency: []
    
    

    Сгенерируйте входные биты для генератора формы волны TM CCSDS, и затем сгенерируйте форму волны.

    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) Rician, и затем задайте его свойства.

    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 Rician канал.

    info(chan)
    ans = struct with fields:
               ChannelFilterDelay: 0
        ChannelFilterCoefficients: 1
              NumSamplesProcessed: 500
    
    

    Получите информацию от gpsPCode Система object™ при помощи info объектная функция. Наблюдайте, как точность начального времени влияет на генерацию Псевдокода.

    Создайте Систему генератора Псевдокода object™, и затем задайте ее свойства.

    format long
    pgen = gpsPCode
    pgen = 
      gpsPCode with properties:
    
                     PRNID: 1
          OutputCodeLength: 10230
        InitialStateFormat: "seconds"
               InitialTime: 0
    
    
    pgen.InitialStateFormat = "chips";
    pgen.InitialNumChipsElapsed = 8388600;

    Получите характеристическую информацию о генераторе Псевдокода.

    pgen.info
    ans = struct with fields:
        TotalNumChipsElapsed: 8388600
         TotalSecondsElapsed: 0.820000000000000
    
    

    Усовершенствуйте время к четверти времени чипа Псевдокода (то есть, 0.25/10.23e6).

    pgen1 = gpsPCode;
    pgen1.InitialTime = pgen.info.TotalSecondsElapsed + 0.25/10.23e6
    pgen1 = 
      gpsPCode with properties:
    
                     PRNID: 1
          OutputCodeLength: 10230
        InitialStateFormat: "seconds"
               InitialTime: 0.820000024437928
    
    
    pgen1.info
    ans = struct with fields:
        TotalNumChipsElapsed: 8388600
         TotalSecondsElapsed: 0.820000000000000
    
    

    info функциональный выход не показывает шага в TotalNumChipsElapsed в этом случае, потому что TotalNumChipsElapsed вычисляется внутренне с помощью функционального round.

    Усовершенствуйте время к половине времени чипа Псевдокода теперь (то есть, 0.5/10.23e6).

    pgen2 = gpsPCode;
    pgen2.InitialTime = pgen.info.TotalSecondsElapsed + 0.5/10.23e6
    pgen2 = 
      gpsPCode with properties:
    
                     PRNID: 1
          OutputCodeLength: 10230
        InitialStateFormat: "seconds"
               InitialTime: 0.820000048875855
    
    
    pgen2.info
    ans = struct with fields:
        TotalNumChipsElapsed: 8388601
         TotalSecondsElapsed: 0.820000097751711
    
    

    info функциональный выход теперь показывает TotalNumChipsElapsed постепенно увеличивается одним, из-за внутреннего использования round() функция.

    Сравните выход каждого вызова Системного объекта.

    code = pgen();
    code1 = pgen1();
    code2 = pgen2();
    isequal(code, code1) % code and code1 are equal
    ans = logical
       1
    
    
    isequal(code1,code2) % code1 and code2 are unequal
    ans = logical
       0
    
    

    Входные параметры

    свернуть все

    Входной объект, чтобы получить информацию от в виде dvbs2WaveformGenerator, dvbs2xWaveformGenerator, dvbrcs2WaveformGenerator, ccsdsTMWaveformGenerator, etsiRicianChannel, или gpsPCode Система object™.

    Выходные аргументы

    свернуть все

    Характеристическая информация заданного объекта, возвращенного как структура. Поля структуры зависят от obj входной параметр.

    • Если obj dvbs2WaveformGenerator Системный объект, структура output имеет эти поля, состоя из информации о физическом уровне о Втором поколении Спутника Цифрового телевидения (DVB-S2) генератор формы волны.

      Поле ЗначениеОписание
      ModulationSchemeСтроковый скаляр (значение по умолчанию) или массив ячеек из символьных векторовСхема Modulation, возвращенная как строковый скаляр для потока одно входа и массива ячеек из символьных векторов длины, равняется NumInputStreams свойство dvbs2WaveformGenerator объект для мультивходных потоков.
      LDPCCodeIdentifierСтроковый скаляр (значение по умолчанию) или массив ячеек из символьных векторовИдентификатор LDPC кода, используемый в прямом исправлении ошибок (FEC), возвращенном как строковый скаляр для потока одно входа и массива ячеек из символьных векторов длины, равняется NumInputStreams свойство dvbs2WaveformGenerator объект для мультивходных потоков.

    • Если obj dvbs2xWaveformGenerator Системный объект, структура output имеет эти поля, состоять из информации о физическом уровне о Втором поколении Спутника Цифрового телевидения расширило (DVB-S2X) генератор формы волны.

      Поле ЗначениеОписание
      FECFrameСтроковый скаляр (значение по умолчанию) или массив ячеек из символьных векторовФормат системы координат FEC, возвращенный как строковый скаляр для потока одно входа и массива ячеек из символьных векторов длины, равняется NumInputStreams свойство dvbs2xWaveformGenerator объект для мультивходных потоков.
      ModulationSchemeСтроковый скаляр (значение по умолчанию) или массив ячеек из символьных векторовСхема Modulation, возвращенная как строковый скаляр для потока одно входа и массива ячеек из символьных векторов длины, равняется NumInputStreams свойство dvbs2xWaveformGenerator объект для мультивходных потоков.
      LDPCCodeIdentifierСтроковый скаляр (значение по умолчанию) или массив ячеек из символьных векторовИдентификатор LDPC кода, используемый в прямом исправлении ошибок (FEC), возвращенном как строковый скаляр для потока одно входа и массива ячеек из символьных векторов длины, равняется NumInputStreams свойство dvbs2xWaveformGenerator объект для мультивходных потоков.

    • Если obj dvbrcs2WaveformGenerator Системный объект, структура output имеет эти поля, состоять из информации о физическом уровне о Втором поколении Цифрового телевидения Возвращает Канал по Спутнику (DVB-RCS2) генератор формы волны.

      Поле ЗначениеОписание
      BurstLengthположительное целое числоДлина пакета, в символах, до импульсного формирования, возвратилась как положительное целое число.
      PayloadLengthInBytesцелое число в области значений [3, 65,535]Длина входных данных, в байтах, к энкодеру прямого исправления ошибок (FEC), возвратилась как целое число в области значений [3, 65,535].
      MappingScheme"pi/2-BPSK", "QPSK", "8PSK", или "16QAM"Отображение символа и схема модуляции сгенерировать форму волны DVB-RCS2, возвращенную как "pi/2-BPSK", "QPSK", "8PSK", или "16QAM".
      CodeRate"1/3", "1/2", "2/3", "3/4", "4/5", "5/6", "6/7", или "7/8"Скорость кода энкодера канала, возвращенного как "1/3", "1/2", "2/3", "3/4", "4/5", "5/6", "6/7", или "7/8".
      PreambleLengthцелое число в области значений [0, 255]

      Количество символов преамбулы, которые снабжаются префиксом к пакетным символам до модуляции, возвратилось как целое число в области значений [0, 255].

      Когда вы устанавливаете TransmissionFormat свойство к "TC-LM", единица длины преамбулы является символами. Когда вы устанавливаете TransmissionFormat свойство к "SS-TC-LM", единица длины преамбулы является микросхемами.

      PostambleLengthцелое число в области значений [0, 255]

      Количество символов постиноходи, которые снабжаются суффиксом к пакетным символам до модуляции, возвратилось как целое число в области значений [0, 255].

      Когда вы устанавливаете TransmissionFormat свойство к "TC-LM", единица длины преамбулы является символами. Когда вы устанавливаете TransmissionFormat свойство к "SS-TC-LM", единица длины преамбулы является микросхемами.

      PilotPeriodцелое число в области значений [0, 4095]

      Экспериментальная периодичность символа, включая пакетные символы, возвратилась как целое число в области значений [0, 4095].

      Этот период представляет длину последовательности от первого символа экспериментального блока к первому символу следующего экспериментального блока в символах или микросхемах.

      PilotBlockLengthцелое число в области значений [1, 255]Длина экспериментального блока, в символах, возвратилась как целое число в области значений [1, 255].
      PermutationParametersвектор с пятью элементами

      Турбо сочетание энкодера DVB-RCS2 управляет параметрами, которые используются, чтобы сгенерировать турбо энкодер interleaver индексы, возвращенные как вектор с пятью элементами в порядке: P, Q 0, Q 1, Q 2, и Q 3.

      UniqueWordсимвольный массив или строковый скалярШестнадцатеричная строка, состоящая из объединенных символов преамбулы, одного экспериментального блока, и последовательности постиноходи, возвратилась как символьный массив или строковый скаляр.

    • Если obj ccsdsTMWaveformGenerator Системный объект, структура output имеет эти поля, состоя из информации о физическом уровне о Консультативном Комитете по Системам передачи и обработки данных Пробела (CCSDS) генератор формы волны Telemetry(TM).

      Поле ЗначениеОписание
      ActualCodeRateположительная скалярная величина в области значений [0 1]Числовое значение скорости кода схемы кодирования канала, возвращенной как положительная скалярная величина в области значений [0, 1]. Это значение используется, чтобы сгенерировать форму волны TM CCSDS.
      NumBitsPerSymbolположительное целое числоКоличество битов на модулируемый символ, возвращенный как положительное целое число.
      SubcarrierFrequencyположительная скалярная величинаЧастота поднесущей, возвращенная как положительная скалярная величина. Это поле применимо только когда Modulation свойство ccsdsTMWaveformGenerator объект установлен в "PCM/PSK/PM". Для других случаев это значение возвращено как пустой указатель.

    • Если obj etsiRicianChannel Системный объект, структура output имеет эти поля, состоя из информации об исчезающем канале.

      Поле ЗначениеОписание
      ChannelFilterDelay0Фильтр канала задерживается в выборках, возвращенных как 0 всегда (из-за плоско исчезающей природы канала).
      ChannelFilterCoefficients1Коэффициент фильтра канала, используемый, чтобы преобразовать усиления пути, чтобы образовать канал усиления касания фильтра, возвратился как 1 всегда (как etsiRicianChannel описывает один канал пути).
      NumSamplesProcessedположительное целое числоКоличество отсчетов обрабатывается объектом канала начиная с последнего сброса, возвращенного как положительное целое число.

    • Если obj gpsPCode Системный объект, структура output имеет эти поля, состоя из информации состояния о генераторе Псевдокода GPS.

      Поле ЗначениеОписание
      TotalNumChipsElapsedположительное целое числоОбщее количество микросхем Псевдокода, которые протекли с начала недели, возвратилось как положительное целое число. Начало недели отмечено в полночь в субботу ночью - в воскресенье утром.
      TotalSecondsElapsedскаляр с действительным знакомОбщие секунды протекли с начала недели, возвращенной как скаляр с действительным знаком.

    Введенный в R2021a