1

Matlab and Simulink Communications Toolbox digital demodulators are defined to only work on the complex envelope representation of a baseband signal.

To obtain the time-domain representation of this signal, I believe one takes the real part of the complex envelope.

Given just this real part, how does one convert the time-domain representation of modulated data back into a complex envelope such that a Matlab demodulator will demodulate it?

Application: I'm trying to simulate a simple audio FSK system in Simulink.

MBaz
  • 15,314
  • 9
  • 30
  • 44
bradreaves
  • 125
  • 4
  • To clarify, I've tried to apply the "Analytic Signal" block to the time-domain representation, but that gives erroneous results (even after taking into account the delay of the Analytic Signal block). – bradreaves Sep 27 '15 at 22:08
  • do you want the envelope of the complex analytic signal? because that envelope is real and non-negative. in fact, i don't know of any "envelope" that is complex or negative in value. – robert bristow-johnson Sep 28 '15 at 00:36
  • I'm using Matlab's definition of "complex envelope" as described here: http://www.mathworks.com/help/comm/ug/digital-modulation.html#fp46613 Specifically I'm talking about the vector Y. I could have some of the terminology confused, though. – bradreaves Sep 28 '15 at 13:38
  • @robertbristow-johnson, in the context of digital communicaitons (such as FSK in the question), complex envelope refers to this: https://en.wikipedia.org/wiki/Analytic_signal#Complex_envelope.2Fbaseband – MBaz Sep 28 '15 at 13:49
  • so it's the complex analytic signal bumped down by some specified frequency, $\omega_0$. i might call that "IF". – robert bristow-johnson Sep 28 '15 at 23:35

1 Answers1

2

These are the main ideas:

  1. Consider a receiver that picks up a signal $r(t)$. This signal has bandwidth $W$ and is centered on carrier frequency $f_c$.
  2. Using the Hilbert transform, eliminate the negative frequencies of $r(t)$. The resulting signal, $r_+(t)$, is called an analytic signal.
  3. Now, downconvert the analytic signal using a complex exponential, so that the spectrum is centered around 0. This signal, called $\tilde r(t)$, is the complex envelope of $r(t)$. Its spectrum goes from $-W/2$ to $W/2$, and its bandwidth is $B=W/2$.
  4. The complex envelope is almost always complex, but if the spectrum of $r(t)$ is symmetrical around $f_c$, the CE is real. Examples of this are AM DSB and BPSK.

In the transmitter you would do the opposite:

  1. Start with a complex envelope $\tilde s(t)$ that represents the information you want to transmit. Its spectrum should go from $-W/2$ to $W/2$. An example would be a QAM signal with complex symbols.
  2. Upconvert the CE to frequency $f_c$, multiplying by a complex exponential. The result is an analytic signal with only positive frequencies. The signal will be centered around $f_c$ and cover the frequency range from $f_c-W/2$ to $f_c+W/2$.
  3. Take the real part of the analytic signal to convert it to a real signal that can be physically generated and transmitted.

All of these steps can be accomplished in Matlab. Be sure to read the documentation for the hilbert command. I can't comment on the corresponding Simulink blocks, since I don't use them.

Also note that it is very likely that you don't have to do all this. If you can perform all your simulations using the complex envelope, you'll save a lot of computing time. The reason is that the transmitted and received signals need to be sampled at least at a rate $2(f_c+W/2)$, whereas the complex envelope can be sampled at $W$ real samples per second -- a huge difference for large $f_c$.

MBaz
  • 15,314
  • 9
  • 30
  • 44
  • It seems that my problem was that I wasn't actually moving the data up to passband before taking the real part. If I understand correctly, if you skip that step you are losing information that's in the negative frequency in the baseband. – bradreaves Sep 30 '15 at 13:03
  • 1
    @bradreaves, yes, that is correct. Taking the real part of the baseband signal loses information. – MBaz Sep 30 '15 at 13:20