Time for action - analysing the exchange rate
1. Assume that we have loaded the currency exchange rate data into a variable
curr
and that we have 230 data points. The month index is given by:
octave:39> m_index = [0:229];
2. The increasing trend is given by the end-points in the data:
octave:40> a = (curr(230)-curr(1))/229; b = curr(1);
3. Subtracting the trend from the data:
octave:41> curr1 = curr a*m_index b;
4. To ensure a data set with zero-mean, we use:
octave:42> curr2 = curr1-mean(curr1);
5. We can then perform a Fourier analysis on the "trend-free" data using the ordinary frequency f = ω / 2π:
octave:43> N=230; n=[-N/2:N/2]; n(N+1) = []; freq = n./N; octave:44> acurr = abs( fftshift( fft(curr2) ) );
6. To plot the result, we use:
octave:45> plot(freq, acurr)
The result is shown below for positive frequencies. Note that we may have an aliasing problem!
7. Now the ordinary frequency of the main mode is:
octave:46> i = find( acurr==max(accur) ); freq(i) ans = 0.030434...