Retrieve phase from a time-varying cosine signal
15 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Jingtao
am 27 Mai 2023
Kommentiert: Jingtao
am 28 Mai 2023
I got two experimental time-domain signals (sampling length of N=13001, sampling frequency of Fs=4000 Hz). By curve fitting, I found one (red) is a cosine signal with a single frequency, so the phase shift is linear with respect to time. However, the other (blue) is a time-varying cosine singal whose phase shift is nonliear with respect to time. How can I get the phase difference between the red signal and the blue one? Please find attached "data.txt".
0 Kommentare
Akzeptierte Antwort
Hiro Yoshino
am 27 Mai 2023
I would suggest that you should try hilbert transform as follows:
load("data.txt")
plot(data(:,1))
hold on
plot(data(:,2));
hold off;
Hilbert transform and phase analysis
y1 = hilbert(data(:,1));
y2 = hilbert(data(:,2));
phase1 = atan2(imag(y1),real(y1));
phase2 = atan2(imag(y2),real(y2));
plot(unwrap(phase1)); % unwrap phases
hold on;
plot(unwrap(phase2));
hold off;
plot(unwrap(phase1) - unwrap(phase2));
title("Phase difference");
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Transforms finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!