Вычислите и отобразите спектр мощности шумного синусоидального входного сигнала с помощью блока 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);