I am not too familiar with phase-related problems so I need some suggestions or corrections in a problem that might be an old but easy one. Here is my problem: given a complex signal: $$y(t) = e^{j\phi(t)}$$ where $\phi(t)$ is the instantaneous phase. Now we have the observations $y(t)$. Can we somehow reconstruct $\phi(t)$?

I understand the phase will be wrapped into $-\pi$ to $\pi$ when we calculate the phase from $y(t)$. For example, let $\phi(t) = 130t+150t^2 + 0.2, t\in[0,1]$ with a sampling frequency $f = 512$. When I try to reconstruct the phase from $y(t)$ using unwrap(angle(y(t))) in Matlab, i.e., the unwrapped phase, the result is shown in the following figure:

Phase comparison

The second example is that $\phi(t) = 450t-100t^3 + 0.2, t\in[0,1]$. The result is

enter image description here

The reconstructed phases are different from the original ones. Does this mean that the phase cannot be uniquely reconstructed? Could anyone show me some explanations or suggestions? Thank you!

Edit: the code is as follows.

clear all 
N = 512;
t = (0:N-1)/N;
% phi = (130*t + 150*t.^2) + 0.2;
phi = (450*t - 100*t.^3) + 0.2;
s = exp(2*pi*1i*phi);
phase_rcst = unwrap(angle(s))/(2*pi);
title('Phase of the original signal')
title('Unwrapped phase')
  • $\begingroup$ Could you post your code? I'm not able to reproduce your problem. $\endgroup$
    – Matt L.
    Jul 19 '18 at 16:42
  • $\begingroup$ @MattL. The code has been added. Let me know if you need anything else. $\endgroup$
    – ZHUANG
    Jul 20 '18 at 2:21

The problem comes from sampling the phase. For the given phase function, the changes in the phase from one value $t_i$ to the next one $t_{i+1}$ can become too large, so phase unwrapping will not work properly. If you simply removed the factor $2\pi$ in the exponent, the problem would be solved already (note that the factor shouldn't be there anyway according to definition of $y(t)$ in your first formula):

s = exp(1i*phi);

If you want to keep the factor $2\pi$, then use more sampling points.

  • $\begingroup$ This is correct. More precisely, as the phase change from one value to the next becomes larger than $\pi$, the phase unwrapping stops working properly. Imagine two consecutive phase values are 0, and $\pi+0.1$. The phase difference is thus $\pi+0.1$. When the phases are wrapped to the interval $[-\pi,\pi]$, these consecutive phase values become $0$ and $-\pi + 0.1$. The phase difference is now $-\pi+0.1$, a negative value. This is why your unwrapped phase plots change direction. The change happens at the time step where the original phase difference becomes larger than $\pi$. $\endgroup$
    – hulappa
    Jul 20 '18 at 9:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.