fft can do it:
Y = fft(signal);
periodLength = 'second'; %or whatever units your signal was acquired in.
N = length(Y);
Y(1) = [];
power = abs(Y(1:floor(N/2))).^2;
nyquist = 1/2;
freq = (1:floor(N/2))/floor(N/2)*nyquist;
figure;
plot(freq,power)
grid on
xlabel(['cycles/' periodLength]);
title('Frequency plot');
and this gives it as number of periods per cycle.
period = 1./freq;
figure;
plot(period,power)
grid on
ylabel('Power')
xlabel(['Period (' periodLength 's/Cycle)']);
title('Period Plot');