首页 文章

Matlab数组中的降噪

提问于
浏览
-5

我在Matlab中使用中值滤波来减少阵列中的噪声 . 我正在计算物体的速度和加速度 . 速度部分运行良好,我得到的结果正是我的预期 .

我偶然发现了加速问题 . 我注意到加速度表现不佳;我注意到矩形形状而不是预期的光滑形状 .

加速度曲线应该是发动机中凸轮和从动件的正弦波,但问题是波的边缘不是平滑的而是直线的形式 .

对于我使用的速度 vavg=medfilt2(v, [1 5])

对于accel我使用 aavg=medfilt2(a, [1 5 ])

我应该使用其他过滤器来获得准确的边缘吗?

是否有其他过滤功能可能有用?

1 回答

  • 1

    利用某种东西的衍生物可以放大噪音,因此当你观察信号的加速时,你遇到问题就不足为奇了 . 您可以使用抗噪方法来获取衍生物 . 有关详情,请参阅此页面:

    http://www.holoborodko.com/pavel/numerical-methods/numerical-derivative/smooth-low-noise-differentiators/

    听起来人们经常使用Savitz-Golay过滤器 - 尝试Matlab中的 sgolaysgolayfilt 函数 .

    但是,一般而言,您应该考虑信号的特征和噪音 . 如果你知道信号会非常平滑,那么为什么不首先强调它的顺序呢?似乎样条曲线可能适合您(在matlab中为 spline ) .

相关问题