mlptrecon

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

Синтаксис

y = mlptrecon(type,coefs,T,coefsPerLevel,scalingMoments,reconstructionLevel)
y = mlptrecon(___,Name,Value)

Описание

пример

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)';
blip = sin(50*pi.*bliptime).*triang(numel(bliptime));
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')

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

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

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

Вычислите 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

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

свернуть все

Тип коэффициентов раньше восстанавливал сигнал, заданный как '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)-by-P матрица, где P является номером основных моментов, заданных MLPT.

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

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

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

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (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] Янсен, M. "Многошкальное Локальное Сглаживание Полинома в Снятой Пирамиде для Неравномерно расположенных Данных". Транзакции IEEE на Обработке сигналов. Издание 61, Номер 3, 2013, стр 545–555.

[2] Янсен, M. и М. Амгэр. "Многошкальные локальные полиномиальные разложения с помощью пропускной способности в качестве шкал”. Статистика и Вычисление (предстоящего). 2016.

[3] Янсен, M. и Патрик Унинккс. Вейвлеты второго поколения и приложения. Лондон: Спрингер, 2005.

Введенный в R2017a