1

我有一个产生尖峰的信号。我有没有办法将这些峰值的幅度降低到更符合信号的整体平均值? 链接到文本文件中的示例数据

数据图像 在此处输入图像描述

我正在使用 Octave 3.2.4/Matlab

谢谢

4

1 回答 1

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 );
于 2012-11-24T21:18:34.993 回答