Получение текущих данных измерений, отображаемых на анализаторе спектра
dsp.SpectrumAnalyzer Системный объектВычислить и отобразить спектр мощности шумного синусоидального входного сигнала, используя dsp.SpectrumAnalyzer Системный объект. Измерьте пики, размещение курсора, отношение мощности соседнего канала, искажение и значения CCDF в спектре, включив следующие свойства:
PeakFinder
CursorMeasurements
ChannelMeasurements
DistortionMeasurements
CCDFMeasurements
Инициализация
Входная синусоидальная волна имеет две частоты: 1000 Гц и 5000 Гц. Создать два dsp.SineWave Система создает эти две частоты. Создать dsp.SpectrumAnalyzer Системный объект для вычисления и отображения спектра мощности.
Fs = 44100; Sineobject1 = dsp.SineWave('SamplesPerFrame',1024,'PhaseOffset',10,... 'SampleRate',Fs,'Frequency',1000); Sineobject2 = dsp.SineWave('SamplesPerFrame',1024,... 'SampleRate',Fs,'Frequency',5000); SA = dsp.SpectrumAnalyzer('SampleRate',Fs,'Method','Filter bank',... 'SpectrumType','Power','PlotAsTwoSidedSpectrum',false,... 'ChannelNames',{'Power spectrum of the input'},'YLimits',[-120 40],'ShowLegend',true);
Включить данные измерений
Для получения результатов измерений установите Enable свойство измерений true.
SA.CursorMeasurements.Enable = true; SA.ChannelMeasurements.Enable = true; SA.PeakFinder.Enable = true; SA.DistortionMeasurements.Enable = true;
Использовать getMeasurementsData
Потоковая передача шумового синусоидального входного сигнала и оценка спектра мощности сигнала с использованием анализатора спектра. Измерьте характеристики спектра. Используйте getMeasurementsData для получения этих измерений программным путем. isNewDataReady функция указывает, когда имеются новые данные спектра. Измеренные данные хранятся в переменной data.
data = []; for Iter = 1:1000 Sinewave1 = Sineobject1(); Sinewave2 = Sineobject2(); Input = Sinewave1 + Sinewave2; NoisyInput = Input + 0.001*randn(1024,1); SA(NoisyInput); if SA.isNewDataReady data = [data;getMeasurementsData(SA)]; end end

В правой части анализатора спектра показаны включенные панели измерения. Значения, показанные на этих панелях, совпадают со значениями, показанными на последнем шаге времени data переменная. Вы можете получить доступ к отдельным полям data для получения различных измерений программным путем.
Сравнить пиковые значения
Пиковые значения получаются с помощью PeakFinder собственность. Проверьте, что пиковые значения, полученные на последнем шаге времени data соответствуют значениям, показанным на графике анализатора спектра.
peakvalues = data.PeakFinder(end).Value
peakvalues = 3×1
26.9850
24.1735
-52.3506
frequencieskHz = data.PeakFinder(end).Frequency/1000
frequencieskHz = 3×1
4.9957
0.9905
7.8166
Вычислите и отобразите спектр мощности шумного синусоидального входного сигнала с помощью блока Spectrum Analyzer. Измерьте пики, размещение курсора, отношение мощности соседнего канала, искажение и значения CCDF в спектре, включив следующие свойства конфигурации блока:
PeakFinder
CursorMeasurements
ChannelMeasurements
DistortionMeasurements
CCDFMeasurements
Открытие и проверка модели
Фильтрация потокового шумного синусоидального входного сигнала с использованием блока фильтра нижних частот. Входной сигнал состоит из двух синусоидальных тонов: 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;
Моделирование модели
Запустите модель. Блок анализатора спектра сравнивает исходный спектр с отфильтрованным спектром.
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.9196
26.3743
-2.6843
frequencieskHz =
15.0015
1.0049
12.9630
Сохранить и закрыть модель
save_system(model); close_system(model);
scope - Анализатор спектраАнализатор спектра, который требуется запросить. Укажите dsp.SpectrumAnalyzer Системный объект или SpectrumAnalyzerConfiguration объект для блока анализатора спектра.
data - Данные измеренийПри указании 'all'возвращается таблица измерений, содержащая следующие поля:
| Область | Описание |
|---|---|
SimulationTime | Время моделирования |
PeakFinder | Пиковые данные поиска |
CursorMeasurements | Данные измерений курсора |
ChannelMeasurements | Данные измерений канала |
DistortionMeasurements | Данные измерений искажений |
CCDFMeasurements | Данные измерений CCDF |
Если не указано 'all'таблица данных содержит только измерения анализатора спектра, используемые в настоящее время.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.