Измеренные сигналы могут показывать общие закономерности, которые не являются неотъемлемой частью данных. Эти тенденции иногда могут препятствовать анализу данных и должны быть устранены.
Рассмотрим два сигнала электрокардиограммы (ЭКГ) с различными тенденциями. Сигналы ЭКГ чувствительны к таким помехам, как помехи источника питания. Загрузите сигналы и постройте их график.
load('ecgSignals.mat') t = (1:length(ecgl))'; subplot(2,1,1) plot(t,ecgl), grid title 'ECG Signals with Trends', ylabel 'Voltage (mV)' subplot(2,1,2) plot(t,ecgnl), grid xlabel Sample, ylabel 'Voltage (mV)'

Сигнал на первом графике показывает линейный тренд. Тренд на втором сигнале нелинейный. Для устранения линейного тренда используйте функцию MATLAB ®detrend.
dt_ecgl = detrend(ecgl);
Чтобы исключить нелинейный тренд, подгоняйте многочлен низкого порядка к сигналу и вычитайте его. В этом случае многочлен имеет порядок 6. Постройте график двух новых сигналов.
opol = 6; [p,s,mu] = polyfit(t,ecgnl,opol); f_y = polyval(p,t,[],mu); dt_ecgnl = ecgnl - f_y; subplot(2,1,1) plot(t,dt_ecgl), grid title 'Detrended ECG Signals', ylabel 'Voltage (mV)' subplot(2,1,2) plot(t,dt_ecgnl), grid xlabel Sample, ylabel 'Voltage (mV)'

Тенденции были эффективно устранены. Наблюдайте, как сигналы больше не показывают сдвиг базовой линии. Они готовы к дальнейшей обработке.