mlptrecon

Восстановите сигнал с помощью обратного многошкального локального 1D полиномиального преобразования

Описание

пример

y = mlptrecon(type,coefs,T,coefsPerLevel,scalingMoments,reconstructionLevel) возвращает приближение в обратное многошкальное 1D полиномиальное преобразование (MLPT) coefs.

пример

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

Примеры

свернуть все

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

t = (0:0.01:10)';
x = sin(2*pi.*t) + 0.5*sin(pi.*t+0.1);
bliptime = (0:0.01:0.5)';
n = numel(bliptime);
z0 = 2*(1:(n+1)/2)/(n+1);
trng = [z0 z0((n-1)/2:-1:1)]';
blip = sin(50*pi.*bliptime).*trng;
for i = [200,700,900]
    x(i:i+numel(bliptime)-1) = x(i:i+numel(bliptime)-1)+blip;
end

Выполните многоуровневое полиномиальное преобразование. Выполните обратное многоуровневое полиномиальное преобразование с помощью коэффициентов детали.

[w,t,nj,scalingmoments] = mlpt(x,t);
yDetails = mlptrecon('d',w,t,nj,scalingmoments,1);

Постройте исходный сигнал и обработанный сигнал.

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

subplot(2,1,2)
plot(t,yDetails)
title('Signal Details')

Figure contains 2 axes objects. Axes object 1 with title Original Signal contains an object of type line. Axes object 2 with title Signal Details contains an object of type line.

Аппроксимированные данные с помощью реконструкции многошкального локального полиномиального преобразования (MLPT). Используйте mlptrecon аппроксимировать поврежденный и редко произведенный контур тангажа.

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

load('CorruptedPitchData.mat');
plot(time,pitchContour,'k','linewidth',3)
hold on
xlabel('Time (s)')
ylabel('Pitch (Hz)')

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

Вычислите MLPT контура тангажа.

[w,t,nj,scalingMoments] = mlpt(pitchContour,time, ...
    'DualMoments',3, ...
    'PrimalMoments',4, ...
    'PreFilter','none');

Используйте mlptrecon восстановить сигнал с помощью коэффициентов приближения на разных уровнях.

y = zeros(numel(t),3);
for level = 1:3
    y(:,level) = mlptrecon('a',w,t,nj,scalingMoments,level,'DualMoments',3);
end

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

plot(t,y(:,1),'c','linewidth',1)
plot(t,y(:,2),'linewidth',2)
plot(t,y(:,3),'linewidth',2)
legend('Original Data','Level = 1','Level = 2','Level = 3')
hold off

Figure contains an axes object. The axes object contains 4 objects of type line. These objects represent Original Data, Level = 1, Level = 2, Level = 3.

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

свернуть все

Тип коэффициентов раньше восстанавливал сигнал в виде 'a' или 'd'.

  • 'a' — Коэффициенты приближения

  • 'd' — Детализируйте коэффициенты

Коэффициенты приближения являются представлением lowpass входа. На каждом уровне коэффициенты приближения разделены на более грубое приближение и детализируют коэффициенты.

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

Коэффициенты 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 два раза избыточен в количестве коэффициентов детали, но не в t количество коэффициентов приближения.

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

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

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

Уровень разрешения, используемый для реконструкции в виде положительного целого числа, меньше чем или равного length(coefsPerLevel-1). length(coefsPerLevel-1) количество уровней разрешения, используемых, чтобы вычислить MLPT. Увеличение значения reconstructionLevel соответствует восстановлению вашего сигнала более грубыми приближениями разрешения.

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