extraire la phase d'un signal
Bonjour,
Actuellement j'essaie de comprendre un point qui me pose problème. Le but étant de déduit la phase fluctuante d'un signal.
Si je prends par exemple un signal sinusoidal simple tel que : signal = sin(2*pi*f*t+P1+P2) avec (valeurs choisies au hasard):
- P1= 2 (la phase du signal).
- P2= (3*10^3)*(t^2) (une fluctuation de phase quelconque qui se trouve dans mon signal)
Donc mon but c'est d'extraire la phase fluctuante P2 avec une transformée de fourier. Pour se faire, je réalise une fft sur le signal puis je déduis la phase :
Code:
1 2
| TFSignal = fft(signal,Nfft)
Phase = unwrap(angle(TFSignal)) |
A priori le terme Phase contient les valeurs du terme : (2*pi*f*t+P1+P2). Donc pour déduire P2 je fais :
Code:
P2=Phase-(2*pi*f+P1)
Le problème est que quand je trace les valeurs de P2 obtenues avec la transfrmée de fourier et les valeurs théoriques ((3*10^3)*(t^2)) les deux courbes ne correspendent pas du tout.
Pouvez vous me dire à quel niveau je me trompe et auquel cas me proposer une éventuelle solution s'il vous plait ? merci.
2 pièce(s) jointe(s)
extraire la phase d'un signal
Salut,
Je cherche à extraire bêttement la phase d'un signal connu en passant par une fft mais je n'y arrive pas. Vous me renderai un grand service si vous pouvez m'aider.
Par exemple si je prends le signal suivant : signal=sin(2*pi*f*t+5). Le but c'est de ploter la phase obtenue avec une fft et la comparer à (2*pi*f*t+5).
Mon code suit l'idée suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
signal=sin(2*pi*f*t+5);
Y=fft(signal,Nfft)
phase=unwrap(angle(Y)); % on extrait la phase dans le domaine des fréquences.
X=ifft(phase,Nfft)
phase=unwrap(angle)) % on extrait le phase dans le domaine temporelle
figure(1)
plot(temps, (2*pi*f*t));
figure(2)
plot(temps,phase); |
Avec cette méthode j'obtiens des résultats qui ne se correspendent pas, comme vous pouvez le voir sur les figures en pièces jointes.
Je me demande si la démarche suivi elle même est adaptée pour extraire la phase de ce signal.
Merci pour l'aide :)