0

The transmitted signal $$x(t) = A_c \cos(2\pi f_c t+\phi),$$

I know mathematical expression of complex envelope and its derivation, but how to find its complex envelope in MATLAB?

Assume that $A_c = 3$, carrier frequency $f_c = 1$ GHz, phase $\phi = 30$ degrees.

Could somebody show me the MATLAB code that generates the complex envelope of signal $x(t)$?

Peter K.
  • 25,714
  • 9
  • 46
  • 91
kotori
  • 3
  • 1

1 Answers1

1

The hilbert function in MATLAB will return an FFT based approximation of the Analytic Signal, and the magnitude of the analytic signal is the "envelope", but this isn't the "complex envelope" the OP refers to.

The analytic signal is given as:

$$x_a(t) = x(t) + j\mathscr{H}\{x(t)\} \tag{1} \label{1}$$

Where $\mathscr{H}\{x(t)\}$ is the actual Hilbert transform of $x(t)$.

Note that in general the analytic signal $x_a(t)$ is a complex values signal that can be expressed in terms of AM and PM signals, or as in the OP's case, a complex envelope at a fixed carrier. The two forms are listed below, starting with the AM and PM form:

$$x_a(t)= A(t)e^{j\phi(t)} \tag{2} \label{2}$$

Where $A(t)$ is a real valued waveform representing amplitude modulation, and $\phi(t)$ is a real valued waveform representing phase modulation.

The analytic signal using a complex envelope at a fixed carrier is given here as:

$$x_a(t) = x_c(t)e^{j2\pi f_c t} \tag{3} \label{3}$$

Where $x_c(t)$ is a complex waveform as the complex envelope of $x(t)$ and $f_c$ is the carrier frequency for that envelope.

To extract the complex envelope from the analytic signal, we must define $f_c$ and then from that we can solve for the complex envelope directly from \ref{3} as follows:

$$x_c(t) = x_a(t)e^{-j2\pi f_c t}\tag{4} \label{4}$$

The OP's case is simple enough to do by inspection but I will show the details below on how it would be computed, with $x_a(t)$ as given below is the analytic signal as would be returned by MATLAB's hilbert function:

$$x(t) = A_c\cos(2\pi f_c t + \phi)$$

$$x_a(t) = A_c\cos(2\pi f_c t + \phi) + jA_c\sin(2\pi f_c t + \phi) = A_c e^{j( 2\pi f_c t + \phi)}$$

using \ref{4}:

$$x_c(t) = x_a(t)e^{-j2\pi f_c t} = A_ce^{j\phi}$$

Dan Boschen
  • 50,942
  • 2
  • 57
  • 135
  • 1
    are you missing an imaginary unit before the Hilbert transform in the analytic signal expression? (Sorry but its not letting me "at" for some reason...) – GrapefruitIsAwesome Jan 12 '22 at 00:33
  • Yes! I was, thank you!! – Dan Boschen Jan 12 '22 at 00:48
  • Thank you very much!! I think here envelope is different from complex envelope, I also want to get complex envelope of a signal, Could I get mathematical expression of complex envelope only from known signal Xt in MATLAB? – kotori Jan 12 '22 at 03:31
  • @kotori I believe this is the complex envelope if you mean by that the amplitude of a complex signal. For example to confirm we are saying the same thing, the complex signal $3e^{j \omega t}$ would also have a constant amplitude of 3. Notice that the analytic signal is a complex signal, and the analytic signal for $3cos(\omega t)$ IS $3e^{j \omega t}$! – Dan Boschen Jan 12 '22 at 03:34
  • So the envelope itself is not complex-- if you are referring to something else that is itself a complex quantity as the envelope then I am missing something. – Dan Boschen Jan 12 '22 at 03:38
  • I get it! in this case complex envelope is a constant ,If I change the modulating signal to a more complicated one,like Xt = x(t)Accos(2pifc*t+φ(t)),How to get the complex envelope in MATLAB? complex envelope becomes complex,in this case envelope is the same as complex envelope? – kotori Jan 12 '22 at 03:49
  • @kotori Ok I see, yes the envelope can be a complex quantity and it is found using the same process. I'll expand how the analytic signal is a complex envelope and phase function. – Dan Boschen Jan 12 '22 at 04:07
  • ohh thank you!! – kotori Jan 12 '22 at 04:41
  • 1
    I did,thank you! – kotori Jan 12 '22 at 04:49