How to calculate period of signal with matlab

T
Teagan · Jan 19, 2021 · 2.1K views
Question
Hi , I have the signal x2(t)=|cos(10*pi*t)|.How can i calculate its period with matlab?I am new  matlab so each help will be usefull
Expert Answer
Profile picture of John Williams
John Williams PhD Expert
Answered Aug 24, 2026

use autocorrelation. If your data is periodic you should get high correlation once the lag time matches the period. here is an example:

x=0:0.1:20*2*pi;
y=sin(x); % so we know the period is 2*pi roughly 6.28
ac=xcorr(y,y);
[~,locs]=findpeaks(ac);
mean(diff(locs)*0.1)

ans =

      6.2842
In a more complex data set including some noise you need to work around the find peaks a little bit. That might be too noisy.
In the example you gave here is what you will get
x=0:0.01:20*2*pi;
y=abs(cos(10*pi*x));
ac=xcorr(y,y);
[~,locs]=findpeaks(ac);
mean(diff(locs)*0.01)

ans =

      0.1000

Another approach is using FFT, particularly if you have a more complex signal.

100% Run Guarantee 3-Hour Fast-Track Delivery

Need a Custom Version or Complete Simulation for This Problem?

Our 500+ PhD engineers build, debug, and optimize working MATLAB scripts and Simulink (.slx) models tailored to your exact assignment rubrics with zero plagiarism.

Tested on MATLAB R2024b / R2026a
Turnitin 0% Plagiarism Report
Free 7-Day Revisions Guarantee
Have a different question? Ask here

Get a Free Consultation or a Sample Assignment Review!