Получите текущие данные об измерении, отображенные на спектре анализатор
dsp.SpectrumAnalyzer Системный объектВычислите и отобразите спектр мощности шумного синусоидального входного сигнала с помощью dsp.SpectrumAnalyzer Системный объект. Измерьте peaks, размещения курсора, смежное отношение степени канала, искажение и значения CCDF в спектре путем включения следующих свойств:
PeakFinder
CursorMeasurements
ChannelMeasurements
DistortionMeasurements
CCDFMeasurements
Инициализация
Входная синусоида имеет две частоты: 1 000 Гц и 5 000 Гц. Создайте два 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.9848
24.1737
-52.3054
frequencieskHz = data.PeakFinder(end).Frequency/1000
frequencieskHz = 3×1
4.9957
0.9905
3.4453
Вычислите и отобразите спектр мощности шумного синусоидального входного сигнала с помощью блока 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.9457
26.3618
-5.5413
frequencieskHz =
15.0015
1.0049
8.7138
Сохраните и закройте модель
save_system(model); close_system(model);
scope — Спектр анализаторСпектр анализатор вы хотите запросить. Задайте dsp.SpectrumAnalyzer Системный объект или Spectrum Analyzer Configuration объект для спектра блок анализатора.
data — Данные об измеренияхКогда вы задаете 'all', таблица измерений, содержащая следующие поля, возвращена:
| Поле | Описание |
|---|---|
SimulationTime | Время симуляции |
PeakFinder | Пиковые данные о средстве поиска |
CursorMeasurements | Данные об измерениях курсора |
ChannelMeasurements | Данные об измерениях канала |
DistortionMeasurements | Данные об измерениях искажения |
CCDFMeasurements | Данные об измерениях CCDF |
Когда вы не задаете 'all', таблица данных содержит только спектр использующиеся в настоящее время измерения анализатора.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.