小波滤波小波基、阈值、阈值函数的选择

1. 小波基的选择:
小波基经典小波函数主要有haar小波、dbN小波、coifN小波、symlet小波、meyer小波等等

选择小波基是常用的指标如下:
(1)正交性
小波基函数的正交性保证了小波变换能够将信号分解到相互正交的各个子空间中,并提高了离散小波变换的计算能力。
(2)紧支性
小波的紧支性使得小波变换能够对具有位置特性的信号进行有效地表示,且小波的支撑越小,其定位的精度越高,局部化能力越强,计算的复杂度越低。在实际应用中,如果小波不是紧支的,那么一般要求该小波是迅速衰减的。一般一个函数不可能满足在时域和频域都是紧支的,通常要求小波基函数在时域上是紧支的,而在频域上是迅速衰减的。
(3)对称性
小波的对称性对应滤波器的线性相位,其反对称性对应滤波器的广义线性相位,而线性相位至少广义线性相位能够避免或减少相位失真,因此理想小波应具有对称性。
(4)正则性
正则性通常用来描述一个小波函数的光滑程度,正则性越强,小波函数越光滑,其频域上的能量越集中,一般而言重构信号也就越光滑。
(5)高阶消失矩
信号越光滑时,消失矩越大,被抑制的小波系数越多,信号的能量越集中,因此,消失矩在利用小波对信号进行压缩、去噪、奇异性检测时是一个非常关键的指标

小波滤波小波基、阈值、阈值函数的选择_第1张图片
http://kns.cnki.net/KCMS/detail/detail.aspx?dbcode=CMFD&dbname=null&filename=1017142375.NH

2.阈值的选择
对于阈值有好几种,我就用过通用阈值。在此给出通用阈值的python代码,其他的阈值读者自行查阅。

for i in range(1, len(coeffs)):#coeffs为小波分解后的列表
    tmp = coeffs[i].copy()
    Sum = 0.0
    for j in coeffs[i]:
        Sum = Sum + abs(j)
    N = len(coeffs[i])
    Sum = (1.0 / float(N)) * Sum
    sigma = (1/0.6745)*Sum   
lamda = sigma * math.sqrt(2.0 * math.log(float(N), math.e))#lamda为求出的阈值

3. 阈值函数的确定

pywt.threshold(data,value,mode =‘soft’,substitute = 0 )
可参考以下博文
https://blog.csdn.net/zhang0558/article/details/76019832

具体可参考小波官方文件
https://blog.csdn.net/nanbei2463776506/article/details/64124841

你可能感兴趣的:(数据挖掘,python)