PyWavelets 中dwt、wavedec、WaveletPacket等三种离散信号变换方式简单对比

该博客探讨了PyWavelets库中三种不同的离散小波变换方法——dwt、wavedec和WaveletPacket。通过示例代码展示了它们在处理整数序列时的使用、输出数据类型和格式。结果显示,虽然在最后一层输出有相似之处,但不同变换方式在层次和数据格式上存在差异。dwt返回近似和细节分量,wavedec提供所有级别的系数,而WaveletPacket则以树结构呈现详细信息。
摘要由CSDN通过智能技术生成

起因

最近学习小波变换,发现在PyWavelets 对离散信号有三种不同的方法,包括dwt、wavedec、WaveletPacket,他们简单使用、变换后的结果,输出的数据类型、格式等进行简单演示

代码

话不多,上代码

import numpy as np
from pywt import wavedec, WaveletPacket, dwt


x = np.arange(1, 10, 1, dtype=int)
a = x
print(a)

ca = []  # 近似分量
cd = []  # 细节分量
for i in range(3):
    (a, d) = dwt(a, 'db1', mode='symmetric')  # 进行5阶离散小波变换
    ca.append(a)
    cd.append(d)

print('-'*20, 'dwt', '-'*20)
print('ca:', ca)
print('cd', cd)

print('-' * 20, 'wavedec', '-' * 20)
coeffs = wavedec(x, 'db1', mode='symmetric', level=3)
print(coeffs)

print('-' * 20, 'WaveletPacket', '-' * 20)
wp = WaveletPacket(data=x, wavelet='db1', mode='symmetric', maxlevel=3)
print(wp)

for node in wp.get_level(3, 'natural'):
    print('{}-{}'.format(node.path, node.data))

结果

从结果看,不同的变换方式在最后一层的结果一致,其他树叶由于层次不同,不可比,数据格式不同

-------------------- dwt --------------------
ca: [array([ 2.12132034,  4.94974747,  7.77817459, 10.60660172, 12.72792206]), array([ 5., 13., 18.]), array([12.72792206, 25.45584412])]
cd [array([-0.70710678, -0.70710678, -0.70710678, -0.70710678,  0.        ]), array([-2., -2.,  0.]), array([-5.65685425,  0.        ])]
-------------------- wavedec --------------------
[array([12.72792206, 25.45584412]), array([-5.65685425,  0.        ]), array([-2., -2.,  0.]), array([-0.70710678, -0.70710678, -0.70710678, -0.70710678,  0.        ])]
-------------------- WaveletPacket --------------------
: [1 2 3 4 5 6 7 8 9]
aaa-[12.72792206 25.45584412]
aad-[-5.65685425  0.        ]
ada-[-2.82842712  0.        ]
add-[-6.66133815e-16  0.00000000e+00]
daa-[-1.41421356  0.        ]
dad-[4.4408921e-16 0.0000000e+00]
dda-[-7.85046229e-17  0.00000000e+00]
ddd-[-7.85046229e-17  0.00000000e+00]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值