Получите текущие данные об измерении, отображенные на спектре анализатор
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.9850
24.1735
-52.3506
frequencieskHz = data.PeakFinder(end).Frequency/1000
frequencieskHz = 3×1
4.9957
0.9905
7.8166
Вычислите и отобразите спектр мощности шумного синусоидального входного сигнала с помощью блока 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.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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.