背景
小波变换:一种时频分析方法,能将信号分解为不同尺度的近似分量和细节分量,适合处理非平稳信号。
平稳小波变换SWT:在每一层分解时不进行下采样,因此系数长度与原始信号一致,避免了普通小波变换的平移敏感性,更适合去噪和特征提取。
多级分解:将细节分量再次进行 SWT 分解,可以更精细地分离噪声与信号特征。
阈值去噪:对小波系数进行软阈值或硬阈值处理,抑制噪声分量。噪声水平通过纯噪声信号的分解来估计。
盲质量指标:基于重构信号的粗糙度、频谱能量比和相对非均匀性三个指标,无需原始纯净信号即可评价去噪效果,用于自动选择最优小波基。
峰值检测:在去噪后的信号中,利用统计方法(RMS、基线)和设定信噪比阈值,找到显著峰的位置。
这个算法在去掉噪声的同时保留重要的特征(比如光谱峰)。它先通过平稳小波变换把信号分解成不同粗细的“层”,然后专门用纯噪声信号去估计每一层里的噪声有多大,接着把每一层里比噪声小的系数剪掉(阈值处理),再把这些层重新拼回干净的信号。为了找到最合适的小波(就像选最合适的刷子),算法会用3个质量指标自动比较不同小波的结果,选出最优的。最后,在干净信号上用峰值检测功能,就能准确找到信号的“亮点”(比如光谱线)。
算法步骤
设定参数:确定分解层数、阈值置信度、填充方式、峰值检测灵敏度等。
信号填充:将原始信号两端延长,使其长度满足平稳小波变换对尺度数的要求。
多级平稳小波分解:将填充后的信号进行指定层数的 SWT 分解,得到每一层的近似系数和细节系数;再对每一层的细节系数再次进行 SWT 分解(二级分解),得到更精细的子带。
噪声水平估计:用原始信号的方差生成一段同长度的纯高斯白噪声,对它进行同样的多级 SWT 分解,计算每个子带系数的均方根(RMS)作为该子带的噪声估计值。
系数阈值处理:对每个子带的细节系数,根据对应的噪声估计值乘以置信度作为阈值,用硬阈值或软阈值将小于阈值的系数置零,保留大于阈值的系数。
多级逆变换重构:先对二级分解的子带进行逆 SWT,恢复出各层的细节系数,再对全部系数进行逆 SWT,得到重构信号。
去填充:去掉填充部分,恢复原始信号长度。
盲质量指标计算:用重构信号计算粗糙度、频谱能量比和相对非均匀性,并归一化后求欧氏距离,得到 BFOM 值,用来评价去噪效果。
最佳小波选择:对候选小波重复上述 2-8 步,选取 BFOM 最小的那个小波及其对应的重构信号。
峰值检测:在最优重构信号上,用统计方法计算基线、RMS,并设定信噪比阈值,用 scipy.signal.find_peaks 找出所有显著峰的位置。
获取完整数据和代码,请直接加
kang20224
不要在面包多直接拍