フィルターのクリア

Smoothing noisy increasing measurement/calculation

1 回表示 (過去 30 日間)
Mark
Mark 2014 年 2 月 18 日
コメント済み: Image Analyst 2014 年 2 月 18 日
I have a set of calculated values based on measured data (erosion through a pipe) where decreasing values are physically impossible. I want to smooth out the data and account for the fact that it is impossible to decrease, but don't want my new data to take giant jumps when the noise is significant. Any suggestions would me much appreciated.

採用された回答

Chad Greene
Chad Greene 2014 年 2 月 18 日
A moving average should do it. You'll lose some temporal resolution, but if the noise is gaussian then a moving average will force the noise to asymptote to zero with increasing time window size. There are several moving average functions on the file exchange; I'm not sure which is best.
Alternatively, you could apply a low-pass frequency filter if the lowest frequency of the noise is not below the highest frequency of your erosion signal. If you have the signal processing toolbox, I made this to make frequency filtering a little more intuitive: http://www.mathworks.com/matlabcentral/fileexchange/38584-butterworth-filters
  1 件のコメント
Mark
Mark 2014 年 2 月 18 日
Thanks Chad. For now the moving average looks like it's giving something acceptable (smooth() with a large enough span). I'll do some diving into your frequency filtering. Thanks again.

サインインしてコメントする。

その他の回答 (2 件)

John D'Errico
John D'Errico 2014 年 2 月 18 日
So use a tool like SLM (download from the file exchange) to fit a monotone increasing spline to the data, smoothing through the noise.

Image Analyst
Image Analyst 2014 年 2 月 18 日
How about just scan the array and compare to the prior value?
for k = 2 : length(erosion)
if erosion(k) < erosion(k-1)
erosion(k) = erosion(k-1);
end
end
Simple, fast, intuitive.
  2 件のコメント
Mark
Mark 2014 年 2 月 18 日
編集済み: Mark 2014 年 2 月 18 日
Right right, the only problem is I have giant jumps in noise, so if it reads the apex of the noise, it will not go back down to the realistic values, and I will be getting a flat line for a good amount of time until my calculated values reach a point greater than what the noise said it was.
Image Analyst
Image Analyst 2014 年 2 月 18 日
Even if you do a sliding mean like Chad suggested, you'll still have to do my method (or equivalent) because you said that decreasing values are physically impossible. A sliding mean filter can have values that decrease so you'll have to scan for that and fix it when it occurs.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeSmoothing and Denoising についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by