exponenta event banner

Визуализация и измерения сигналов в MATLAB

В этом примере показано, как визуализировать и измерять сигналы во временной и частотной области в MATLAB с помощью временного диапазона и анализатора спектра.

Визуализация сигналов во временной и частотной областях

Создайте синусоидальную волну с частотой 100 Гц, дискретизированную на частоте 1000 Гц. Создайте пять секунд синусоидальной волны 100 Гц с добавочным$N(0,0.0025)$ белым шумом через одну секунду. Отправьте сигнал во временной диапазон и анализатор спектра для отображения и измерения.

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 секунды между каждым сердцебиением. Поэтому частота сердечных сокращений ЭКГ-сигнала определяется следующим уравнением:

$$\frac{60\,{\rm sec/min}}{0.675\,{\rm sec/beat}} =&#xA;88.89\,{\rm beats/min\,(bpm)}$$

Измерения курсора

Включите режим «Измерения курсора» на вкладке «Измерения», нажав соответствующую кнопку панели инструментов. Курсоры отображаются в области времени с полем, показывающим изменение времени и значения между двумя курсорами. Можно перетащить курсоры и использовать их для измерения времени между событиями в форме сигнала. При перетаскивании курсора появляется время, в течение которого отображается значение курсора. На этом рисунке показано, как использовать курсоры для измерения временного интервала между пиками в форме сигнала ЭКГ.$\Delta T$ Измерение в поле курсора показывает, что интервал времени между двумя пиками составляет 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 кГц. Добавьте$N(0,10^{-8})$ белый гауссов шум к сумме синусоидальных волн и отобразите односторонний спектр мощности в анализаторе спектра.

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. Можно увеличить или уменьшить максимальное количество пиков, задать минимальное расстояние пика и изменить другие настройки на панели «Параметры» панели «Измерение пикового детектора».

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