Точность вейвлет-преобразования

Обсуждение вопросов, связанных с другими тулбоксами

Модератор: Admin

Benjamin
Пользователь
Сообщения: 14
Зарегистрирован: Чт янв 17, 2019 5:54 am

Точность вейвлет-преобразования

Сообщение Benjamin » Чт июл 11, 2019 5:56 am

Добрый день, коллеги.

Случайно обратил внимание на точность вейвлет-преобразования: decomposition и reconstruction. Если выполнить декомпозицию сигнала, а затем – реконструкцию, должен получиться исходный сигнал с максимальной ошибкой 1е-016.
В действительности, с увеличением номера вейвлета ошибка возрастает.
В качестве примера привожу результаты вычисления (в коде, см. ниже) ошибки для различных номеров вейвлета Добеши при декомпозиции до уровня 5 с последующей реконструкцией в пирамидальном алгоритме Малла:
db1 - ошибка: 1.1е-015
db10 – 5.3е-012
db20 – 1.1е-011
db30 – 1.1е-08
db40 – 1.7е-06
Повтор таких же вычислений с применением пакетной декомпозиции и реконструкции привел к аналогичным результатам. Возможно, это связано с конечной точностью самого вейвлета. Для повышения точности вейвлета итерационным способом имеется функция [phi,psi,xval] = wavefun(wav,i), которая возвращает phi и psi. Применить эту функцию непосредственно в коде (см. ниже) нельзя, так как код предполагает обращение к 'db40', но не к phi и psi.
Коллеги, подскажите, пожалуйста, как повысить точность вейвлет-преобразования, чтобы при этом воспользоваться функциями wavedec, wavedec либо wpdec, wprcoef.

%% SCRIPT OF CODE
echo on
clc
echo off
%%
[S, Fs]=audioread('Engine-16-44p1-stereo-20sec.wav');
Z=S(:,1);
Fs=Fs,
%%
Nw=5;
wavelet='db40';

%% MALLAT
[C,L]=wavedec(Z,Nw,wavelet);
[Zw]=waverec(C,L,wavelet);
deltaW=max(abs(Z-Zw)),
% subplot(2,1,1); plot(Z-Zw, '-k');

%% PACKET
wpt=wpdec(Z, Nw, wavelet);
a50 = wprcoef(wpt,[5 0]); %% columns
d51 = wprcoef(wpt,[5 1]);
d41 = wprcoef(wpt,[4 1]);
d31 = wprcoef(wpt,[3 1]);
d21 = wprcoef(wpt,[2 1]);
d11 = wprcoef(wpt,[1 1]);
Zwp=sum([a50'; d51'; d41'; d31'; d21'; d11'])';
deltaWP=max(abs(Z-Zwp)),
% subplot(2,1,2); plot(Z-Zwp, '-b');

%% END

С уважением, Вениамин
11.07. 2019