mlptdenoise

Сигнал Denoise использование многошкального локального 1D полиномиального преобразования

Описание

пример

y = mlptdenoise(x,t) возвращает denoised версию входного сигнала x произведенный в моменты выборки, t. Если x или t содержите NaNs, объединение NaNs в x и t удален прежде, чем получить mlpt.

пример

y = mlptdenoise(x,t,numLevel) denoises x вниз к numLevel.

пример

y = mlptdenoise(___,Name,Value) задает mlpt свойства с помощью одного или нескольких Name,Value парные аргументы и любой из предыдущих синтаксисов

[y,T] = mlptdenoise(___) также возвращает моменты времени для сигнала denoised.

[y,T,thresholdedCoefs] = mlptdenoise(___) также возвращает порог многошкальные локальные 1D полиномиальные коэффициенты преобразования.

[y,T,thresholdedCoefs,originalCoefs] = mlptdenoise(___) также возвращает исходные многошкальные локальные 1D полиномиальные коэффициенты преобразования.

Примеры

свернуть все

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

Загрузите данные к своей рабочей области и визуализируйте его.

load nonuniformspline
plot(splinenoise)
grid on
title('Noisy Signal with Missing Data')

Figure contains an axes object. The axes object with title Noisy Signal with Missing Data contains an object of type line.

Denoise данные с помощью среднего метода шумоподавления.

xden = mlptdenoise(splinenoise,[],'DenoisingMethod','median');

Замените исходные недостающие данные в правильном положении для графического вывода целей. Визуализируйте сигналы denoised и оригинал.

denoisedsig = NaN(size(splinenoise));
denoisedsig(~isnan(splinenoise)) = xden;
figure
plot([splinesig denoisedsig])
grid on
legend('Original Signal','Denoised Signal');

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent Original Signal, Denoised Signal.

Уменьшайте шум сигнала с помощью многошкального локального полиномиального преобразования (MLPT).

Загрузите чистый синусоидальный сигнал с универсальной выборкой и поврежденную версию сигнала.

load('InputSamples.mat')

plot(t,x)
hold on
plot(tCorrupt,xCorrupt)
legend('Original','Corrupted')

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent Original, Corrupted.

Используйте mlptdenoise к denoise поврежденный сигнал. Визуально сравните поврежденный и сигналы denoised против исходного сигнала.

[xDenoised,tDenoised] = mlptdenoise(xCorrupt,tCorrupt);

plot(tDenoised,xDenoised,'b')
hold off
legend('Original','Corrupted','Denoised')

Figure contains an axes object. The axes object contains 3 objects of type line. These objects represent Original, Corrupted, Denoised.

Сравните сигналы ошибки, сопоставленные с поврежденным сигналом и сигналом denoised. Удалите NaNs из сигналов в целях визуализации.

x(samplesToErase) = [];
xCorrupt(samplesToErase) = [];

xCorruptError = abs(diff([x,xCorrupt],[],2));
yError = abs(diff([x,xDenoised],[],2));

plot(tDenoised,xCorruptError)
hold on
plot(tDenoised,yError)
title('Error Signals')
legend('Corrupted','Denoised')
hold off

Figure contains an axes object. The axes object with title Error Signals contains 2 objects of type line. These objects represent Corrupted, Denoised.

По умолчанию, mlptdenoise denoises сигнал на основе двух коэффициентов детали высшего уровня. В этом примере, вы denoise сигнал к разным уровням и визуализируют эффект.

Создайте многочастотный сигнал.

fs = 1000;
t = 0:1/fs:1;
x = sin(4*pi*t) + sin(120*pi*t) + sin(480*pi*t);

Denoise сигнал к уровням один, два, и пять.

y1 = mlptdenoise(x,t,1);
y2 = mlptdenoise(x,t,2);
y5 = mlptdenoise(x,t,5);

Визуализируйте эффект level на сигнале denoised.

subplot(4,1,1)
plot(t,x)
title('Original Signal')

subplot(4,1,2)
plot(t,y1)
title('Denoised Signal, Level = 1')

subplot(4,1,3)
plot(t,y2)
title('Denoised Signal, Level = 2')

subplot(4,1,4)
plot(t,y5)
title('Denoised Signal, Level = 5')

Figure contains 4 axes objects. Axes object 1 with title Original Signal contains an object of type line. Axes object 2 with title Denoised Signal, Level = 1 contains an object of type line. Axes object 3 with title Denoised Signal, Level = 2 contains an object of type line. Axes object 4 with title Denoised Signal, Level = 5 contains an object of type line.

mlptdenoise функция выполняет форварда MLPT, пороги коэффициенты, как задано 'DenoisingMethod' пара "имя-значение". Затем mlptdenoise выполняет обратный MLPT, чтобы возвратить сигнал denoised в области вашего исходного сигнала.

Можно опционально возвратить порог и исходные коэффициенты для контроля и анализа.

Denoise неоднородно выбранный сигнал с помощью несмещенного метода риска Стайна. Возвратите сигнал denoised, связанные моменты времени, порог коэффициенты MLPT и исходные коэффициенты MLPT. Постройте сигналы denoised и оригинал.

load nonuniformheavisine;

[xDenoised,t,wThrolded,wOriginal] = mlptdenoise(x,t,3,'denoisingmethod','SURE');

plot(t,[f,xDenoised])
legend('Original signal','Denoised signal')

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent Original signal, Denoised signal.

Постройте исходные коэффициенты MLPT и порог коэффициенты MLPT для сравнения.

plot([wOriginal,wThrolded])
legend('Original coefficients','Thresholded coefficients')

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent Original coefficients, Thresholded coefficients.

Входные параметры

свернуть все

Входной сигнал в виде вектора или матрицы.

  • матрица — x должен иметь по крайней мере две строки. mlpt работает независимо с каждым столбцом x. Число элементов в t должен равняться размерности строки x. Любой NaNs в столбцах x должен произойти в тех же строках.

  • вектор — x и t должен иметь то же число элементов.

Типы данных: double

Производя моменты, соответствуя входному сигналу в виде вектора, duration массив или datetime массив монотонно увеличения вещественных значений. Значение по умолчанию зависит от длины входного сигнала, x.

Типы данных: double | duration | datetime

Количество уровней разрешения в виде положительного целого числа. Максимальное значение numLevel зависит от формы входного сигнала, x:

  • матрица — floor(log2(size(x,1)))

  • вектор — floor(log2(length(x)))

mlptdenoise denoises x пороговой обработкой все коэффициенты детали MLPT, вычисленного для numLevel уровни разрешения.

Типы данных: double

Аргументы name-value

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'DualMoments',3 вычисляет преобразование с помощью трех двойных исчезающих моментов.

Номер двойных исчезающих моментов в поднимающейся схеме в виде разделенной запятой пары, состоящей из 'DualMoments' и 2, 3 или 4.

Типы данных: double

Номер основных исчезающих моментов в поднимающейся схеме в виде разделенной запятой пары, состоящей из 'PrimalMoments' и 2, 3, или 4.

Типы данных: double

Предварительный фильтр прежде mlpt операция в виде разделенной запятой пары, состоящей of'Prefilter' и 'Haar' или 'UnbalancedHaar'. Если никакой предварительный фильтр не задан, 'Haar' используется по умолчанию.

Типы данных: char | string

Метод шумоподавления применился к коэффициентам детали MLPT в виде разделенной запятой пары, состоящей из 'DenoisingMethod' и 'Bayesian'медиана, 'SURE', или 'FDR'.

Примечание

'FDR' имеет дополнительный аргумент для Q-значения. Q является пропорцией ложных положительных сторон и задан как скаляр с действительным знаком между нулем и один. Задавать 'FDR' с Q-значением используйте массив ячеек, где вторым элементом является Q-значение, например, 'DenoisingMethod',{'FDR',0.01}. Если незаданный, Q значения по умолчанию к 0.05.

Типы данных: char | string

Выходные аргументы

свернуть все

Версия Denoised входного сигнала, возвращенного как вектор или матрица. Размер y зависит от размера x и объединение NaNs в x и t.

По умолчанию, mlpt denoised на основе двух коэффициентов детали с самым высоким разрешением, если x имеет меньше чем четыре выборки. Если x имеет меньше чем четыре выборки, mlpt denoised, базирующийся только на коэффициентах детали с самым высоким разрешением.

Типы данных: double

Выборка моментов, соответствуя выходному параметру, возвращенному как вектор или duration массив получен из x и вход t. Если вход t datetime или duration массив, t преобразован в модули, которые включают устойчивый mlpt и implt расчет. Затем T возвращен как duration массив.

Типы данных: double | duration

Коэффициенты Thresholded MLPT, возвращенные как вектор или матрица. Размер thresholdedCoefs зависит от размера x и уровень, к которому вычисляется преобразование.

Типы данных: double

Исходные коэффициенты MLPT, возвращенные как вектор или матрица. Размер originalCoefs зависит от размера x и уровень, к которому вычисляется преобразование.

Типы данных: double

Алгоритмы

Маартен Янсен разработал теоретическую основу многошкального локального полиномиального преобразования (MLPT) и алгоритмов для его эффективного расчета [1][2][3]. MLPT использует поднимающуюся схему, где функция ядра сглаживает коэффициенты прекрасной шкалы с данной полосой пропускания, чтобы получить более грубые коэффициенты разрешения. mlpt функционируйте использует только локальную полиномиальной интерполяцию, но метод, разработанный Янсеном, является более общим и допускает много других типов ядра с корректируемыми полосами пропускания [2].

Ссылки

[1] Янсен, Маартен. “Многошкальное Локальное Сглаживание Полинома в Снятой Пирамиде для Неравномерно расположенных Данных”. Транзакции IEEE на Обработке сигналов 61, № 3 (февраль 2013): 545–55. https://doi.org/10.1109/TSP.2012.2225059.

[2] Янсен, Маартен и Мохамед Амгэр. “Многошкальные Локальные Полиномиальные Разложения Используя Полосы пропускания как Шкалы”. Статистика и Вычисление 27, № 5 (сентябрь 2017): 1383–99. https://doi.org/10.1007/s11222-016-9692-8.

[3] Янсен, Маартен и Патрик Унинккс. Вейвлеты второго поколения и приложения. Лондон  ; Нью-Йорк: Спрингер, 2005.

Введенный в R2017a