Я попробовал свертку коэффициентов уровня 1 с фильтрами реконструкции, чтобы вернуться к оригиналу. сигнал, но получаю ложные результаты.
Код: Выделить всё
import pywt
import numpy as np
from scipy.signal import convolve
signal = np.array([1,2,3,4,5,6,7,8])
wavelet = pywt.Wavelet('db2')
desired_level = 1
Lo_rec = wavelet.rec_lo
Hi_rec = wavelet.rec_hi
coeffs = pywt.swt(signal, wavelet, level=desired_level)
(cA, cD) = coeffs[0]
def convolve(signal,filter):
n = len(signal)
m = len(filter)
output = []
for i in range(n-m+1):
conv_sum = 0
for j in range(m):
conv_sum += signal[j+i] * filter[(m-1)-j]
output.append(conv_sum)
return output
result1 = convolve(cA, Lo_rec)
result2 = convolve(cD, Hi_rec)
print([sum(x) for x in zip(result1, result2)])
Подробнее здесь: https://stackoverflow.com/questions/790 ... -in-python