How to get a period of cosinus function ?

조회 수: 4 (최근 30일)
Ilan Moshe
Ilan Moshe 2020년 5월 25일
댓글: Ilan Moshe 2020년 5월 27일
Hi,
I have to find the period of the cosinus function using only the vector time and the vector data of the function.
Cosinus function
Vector data
time data
  댓글 수: 2
Rik
Rik 2020년 5월 25일
This looks like the sum of two cosines, not just one. Do you want the cosine with the largest magnitude? Are you allowed to use a Fourrier transform?
Ilan Moshe
Ilan Moshe 2020년 5월 25일
Yes, it is actually a sum of cosines by using this code :
function [t,x]=getSumOfCosines(delta_t,Tlim,f)
t=0:delta_t:Tlim;
x=sum(cos(2*pi*t.*f));
end
The only restriction is to not use any loop and to use only x and t vectors.

댓글을 달려면 로그인하십시오.

채택된 답변

Rik
Rik 2020년 5월 25일
편집: Rik 2020년 5월 25일
Because this is homework, I won't provide a copy-paste ready solution.
If you follow the example from the documentation for fft, you get the code below.
%recreate data
delta_t=0.1;Tlim=5;f=[1;2];
t=0:delta_t:Tlim;
x=sum(cos(2*pi*t.*f));
%figure(1),clf(1)
%plot(t,x)
Fs=1/mean(diff(t));%sampling frequency
L=numel(x);
Y = fft(x);
P2 = abs(Y/L);
P1 = P2(1:floor(L/2)+1);
f = Fs*(0:(L/2))/L;
figure(1),clf(1)
plot(f,P1,'-*')
title('Fourrier transform'),xlabel('frequency'),ylabel('magnitude')
Now you can clearly see there are two frequencies that have a high magnitude.
  댓글 수: 3
Rik
Rik 2020년 5월 25일
Frequency is the inverse of period.
Ilan Moshe
Ilan Moshe 2020년 5월 27일
Thanks :)

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by