mlptrecon

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

Описание

пример

y = mlptrecon(type,coefs,T,coefsPerLevel,scalingMoments,reconstructionLevel) возвращает приближение к обратному многомерному 1-D полиномиальному преобразованию (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. Axes 1 with title Original Signal contains an object of type line. Axes 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. The axes 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. The axes 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)-by- P матрица, где P - количество основных моментов, заданное MLPT.

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

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

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

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

Задайте необязательные разделенные разделенными запятой парами 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