Dear All,
I have a time series vector of two measured oscillating signals, say denoted by cc (controlled to periodic behaviour) and c (chaotic behaviour). I am sampling both the signals at time intervals of every
0.0001 hours (0.36 secs).I wish to find out the following: 1. the power spectrum to show the period of oscillations of the respective signal 2. calculate the time period of the signal when the controlled signal is of period 1 osciilations (limit cycle), period 2 or higher periods 3. time instants when it crosses the mean value of the signal
I think the best way to do it would be to use fourier transforms of the signal. I am using MATLAB 7.1, and after reading the documentation files, I have come up with the following codes. I am not sure if its correct or not. I think I am
calculating the power spectrum correctly but the time period is wrong. The code is mentioned below.
********************************************* Yftc = fft(cc); % Calculates the fourier transform of the controlled signal Yft = fft(c); % Calculates the fourier transform of the chaotic signal Nc = length(Yftc); N = length(Yft); Yftc(1) = []; Yft(1) = []; powerc = abs(Yftc(1:Nc/2)).^2; power = abs(Yft(1:N/2)).^2; nyquistc = 1/2; nyquist = 1/2; freqc = (1:Nc/2)/(Nc/2)*nyquistc; freq = (1:N/2)/(N/2)*nyquist; periodc = 1./freqc; period = 1./freq; [mpc,indexc] = max(powerc); % Calculates the maximum power periodc(indexc) % Finds the time period of oscillations of the maximum frequency component************************************************
I would be grateful if someone is able to mention any flaws in the coding or any better days to do it. Thanks for any suggestions or replies/criticisms/brickbats.
Cheers Ankur