exponenta event banner

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' - коэффициенты детализации

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

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

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

Моменты масштабирования функции, указанные как length(coefs)около-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