MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today
Asked by Chris Martin on 19 Jul 2013

How to find annual amplitude and phase of time series

*No products are associated with this question.*

Answer by Wayne King on 19 Jul 2013

Accepted answer

There are a number of ways you can try and estimate it. Do you have a priori knowledge of the frequency? If so you can use linear regression to find the amplitude and phase.

For example, assume I know the frequency is 10 Hz for data sampled at 100 Hz.

Fs = 100; t = 0:1/Fs:2-1/Fs; x = 1.5*cos(2*pi*10*t-pi/4)+randn(size(t)); % create the design matrix X = ones(length(x),3); X(:,2) = sin(2*pi*10*t); X(:,3) = cos(2*pi*10*t); x = x(:); beta = X\x;

The amplitude estimate is:

amp_est = norm([beta(2) beta(3)],2)

The phase angle estimate is:

phase_est = atan2(-beta(2),beta(3))

If you don't know the frequency a priori, then look at the following example:

https://www.mathworks.com/help/signal/ug/frequency-domain-linear-regression.html

## 0 Comments