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:

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

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
clc
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);
figure
subplot(2,1,1)
plot(phi)
title('Phase of the original signal')
subplot(2,1,2)
plot(phase_rcst)
title('Unwrapped phase')

• Could you post your code? I'm not able to reproduce your problem. Jul 19 '18 at 16:42
• @MattL. The code has been added. Let me know if you need anything else. 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.
• 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$. Jul 20 '18 at 9:10