Running Average of a Massive data set
1 次查看(过去 30 天)
显示 更早的评论
So I have a data file containing 5 seconds of sound data, where I want to smooth the data with a running average function and then use the Fast Fourier Transform function in MATLAB in order to pinpoint the amplitude spikes that should be a tuning fork and an out of tune instrument. The data has 20,000 popints, however, and the methods I've tried so far accidentially erase the information I want. Is there a way to make a running average function manually for that many data points?
0 个评论
采纳的回答
Image Analyst
2019-12-10
Well 20,000 points is far from massive. Maybe if it were 10,000 times that big. 20k is actually pretty small. Anyway you can use the conv() function.
windowWidth = 101; % an odd number.
kernel = ones(1, windowWidth) / windowWidth;
smoothedSignal = conv(signal, kernel, 'same');
You can also try the movmean() function if you have a recent version of MATLAB.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Signal Generation and Preprocessing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!