Smooth and Filter large data set

3 ビュー (過去 30 日間)
Orion
Orion 2016 年 7 月 21 日
回答済み: Star Strider 2016 年 7 月 21 日
I have a signal data array of 2,000,000 elements and I want to smooth the signal as it is very spiky. I tried to use the 'smooth' function with a span of 61, but it took MATLAB forever to process it. I ran it on a cluster node with 6 cores and I didn't get the results after 20 hrs. Is there any other ways to do the smoothing on a large dataset?

回答 (1 件)

Star Strider
Star Strider 2016 年 7 月 21 日
First, take the fft to see what frequencies are signal and what are noise. If it looks that you have separable signal and noise energy, you can use a frequency-selective filter to eliminate the noise. (Since ‘spikes’ tend to be characterised as being high-frequency, you may be able to filter out most of the ‘spike’ energy.)
There are several ways to design filters in MATLAB, including dfilt and designfilt. My IIR filter design procedure is here: How to design a lowpass filter for ocean wave data in Matlab?.

カテゴリ

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