How to calculate a period of a wave when you don't have the equation of the wave
42 次查看(过去 30 天)
显示 更早的评论
Hi guys,
I have this wave plotted in MATLAB for 10 periods. I only have the time and height arrays. What I would like is to calculate its period but I don't know how. I was thinking of finding all the values of time (X axis) when the height of the wave (Y axis) goes to 0 and then work from there. But one problem is that X is never 0 but only very close to zero except for the initial point height(1). Any help would be welcome! Thank you.
0 个评论
采纳的回答
Kaushik Lakshminarasimhan
2017-11-5
You can use findpeaks to detect the peaks in your wave and then use the spacing between peaks to determine periodicity.
[~,peaklocs] = findpeaks(wave);
period = mean(diff(peaklocs)); % peaks may not be exactly periodic, so take mean
This should work unless your wave is very noisy.
2 个评论
Jeffrey Ostler
2019-4-8
编辑:Jeffrey Ostler
2019-4-8
This is exactly what I needed to find the period. I replaced 'wave' with (position,time) which were column vectors with data I'd imposted from my daq. Thanks so much.
更多回答(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!