Bootstrap

Python中小波变换swt和wavedec区别

wavedec函数用于执行多级小波分解wavedec(data, wavelet, mode='symmetric', level=None, axis=-1) 为默认值,前面两个是数据和小波,mode:指定信号扩展模式,常见的扩展模式:
  • 'zero':在信号两端使用零填充的方式进行扩展。
  • 'symmetric':在信号两端使用对称填充的方式进行扩展,即将信号进行镜像对称后填充。
  • 'periodic':在信号两端使用周期填充的方式进行扩展,即将信号首尾相接形成周期信号后进行填充。
  • 'constant':在信号两端使用常数填充的方式进行扩展,可以指定填充的常数值。

level:分解层数,注意这里如果不填,会默认使用最大分解层数,即dwt_max_level

axis:用于指定计算DWT的轴。没有给出该参数,则默认使用最后一个轴进行DWT计算。

return返回值:列表

[cA_n, cA_n, cD_n-1, ..., cD2, cD1]

n是分解层数,cA_n近似系数,cA_n细节系数,每一个细分为很多个array([ 5., 13.])

它建立在dwt的底层基础上,拼接得到。DWT(Discrete Wavelet Transform离散小波变换)用于执行一级小波变换

>>> (cA, cD) = pywt.dwt([1, 2, 3, 4, 5, 6], 'db1')
SWT静止小波变换(Multilevel 1D stationary wavelet transform)
def swt(data, wavelet, level=None, start_level=0,axis=-1,trim_approx=False,norm=False)

前面几个参数都已经知道,注意后面几个,

  • trim_approx参数是一个布尔类型的参数,如果设置为True,表示在最后一层保留近似系数(approximation coefficients),如果设置为False,则不保留。近似系数是小波变换中用于重构原始信号的部分。

  • norm参数也是一个布尔类型的参数,如果设置为True,表示对变换进行归一化,使得变换后的系数能量等于原始数据的能量。换句话说,当trim_approx为True时,通过对变换系数进行合并,其能量将与原始数据的能量相等。

  • 返回值:列表

    [(cAn, cDn), ..., (cA2, cD2), (cA1, cD1)],如果给了开始层数m,
    [(cAm+n, cDm+n), ..., (cAm+1, cDm+1), (cAm, cDm)]
  • 与其分解版本(pywt.wavedecn)相比,这种变换的一个主要优点是它是平移不变的(shift-invariant)。这样做的代价是变换的冗余性,即输出系数的大小比输入要大。
;