I'm trying to relate a near shore tidal signal (point A) to 3 points along a long model boundary (points B C D). I want to possibly have a relationship between B C D with which we can convert A predictions into B C and D. At the moment I'm doing a single phase shift, an amplitude ration for levels above zeros, an amplitude ration for levels below zero and a mean level shift.
This creates a kink in the Tidal signal at Peak ebb and Peak flood and results in the model over predicting ebb currents. I was wondering if anyone is aware of a more complex relationship for this sort of transformation?
One thing I would like to capture is the difference in phase shift between high and low water (for example the ration of period of the positives to the period of the negatives might be different for the different points).
An example algorithm for current process.
A = vector (size n x 1 ) units meters
time_A = vector (size n x 1 )
ph_B = phase shift for AvsB.
pos_amp_B = positive amplitude ration.
neg_amp_B = negative amplitude ration.
B_mean = long term mean of B.
A_mean = long term mean of A.
for i = 1:n
a = A(i) - A_mean
if a > 0
B(i) = a*pos_amp_B
else
B(i) = a*neg_amp_B
end
time_B(i) = time_A(i) = ph_B
B(i) = B(i) + B_mean
end
BTW: The relationship is based on about 6 months of data.
EDIT 1: Well, firstly just think of two sinusoidal signals (ie. amplitude, phase shift), but not regular, so for example the period is 12.5 hrs but the slopes and periods of the positive half and negative half aren't all the same. You don't need any contextual knowledge. Im just looking for a transformation algorithm.
EDIT 2:
Here's a pic of the timeseries and the fft comparisons (fft focused on frequencies of high energy (12.5 hrs (semidiurnal)), just to give idea not all frequencys are so scaled nicely). Black is A. green in zeros line.
Without a more detailed knowledge of your domain, it's difficult to provide a definitive answer for you. I will make the assumption here that your tidal behaviour is a linear time invariant (LTI) system. From the data you have shown in your question, this looks to be a reasonable assumption.
So now you can create your B, C and D signals by simply applying an amplitude and phase adjustment to your signal A. There are several ways to do this; below I have done it by multiplying A by a complex number. Adjust the amplitude and phase of the complex number to give the result you need. Here's an example written in Matlab code:
This will produce a plot very similar in appearance to the picture you posted in your question. If your tidal behaviour cannot be approximated by an LTI system, then you may have to perform some more complex non-linear modelling.
Hope that helps!