imlpt

Обратное многошкальное локальное 1D полиномиальное преобразование

Описание

пример

y = imlpt(coefs,T,coefsPerLevel,scalingMoments) возвращает обратное многошкальное локальное полиномиальное 1D преобразование (MLPT) coefs. Входные параметры к imlpt должны быть выходные параметры mlpt.

пример

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

Примеры

свернуть все

Создайте сигнал с неоднородной выборкой и проверьте хорошую реконструкцию при выполнении mlpt и imlpt.

Создайте и постройте синусоиду с неоднородной выборкой.

timeVector = 0:0.01:1;
sineWave = sin(2*pi*timeVector)';

samplesToErase = randi(100,100,1);
sineWave(samplesToErase) = [];
timeVector(samplesToErase) = [];

figure(1)
plot(timeVector,sineWave,'o')
hold on

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

Выполните многошкальное локальное 1D полиномиальное преобразование (mlpt) на сигнале. Визуализируйте коэффициенты.

[coefs,T,coefsPerLevel,scalingMoments] = mlpt(sineWave,timeVector);

figure(2)
stem(coefs)
title('Wavelet Coefficients')

Figure contains an axes object. The axes object with title Wavelet Coefficients contains an object of type stem.

Выполните обратное многошкальное локальное 1D полиномиальное преобразование (imlpt) на коэффициентах. Визуализируйте восстановленный сигнал.

y = imlpt(coefs,T,coefsPerLevel,scalingMoments);

figure(1)
plot(T,y,'*')
legend('Original Signal','Reconstructed Signal')
hold off

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

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

reconstructionError = sum(abs(y-sineWave))
reconstructionError = 1.7552e-15

Задайте двойные моменты не по умолчанию при помощи mlpt функция. Сравните результаты анализа и синтеза с помощью значения по умолчанию и двойные моменты не по умолчанию.

Создайте входной сигнал и визуализируйте его.

T = (1:16)';
x = T.^2;
plot(x)
hold on

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

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

[w2,t2,nj2,scalingmoments2] = mlpt(x,T);
y2 = imlpt(w2,t2,nj2,scalingmoments2);

[w3,t3,nj3,scalingmoments3] = mlpt(x,T,'dualmoments',3);
y3 = imlpt(w3,t3,nj3,scalingmoments3,'dualmoments',3);

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

plot(y2,'o')
plot(y3,'*')
legend('Original Signal', ...
       'DualMoments = 3', ...
       'DualMoments = 2 (Default)');

fprintf('\nMean Reconstruction Error:\n');
Mean Reconstruction Error:
fprintf('  - Nondefault dual moments: %0.2f\n',mean(abs(y3-x)));
  - Nondefault dual moments: 0.00
fprintf('  - Default dual moments: %0.2f\n\n',mean(abs(y2-x)));
  - Default dual moments: 0.00
hold off

Figure contains an axes object. The axes object contains 3 objects of type line. These objects represent Original Signal, DualMoments = 3, DualMoments = 2 (Default).

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

свернуть все

Коэффициенты MLPT в виде вектора или матрицы коэффициентов MLPT, возвращенных mlpt функция.

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

Выборка моментов, соответствуя yВ виде вектора или duration массив увеличения значений, возвращенных mlpt функция.

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

Коэффициенты на уровень разрешения в виде вектора, содержащего количество коэффициентов на каждом уровне разрешения в coefs. coefsPerLevel выходной аргумент mlpt функция.

Элементы coefsPerLevel организованы можно следующим образом:

  • coefsPerLevel(1) — Количество коэффициентов приближения на самом грубом уровне разрешения.

  • coefsPerLevel(i) — Количество коэффициентов детали на уровне разрешения i, где i = numLevel – i + 2 для i = 2, ..., numLevel + 1. numLevel количество уровней разрешения, используемых, чтобы вычислить MLPT. numLevel выведен из coefsPerLevel: numLevel = length(coefsPerLevel-1).

Меньшее индекс i, ниже разрешение. MLPT два раза избыточен в количестве коэффициентов детали, но не в количестве коэффициентов приближения.

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

Масштабирование функциональных моментов в виде length(coefs)- P матрица, где P номер основных моментов, заданных MLPT.

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

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

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

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

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

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

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

свернуть все

Восстановленный сигнал, возвращенный как вектор или матрица, в зависимости от входных параметров к mlpt функция.

Типы данных: 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