问题。

有一个离散信号$ f [i] $(下面的示例)。 已知$ f [i] $具有矩形脉冲形式,具有加性高斯白噪声。

$ f [i] = s [i] + n [i] $,
$ s [i] = \ alpha(\ theta [i-i_ {1}]-\ theta [i-i_ {2}])+ c $,
$ i_ {2}> i_ { 1} $,
$ i_ {1}> N $

其中
$ \ theta [i] $是Heaviside阶跃函数,
$ n [i ] $是加性高斯白噪声,
$ \ alpha $是矩形脉冲的高度,
$ i_ {1} $是第一个矩形脉冲样本的索引,
$ i_ {2} $是矩形脉冲最后一个采样的索引,
$ c $是恒定信号电平,
$ N $是可调参数。

所有参数可能具有较大的值范围。需要找到$(i_ {2}-i_ {1})$(样本中矩形脉冲的持续时间)的值。

可能的解决方案。

目前,我尝试了两种方法来解决此问题。

具有阈值的低通滤波器。

作为首次尝试,我使用了简单的方案具有低通滤波器和阈值。
1。应用截止频率等于$ 0.05f_ {sampling} $。的FIR低通滤波器。
2。信号的前$ N $个采样的滤波噪声的估计均值$ m $和色散$ \ sigma ^ {2} $。
3。设置阈值$ t = m + 3 \ sigma $。
4。估计$ i_ {1} = \ min_ {i}(f [i]> t)$。
5。估计$ i_ {2} = \ max_ {i}(f [i]> t)$。



1。这个算法很简单。
2。快速实现很容易编写。

缺点:
1。很难估计滤波器截止频率的有效值。一方面,低值可能会破坏短脉冲的形式。另一方面,较大的值会降低过滤效果。
2。算法并没有使用所有信息,我们拥有有关信号的信息。

回归分析

作为第二次尝试,我尝试使用函数$ s'[i] $近似估计样本的输入序列。

$ s'[i] = \ alpha(\ theta'[i-i_ {1}]-\ theta'[i-i_ {2}])+ c $,
$ \ theta'[i] = \ frac {1} {1 + e ^ {-\ frac {i} {\ beta}}} $,其中$ \ beta $是一个小参数。

为了近似起见,我使用了该方法具有梯度下降的最小二乘法,以最小化成本函数。
1。设置$ \ alpha $,$ c $,$ i_ {1} $,$ i_ {2} $的初始值。
2。进行梯度下降。
3。设置阈值$ t = c + 0.5 \ alpha $。
4。估计$ i_ {1} = \ min_ {i}(f [i]> t)$。
5。估计$ i_ {2} = \ max_ {i}(f [i]> t)$。



1。该算法具有较高的精度。
2。

缺点:
1。这非常慢。

问题。

毕竟,我对第一种算法的精度和第二种算法的速度都不满意。
您将如何解决此问题?
有没有我找不到的经典解决方案?
想法,链接和任何反馈将不胜感激。

评论

您是否还需要知道随机高斯噪声会导致您的算法产生脉冲“持续时间”的可能性,尤其是在您允许的最小脉冲宽度和最小高度附近?还是已知脉冲存在​​先验且在允许的参数范围内?

@ hotpaw2已知脉冲存在​​先验且在允许的参数范围内。如果信号不包含脉冲,则该算法的行为可能不确定。

#1 楼

您需要一种在保留边缘的同时消除噪声的方法。如您所知,这不能通过线性滤波很好地实现。我知道两种方法可能会很好地解决您的问题。第一个是中值滤波,其中窗口中的样本被其中值替换。下图显示了窗口长度为25个样本(红色)的中值滤波结果:对于分段恒定信号,它非常好用。完整的变体去噪有一个很好的描述,包括可用的Matlab代码:链接。

评论


$ \ begingroup $
这很有帮助。而且我在阅读文章和玩电视降噪方面也度过了愉快的时光。谢谢。
$ \ endgroup $
– Nikolai Popov
15年1月23日,0:20

#2 楼

我知道这已经很老了,@ Matt L.很久以来就给出了一个很好的信息。我不知道存在完全变异降噪,所以我学到了一些有用的东西。因此,我同时对问题和答案进行了投票,并希望向网站提供一些类似的内容。基本思想是使用旧的RC LPF的简单数字版本,并在发生步进时大大降低“时间常数”。然后,在执行该步骤之后,大大增加“时间常数”。 N.B.如下所示,“时间常数”实际上并不是恒定的。

下图显示了我尝试复制OP的一般有噪声矩形脉冲示例以及“互导”低的方法。通过滤波器(以下称为RD-LPF)执行:



RD-LPF只是$ y [i] = Ay [i-1] +(1- A)x [i] $,其中$ A = exp(-K | y [i-1]-x [i] |)$,而我使用$ K = 0.2 $。干净的矩形脉冲具有单位幅度,从t = 3开始,脉冲宽度为3。加性高斯白噪声为$ \ mu = 0 $和$ \ sigma = 0.3 $。

下一个图将RD-LPF输出(红色轨迹)与25点移动中值滤波器的输出(蓝色轨迹)进行比较(根据Matt L.的回答):



我并不是说我会在任何严重的情况下使用RD-LPF,但是我很好奇,看看在这种小的比较中它是否会被破坏。显然不是这种情况。