Я создал три одинаковые волны с фазовым сдвигом в каждом. Например:
t = 1:10800; % generate time vector
fs = 1; % sampling frequency (seconds)
A = 2; % amplitude
P = 1000; % period (seconds), the time it takes for the signal to repeat itself
f1 = 1/P; % number of cycles per second (i.e. how often the signal repeats itself every second).
y1 = A*sin(2*pi*f1*t); % signal 1
phi = 10; % phase shift
y2 = A*sin(2*pi*f1*t + phi); % signal 2
phi = 15; % phase shift
y3 = A*sin(2*pi*f1*t + phi); % signal 3
YY = [y1',y2',y3'];
plot(t,YY)
Теперь я хотел бы использовать метод для обнаружения этого сдвига фазы между волнами. Дело в том, что я могу в конечном итоге применить метод к реальным данным и идентифицировать сдвиги фаз между сигналами.
До сих пор я думал о вычислении поперечных спектров между каждой волной и первой волной (т.е. без сдвига фазы):
for i = 1:3;
[Pxy,Freq] = cpsd(YY(:,1),YY(:,i));
coP = real(Pxy);
quadP = imag(Pxy);
phase(:,i) = atan2(coP,quadP);
end
но я не уверен, что это имеет смысл.
Кто-нибудь еще сделал что-то похожее на это? Желаемый результат должен показывать сдвиг фазы на 10 и 15 для волн 2 и 3 соответственно.
Любые советы будут оценены.