Вручную воссоздать функцию iswt в PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Вручную воссоздать функцию iswt в Python

Сообщение Anonymous »

Я хочу вручную воссоздать функцию pywt.iswt в Python, потому что хочу использовать ее в контексте пакета вейвлетов. К сожалению, я не совсем понимаю, какие шаги выполняет функция, даже после просмотра исходного кода.
Я попробовал свертку коэффициентов уровня 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»