それぞれに位相シフトがある 3 つの同一の波を生成しました。例えば:
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
しかし、これが意味をなすかどうかはわかりません。
他の誰かがこれに似たようなことをしましたか? 望ましい結果は、波 2 と 3 に対してそれぞれ 10 と 15 の位相シフトを示すはずです。
アドバイスをいただければ幸いです。