Как рассчитать вейвлет-разложение?
Для получения выходного сигнала фильтра верхних и нижних частот сигнала (функции) мы можем использовать следующее математическое определение:
Итак, я попытался вычислить его без библиотеки, используя следующий код с Python 2.7:
import pywt # getting the low and highpass filter
w = pywt.Wavelet('db1')
lof = w.dec_lo
hif = w.dec_hi
x = [1,2,3,4]
y_high0 = x[0]*hif[0]
y_high1 = x[1]*hif[1]+x[2]*hif[0]
cD = (y_high0, y_high0) # (-0.7071067, -0.7071067)
y_low0 = x[0]*x[0]
y_low1 = x[1]*lof[1]+x[2]*lof[0]
cA = (y_low0, y_low0) # (0.7071067, 3.535533)
Затем я получил (-0,7071067, -0,7071067) для CD и (0,7071067, 3,535533) для CA. Но когда я использую этот код из библиотеки, я получил другой ответ:
import pywt
cA, cD = pywt.dwt([1, 2, 3, 4], 'db1')
Результат отличается от моего собственного кода. то есть [ 2.12132034, 4.94974747] для cA и [-0.70710678 -0.70710678] для cD.
Итак, я хочу спросить, как на самом деле вычисляется вейвлет-разложение?
Я действительно новичок в этой теме вейвлета, я уже прочитал некоторое введение в эту тему, но я все еще запутался с ее вычислениями. Я очень ценю ваш ответ, заранее спасибо:)