Let assume we have a signal as:
$\color{blue} {x(t)=M e^{(-\beta.t)} e^{j(\sigma .t+\delta )}}$
By applying phase angle operator we have:
$\color{blue} {Phase[x(t)]=Phase[M e^{-\beta.t} e^{j(\sigma .t+\delta )}]=\sigma.t+\delta}$
I have two questions:
1. How can I implement the Phase angle operator, i.e. Phase, in practice ,like a chip.
2. Does phase angle operator increase the effect of noise in a noisy signal?(for example some operators like derivative operator increases the noise effect in a noisy signal)
Kind Regards
1 Answer
As mentioned in my comment, you need the atan2
function. If it is not implemented in the library you're using, you can implement it yourself quite easily according to this definition. If your signal is $x(t)=x_r(t)+jx_i(t)$, where $x_r(t)$ and $x_i(t)$ are the real and imaginary parts, respectively, then for a given time $t$, the phase is computed as $\phi(t)=\text{atan2}(x_i(t),x_r(t))$.
The computation of the phase of a signal is indeed sensitive to noise. Note that - no matter how you implement it - there is always some direct or approximate computation of the ratio of the imaginary and the real part of the signal, and since both are corrupted by noise, the ratio can be very noisy. The computation of the ratio can also become numerically problematic if the denominator (i.e. the real part) becomes very small.
atan2
. Now I have two questions. First, How can I apply it to my signal? is this function within every microcomputer programming tool? Second, Does noise effect increase the error as derivative operator does? thanks @MattL. $\endgroup$