超黄有一个很好的答案,但我还要补充一点,您可以使用的另一种方法是通过 Haar 小波变换,然后是小波系数收缩,以及返回时域的反 Haar 变换。
Haar 小波变换将您的信号分解为平方和差分函数的系数,尽管是在不同的尺度上。这里的想法是您“强制”新的方形信号表示以最好地匹配您的原始信号,因此最能代表您的边缘所在的位置。
当您执行系数收缩时,这意味着您将 Haar 变换函数的特定系数设置为零。(还有其他更复杂的方法,但这是最简单的)。Haar 变换小波系数是与不同尺度的不同平方/差分函数相关的分数。Haar 变换信号的 RHS 表示最低尺度的平方/差分基数,因此可以在“最高频率”处解释。因此,大部分噪声能量将位于此处,而大部分信号能量将位于 LHS 上。是那些被归零的基系数,然后将结果逆变换回时域。
附件是被严重 AWGN 噪声破坏的正弦曲线示例。目标是找出脉搏的“开始”和“停止”位置。传统的滤波会抹去高频(并且在时间上高度局部化)边缘,因为从本质上讲,滤波是一种 L-2 技术。相反,以下迭代过程将去噪并保留边缘:
(我以为可以在这里附上电影,但我似乎不能。你可以在这里下载我制作的电影)。(右键单击并“将链接另存为”)。
我在 MATLAB 中“手动”编写了这个过程,它是这样的:
- 创建一个被重 AWGN 破坏的正弦脉冲。
- 计算上面的包络。(“信号”)。
- 计算所有尺度的信号的 Haar 小波变换。
- 通过迭代系数阈值去噪。
- Inverse Haar 变换收缩系数向量。
您可以清楚地看到系数是如何缩小的,以及由此产生的哈尔逆变换。
然而,这种方法的一个缺点是边缘需要在给定的比例下位于或围绕正方形/差异基数。如果不是,则变换被迫跳到下一个更高的级别,因此失去了边缘的精确位置。有用于解决此问题的多分辨率方法,但它们涉及更多。