Получите данные об измерениях программно для спектра блок анализатора

Вычислите и отобразите спектр мощности шумного синусоидального входного сигнала с помощью блока Spectrum Analyzer. Измерьте peaks, размещения курсора, смежное отношение степени канала, искажение и значения CCDF в спектре путем включения этих свойств настройки блока:

  • PeakFinder

  • CursorMeasurements

  • ChannelMeasurements

  • DistortionMeasurements

  • CCDFMeasurements

Откройте и осмотрите модель

Отфильтруйте передающий потоком шумный синусоидальный входной сигнал с помощью блока Lowpass Filter. Входной сигнал состоит из двух синусоидальных тонов: 1 кГц и 15 кГц. Шум является белым Гауссовым шумом с нулевым средним значением и отклонением 0,05. Частота дискретизации составляет 44,1 кГц. Откройте модель и осмотрите различные настройки блока.

model = 'spectrumanalyzer_measurements.slx';
open_system(model)

Доступ к свойствам настройки блока Spectrum Analyzer с помощью функции get_param.

sablock = 'spectrumanalyzer_measurements/Spectrum Analyzer';
cfg = get_param(sablock,'ScopeConfiguration');

Включите данные об измерениях

Чтобы получить измерения, установите свойство Enable измерений к true.

cfg.CursorMeasurements.Enable = true;
cfg.ChannelMeasurements.Enable = true;
cfg.PeakFinder.Enable = true;
cfg.DistortionMeasurements.Enable = true;

Моделируйте модель

Запустите модель. Блок Spectrum Analyzer сравнивает исходный спектр с отфильтрованным спектром.

sim(model)

Правая сторона спектра анализатор показывает активированные панели измерения.

Используя getMeasurementsData

Используйте функцию getMeasurementsData, чтобы получить эти измерения программно.

data = getMeasurementsData(cfg)
data =

  1x5 table

    SimulationTime     PeakFinder     CursorMeasurements    ChannelMeasurements    DistortionMeasurements
    ______________    ____________    __________________    ___________________    ______________________

       [0.9985]       [1x1 struct]       [1x1 struct]          [1x1 struct]             [1x1 struct]     

Значения, показанные в панелях измерения, совпадают со значениями, показанными в data. Можно получить доступ к отдельным полям data, чтобы получить различные измерения программно.

Сравните пиковые значения

Как пример, сравните пиковые значения. Проверьте, что пиковые значения, полученные data.PeakFinder, соответствуют со значениями, замеченными в окне Spectrum Analyzer.

peakvalues = data.PeakFinder.Value
frequencieskHz = data.PeakFinder.Frequency/1000
peakvalues =

   26.5960
   26.4011
   -5.2969


frequencieskHz =

   14.9966
    1.0046
    9.9164

Сохраните и закройте модель

save_system(model);
close_system(model);

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

Функции

Объекты

Блоки