【问题标题】:peaks and bringing them down to be more in line with the overall average of the signal [duplicate]峰值并将它们降低以更符合信号的整体平均值[重复]
【发布时间】:2012-11-24 08:37:29
【问题描述】:

我有信号 其中产生尖峰。我有没有办法将这些峰值的幅度降低到更符合信号的整体平均值? Link to example data in text file

数据图片

我使用的是 Octave 3.2.4/Matlab

谢谢

【问题讨论】:

  • 您可以使用最大/最小操作将这些尖峰限制在可接受的范围内吗?
  • @Paul R 是的,但是我如何获得两条绿线之间的范围以将其降低?
  • 你可以使用例如平均值+/- 3 SD。或者另一种方法可能是中值过滤。

标签: matlab signal-processing octave


【解决方案1】:

您似乎需要某种方法来可靠地估计您的平均值。 我能想到的一种方法是定义异常值的百分比(比如 5%),然后对条目进行排序并丢弃前 5%。取剩下的平均值 - 就是这样!

s = sort( abs(signal) );
TopPer = 0.05; % remove top 5% as outliers
n = floor( numel(signal) * ( 1 - TopPer ) );
robustMean = mean( s(1:n) );
% clamped signal
clampedSignal = min( max( signal, -robustMean ), robustMean );

【讨论】:

  • 这是一个音频信号,所以我无法对值进行排序。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-10-13
  • 2017-04-11
  • 2020-06-15
  • 1970-01-01
  • 1970-01-01
  • 2015-05-01
  • 2021-01-10
相关资源
最近更新 更多