exponenta event banner

Спектральный анализ неравномерно дискретизированных сигналов

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

В примере представлена периодограмма Ломба-Скаргля, которая может вычислять спектры неравномерно дискретизированных сигналов.

Неравномерно дискретизированные сигналы

Неравномерно дискретизированные сигналы часто встречаются в автомобильной промышленности, в области связи и в таких разнообразных областях, как медицина и астрономия. Неравномерная выборка может быть вызвана несовершенными датчиками, несоответствующими часами или явлениями, вызванными событиями.

Вычисление и изучение спектрального содержания является важной частью анализа сигнала. Обычные методы спектрального анализа, такие как периодограмма и метод Уэлча, требуют равномерной выборки входного сигнала. Когда выборка неоднородна, можно выполнить повторную выборку или интерполяцию сигнала на однородную сетку выборки. Однако это может добавить нежелательные артефакты в спектр и может привести к ошибкам анализа.

Лучшей альтернативой является использование метода Ломба-Скаргла, который работает непосредственно с неоднородными образцами и, таким образом, делает ненужным повторную выборку или интерполяцию. Алгоритм реализован в plomb функция.

Спектральный анализ сигналов с отсутствующими данными

Рассмотрим систему контроля температуры, в которой микроконтроллер регистрирует температуру помещения и передает это считывание каждые 15 минут на облачный сервер, на котором оно хранится. Известно, что сбои в подключении к Интернету мешают облачной системе получать некоторые показания, посылаемые микроконтроллером. Кроме того, по меньшей мере один раз в течение периода измерения батарея микроконтроллера истекала, что приводило к большому зазору в выборке.

Загрузите показания температуры и соответствующие временные метки.

load('nonuniformdata.mat','roomtemp','t1')

figure
plot(t1/(60*60*24*7),roomtemp,'LineWidth',1.2)

grid
xlabel('Time (weeks)')
ylabel('Temperature (\circF)')

Figure contains an axes. The axes contains an object of type line.

Простой способ определить, равномерно ли дискретизирован сигнал, состоит в том, чтобы взять гистограмму интервалов между последовательными временами выборки.

Постройте гистограмму интервалов выборки (разницы во времени) в минутах. Включать только точки, в которых присутствуют образцы.

tAtPoints = t1(~isnan(roomtemp))/60;
TimeIntervalDiff = diff(tAtPoints);

figure
hist(TimeIntervalDiff,0:100)
grid
xlabel('Sampling intervals (minutes)')
ylabel('Occurrences')
xlim([10 100])

Figure contains an axes. The axes contains an object of type patch. This object represents TimeIntervalDiff.

Большинство измерений разнесены примерно на 15 минут, как и ожидалось. Однако значительное число случаев имеет интервалы выборки около 30 и 45 минут, которые соответствуют одной или двум последовательным отброшенным пробам. Это приводит к неравномерной выборке сигнала. Кроме того, гистограмма показывает некоторое дрожание, окружающее прутки, показывающее высокие проявления. Это может быть связано с задержкой TCP/IP.

Используйте метод Ломба-Скаргла для вычисления и визуализации спектрального содержания сигнала. Чтобы лучше визуализировать спектр, рассмотрим частоты до 0,02 мГц, которые соответствуют примерно 13 циклам в неделю.

[Plomb,flomb] = plomb(roomtemp,t1,2e-5,'power');

figure
plot(flomb*60*60*24*7,Plomb)
grid
xlabel('Frequency (cycles/week)')
ylabel('Power (dBW)')

Figure contains an axes. The axes contains an object of type line.

Спектр показывает доминирующую периодичность 7 циклов в неделю и 1 цикл в неделю. Это понятно, учитывая, что данные поступают из здания с контролем температуры по семидневному календарю. Спектральная линия, показывающая пик при 1 цикле в неделю, показывает, что температура в здании следует за недельным циклом, с более низкими температурами в выходные дни и более высокими температурами в течение недели. Спектральная линия в 7 циклов в неделю указывает на то, что существует также суточный цикл с более низкими температурами ночью и более высокими температурами днем.

Спектральный анализ сигналов с неравномерно разнесенными выборками

Сигналы вариабельности сердечного ритма (HRV), которые представляют физиологическую вариацию во времени между сердцебиениями, обычно отбираются неравномерно, потому что сердечные ритмы человека не постоянны. Сигналы HRV выводятся из показаний электрокардиограммы (ЭКГ).

Точки выборки сигнала HRV расположены в R-пиковое время ЭКГ. Амплитуда каждой точки вычисляется как обратная разности времени между последовательными R-пиками и размещается в момент второго R-пика.

% Load the signal, the timestamps, and the sample rate
load('nonuniformdata.mat','ecgsig','t2','Fs')

% Find the ECG peaks
[pks,locs] = findpeaks(ecgsig,Fs, ...
    'MinPeakProminence',0.3,'MinPeakHeight',0.2);

% Determine the RR intervals
RLocsInterval = diff(locs);

% Derive the HRV signal
tHRV = locs(2:end);
HRV = 1./RLocsInterval;

% Plot the signals
figure
a1 = subplot(2,1,1); 
plot(t2,ecgsig,'b',locs,pks,'*r')
grid
a2 = subplot(2,1,2);
plot(tHRV,HRV)
grid
xlabel(a2,'Time(s)')
ylabel(a1,'ECG (mV)')
ylabel(a2,'HRV (Hz)')

Figure contains 2 axes. Axes 1 contains 2 objects of type line. Axes 2 contains an object of type line.

Изменяющиеся интервалы между R-пиками вызывают неравномерность времени выборки в данных HRV. Рассмотрим местоположения пиков сигнала и постройте гистограмму их разделения в секундах.

figure
hist(RLocsInterval)

grid
xlabel('Sampling interval (s)')
ylabel('RR distribution')

Figure contains an axes. The axes contains an object of type patch. This object represents RLocsInterval.

Типичными диапазонами частот, представляющими интерес в спектрах HRV, являются:

  • Очень низкая частота (VLF), от 3,3 до 40 мГц,

  • низкочастотный (LF), от 40 до 150 мГц,

  • Высокая частота (HF), от 150 до 400 мГц.

Эти полосы приблизительно ограничивают частотные диапазоны различных биологических регуляторных механизмов, которые способствуют HRV. Колебания в любой из этих полос имеют биологическое значение.

Использовать plomb для вычисления спектра сигнала ВРВ.

figure
plomb(HRV,tHRV,'Pd',[0.95, 0.5])

Figure contains 2 axes. Axes 1 is empty. Axes 2 with title Lomb-Scargle Power Spectral Density Estimate contains 3 objects of type line.

Пунктирные линии обозначают 95% и 50% вероятности обнаружения. Эти пороги измеряют статистическую значимость пиков. Спектр показывает пики во всех трех областях, представляющих интерес, перечисленных выше. Однако только пик, расположенный на 23,2 мГц в диапазоне VLF, показывает вероятность обнаружения 95%, в то время как другие пики имеют вероятности обнаружения менее 50%. Считается, что пики, лежащие ниже 40 мГц, обусловлены долгосрочными регуляторными механизмами, такими как терморегуляторная система и гормональные факторы.

См. также