Получите данные измерений тока, отображенные на анализаторе спектра
dsp.SpectrumAnalyzer
Системный объектВычислите и отобразите степень спектр шумного синусоидального входного сигнала с помощью dsp.SpectrumAnalyzer
Системный объект. Измерьте peaks, расположения курсоров, отношение степени смежного канала, искажения и значения 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
функция для программного получения этих измерений. The 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 | Данные Peak finder |
CursorMeasurements | Данные измерений курсора |
ChannelMeasurements | Данные измерений в канале |
DistortionMeasurements | Данные измерений искажений |
CCDFMeasurements | Данные измерений CCDF |
Когда вы не задаете 'all'
таблица данных содержит только используемые в настоящее время измерения спектрального анализатора.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.