В этом примере показано, как визуализировать и измерять сигналы во временной и частотной области в MATLAB с помощью временного диапазона и анализатора спектра.
Создайте синусоидальную волну с частотой 100 Гц, дискретизированную на частоте 1000 Гц. Создайте пять секунд синусоидальной волны 100 Гц с добавочным
белым шумом через одну секунду. Отправьте сигнал во временной диапазон и анализатор спектра для отображения и измерения.
SampPerFrame = 1000; Fs = 1000; SW = dsp.SineWave('Frequency', 100, ... 'SampleRate', Fs, 'SamplesPerFrame', SampPerFrame); TS = timescope('SampleRate', Fs, 'TimeSpanSource','property', ... 'TimeSpan', 0.1, 'YLimits', [-2, 2], 'ShowGrid', true); SA = dsp.SpectrumAnalyzer('SampleRate', Fs); tic; while toc < 5 sigData = SW() + 0.05*randn(SampPerFrame,1); SA(sigData); TS(sigData); end release(TS) release(SA)


Используя область времени, можно выполнить ряд измерений сигнала.
Доступны следующие измерения:
Cursor Measurements (Измерения курсора) - помещает курсоры экрана на все дисплеи области.
Статистика сигнала - показывает максимум, минимум, различие от пика к пику, средние, средние, RMS ценности отобранного сигнала, и времена, в которые происходят максимум и минимум.
Двууровневые измерения - отображает информацию о переходах, аберрациях и циклах выбранного сигнала.
Peak Finder - отображение максимумов и времени их возникновения.
Эти измерения можно включить и отключить на вкладке Измерения (Measurements).

Чтобы проиллюстрировать использование измерений во временном диапазоне, смоделируйте сигнал ЭКГ. Используйте ecg функция для генерации 2700 выборок сигнала. Используйте фильтр Савицки-Голая для сглаживания сигнала и периодического расширения данных для получения приблизительно 11 периодов.
x = 3.5*ecg(2700).'; y = repmat(sgolayfilt(x,0,21),[1 13]); sigData = y((1:30000) + round(2700*rand(1))).';
Просмотрите сигнал в области времени и используйте измерения Peak Finder и Data Cursor. Предположим, частота дискретизации составляет 4 кГц.
TS_ECG = timescope('SampleRate', 4000, ... 'TimeSpanSource', 'Auto', 'ShowGrid', true); TS_ECG(sigData); TS_ECG.YLimits = [-4, 4];

Пиковые измерения
Включите параметр «Пиковые измерения» на вкладке «Измерения», нажав соответствующую кнопку панели инструментов. В нижней части окна области времени появится панель Пики (Peaks). Для свойства «Значения пиков» введите 8 и нажмите Enter. На панели «Пики» в области времени отображается список значений амплитуды 8 пиков и времени их возникновения.

Существует постоянная разница во времени 0,675 секунды между каждым сердцебиением. Поэтому частота сердечных сокращений ЭКГ-сигнала определяется следующим уравнением:

Измерения курсора
Включите режим «Измерения курсора» на вкладке «Измерения», нажав соответствующую кнопку панели инструментов. Курсоры отображаются в области времени с полем, показывающим изменение времени и значения между двумя курсорами. Можно перетащить курсоры и использовать их для измерения времени между событиями в форме сигнала. При перетаскивании курсора появляется время, в течение которого отображается значение курсора. На этом рисунке показано, как использовать курсоры для измерения временного интервала между пиками в форме сигнала ЭКГ.
Измерение в поле курсора показывает, что интервал времени между двумя пиками составляет 0,675 секунды, что соответствует частоте сердечных сокращений 1,482 Гц или 88,9 ударов/мин.

Статистика сигналов и двухуровневые измерения
На вкладке Измерения (Measurements) можно также выбрать Статистика сигналов (Signal Statistics) и различные двухуровневые измерения. Статистика сигнала может использоваться для определения минимального и максимального значений сигнала, а также других метрик, таких как пиковое значение, среднее значение, медиана и среднеквадратичное значение. Измерения уровня била могут использоваться для определения информации о переходах подъема и падения, аберрациях перехода, информации о превышении и понижении, времени установки, длительности импульса и рабочем цикле. Дополнительные сведения об этих измерениях см. в разделе Настройка объекта MATLAB во времени.
В этом разделе объясняется, как выполнять измерения частотной области с помощью анализатора спектра.
Анализатор спектра обеспечивает следующие измерения:
Измерения курсора (Cursor Measurements) - размещает курсоры на дисплее спектра.
Peak Finder - отображает максимумы и частоты, на которых они возникают.
Измерения канала - отображает измерения занятой полосы пропускания и канала ACPR.
Измерения искажений - отображение измерений гармонических и интермодуляционных искажений.
CCDF Measurements - отображает дополнительные измерения кумулятивной функции распределения.
Эти измерения можно включить и отключить на панели инструментов анализатора спектра или в меню «Сервис» > «Измерения».


Измерения искажений
Чтобы проиллюстрировать использование измерений с анализатором спектра, создайте синусоидальную волну 2,5 кГц, дискретизированную при 48 кГц с аддитивным белым гауссовым шумом. Оцените полином высокого порядка (9-я степень) при каждом значении сигнала для моделирования нелинейного искажения. Отображение сигнала в анализаторе спектра.
Fs = 48e3; SW = dsp.SineWave('Frequency', 2500, ... 'SampleRate', Fs, 'SamplesPerFrame', SampPerFrame); SA_Distortion = dsp.SpectrumAnalyzer('SampleRate', Fs, ... 'PlotAsTwoSidedSpectrum', false); y = [1e-6 1e-9 1e-5 1e-9 1e-6 5e-8 0.5e-3 1e-6 1 3e-3]; tic; while toc < 5 x = SW() + 1e-8*randn(SampPerFrame,1); sigData = polyval(y, x); SA_Distortion(sigData); end clear SA_Distortion;
Позвольте гармонические измерения искажения, щелкнув по соответствующему символу на панели инструментов или при нажатии на Tools> Measurements> пункт меню Distortion Measurements. В окне «Измерения искажений» измените значение параметра «Число гармоник» на 9 и установите флажок «Метки гармоник». На панели отображается значение основной гармоники, близкое к 2500 Гц и 8, а также их значения SNR, SINAD, THD и SFDR, которые относятся к основной выходной мощности.

Пиковый поисковик
Можно отслеживать изменяющиеся во времени спектральные компоненты с помощью диалогового окна измерения Peak Finder. Можно показывать и при необходимости маркировать до 100 пиков. Можно вызвать диалоговое окно Поиск пиков (Peak Finder) в меню Инструменты (Tools) > Измерения (Measurements) > Поиск пиков (Peak Finder) или щелкнув соответствующий значок на панели инструментов.
Чтобы проиллюстрировать использование Peak Finder, создайте сигнал, состоящий из суммы трех синусоидальных волн с частотами 5, 15 и 25 кГц и амплитудами 1, 0,1 и 0,01 соответственно. Данные дискретизируются при частоте 100 кГц. Добавьте
белый гауссов шум к сумме синусоидальных волн и отобразите односторонний спектр мощности в анализаторе спектра.
Fs = 100e3; SW1 = dsp.SineWave(1e0, 5e3, 0, 'SampleRate', Fs, 'SamplesPerFrame', SampPerFrame); SW2 = dsp.SineWave(1e-1, 15e3, 0, 'SampleRate', Fs, 'SamplesPerFrame', SampPerFrame); SW3 = dsp.SineWave(1e-2, 25e3, 0, 'SampleRate', Fs, 'SamplesPerFrame', SampPerFrame); SA_Peak = dsp.SpectrumAnalyzer('SampleRate', Fs, 'PlotAsTwoSidedSpectrum', false); tic; while toc < 5 sigData = SW1() + SW2() + SW3() + 1e-4*randn(SampPerFrame,1); SA_Peak(sigData); end clear SA_Peak;
Включите функцию Peak Finder для маркировки трех частот синусоидальных волн. Значения частоты и мощности в дБм отображаются на панели Peak Finder. Можно увеличить или уменьшить максимальное количество пиков, задать минимальное расстояние пика и изменить другие настройки на панели «Параметры» панели «Измерение пикового детектора».

Дополнительные сведения об использовании измерений с анализатором спектра см. в примере Измерения анализатора спектра.