Can anyone help me with the demodulation technique of a modulated signal? I mixed it with I/Q signal. But I am very confused about low-pass filtering. I am trying to apply a low-pass filter, but I am not getting the baseband signal. What kind of filter can I use to get demodulated baseband signal?

My carrier frequency is $f_c=1 \ \mathrm{GHz}$ and my sampling frequency is $f_s=10 \ \mathrm{GHz}$.


2 Answers 2


You did not specify the bandwidth of your modulated signal, but for discussion let us assume it is 50 MHz. (Meaning all the signal of interest is in 50 MHz centered at your carrier at 1 GHz).

You may be downconverting to a lower frequency IF or doing a direct conversion to baseband in which case you will need to do quadrature downconversion to not have image issues. I will assume this is what you are doing which means you will be multiplying your real signal at 1 GHz with a sine and cosine using a local oscillator at 1 GHz (all digitally since you are in a sampled system, so an NCO). After you downconvert with this multiplication each I and Q will have your signal of interest at baseband plus an image at 2GHz (the sum of the two frequencies at the multiplier inputs and this is what you want to filter. ("I" representing the real component of your complex baseband signal, and Q representing the imaginary component of your baseband signal). You need to eliminate the image at 2 GHz, but given your signal is only 50 MHz wide (+/-25 MHz at baseband), you would ultimately filter down to that bandwidth to eliminate interference and reduce noise, but to "see" your signal you could simply use a moving average to implement a very simple low pass filter given this significant separation between your baseband signal and the image. A moving average filter would for a Sinc function in frequency with its first null at 1/T where T is the length of your average in time. So for example, if you wanted to place the first null at 500 MHz, you would average over 20 samples:

$T=\frac{1}{500e6}= 2$ ns. With a sampling rate of 10GHz, this is equivalent to 20 samples. What is convenient about this choice is that it will also have a null directly at 2 GHz which is the image you are trying to filter out! So simply performing a moving average over 20 samples at the output of your mixer will significantly supress your image. See the frequency response below where 1 on the frequency axis is half your sampling rate or 5 GHz. In the example I gave with 50 MHz BW, the passband droop is negligible and the image supression (at .4 of the plot) would likely exceed 30 dB (I am eyeballing that) over your BW. Point is that is it a quick filter to confirm your downconversion without having to get into an explanation on more detailed filter designs (which you would ultimately likely want).

enter image description here

Here are more details on the down-conversion process in case it helps: To demodulate this signal directly to baseband, you would multiply it by $e^{-j\pi f t}$ where f = 1 GHz. This is implemented with a sine and cosine at 1 GHz, and for best noise performance if you were concerned with that, you would do a full complex down-conversion as : $$(I_1+jQ_1)(I_2-jQ_2) = (I_1I_2+Q_1Q_2)+j(I_2Q_1-I_1Q_2)$$ Where

$(I_1+jQ_1)$ represents your modulated signal at 1GHz and

$(I_2+jQ_2)$ is your local oscillator for performing the down-conversion.

Since your 1 GHz signal is likely a real signal, to implement the lowest noise approach I suggest, you would need to split in quadrature before sampling, or alternatively implement the Hilbert transform digitally. This also would not require a filter (although recommended of course to eliminate noise and interference out of band) as this is a full complex multiplier and therefore provides image rejection. Otherwise if you are ok with the 3 dB noise penalty and can filter out the image, $(I_1+jQ_1)$ would be real so $Q_1 = 0$, and the downconversion simplifies to


Once you do that multiplication, you should see your signal of interest centered on baseband as $$I_{out} + jQ_{out}$$

Where $$I_{out} = I_1I_2$$ and $$Q_{out} = -I_1Q_2$$

Describing the I output ($I_{out}$) (Q would be similar) to see the image that would need to be filtered:

$I_1= cos(\omega_ct+\phi)$ where $\omega_c$ is the carrier frequency of the received signal with some arbitrary phase offset $\phi$ .

$I_2 = cos(\omega_ct)$ is the local oscillator I signal, tuned to the carrier frequency.

Using the cosine product relationship: $2cos(\alpha)cos(\beta)= cos(\alpha-\beta)+cos(\alpha+\beta)$

$I_{out}= I_1I_2 = cos(\omega_ct+\phi)cos(\omega_ct)= \frac{1}{2}(cos(\phi)+cos(2\omega_ct+\phi))$

Showing the high frequency component to be filtered out (in your case 2 GHz) and the signal at baseband with the phase offset as received.

Following the same process for Q results in

$Q_{out} = -I_1Q_2 = \frac{1}{2}(sin(\phi)+ sin(2\omega+\phi))$

  • $\begingroup$ Thanks for the details description. I think, I have a Bandwidth of 40 MHz which is close to your assumption. I did the mixing, but I was not able to find the correctly designed filter. After mixing, I got image at 2 GHz at I. I also got response at 4 MHz in the frequency response of I. So, 2 GHz is the sum of the two frequencies that I am looking for? I have few questions: Why I should take first null at 500 MHz? Is it for my case? or it is an example? Will I get baseband signal by using Moving average with 20 samples? And, I don't have noise in my signal. Please let me know. $\endgroup$ Commented Mar 1, 2017 at 2:27
  • $\begingroup$ I just chose a simple point that would be a submultiple of your 2 GHz image to reject, since it will have nulls at 500MHz, 1 GHz. 1.5GHz. 2 GHz etc. but not placed so low (for example 100 MHz would also have a null at 2GHz) so as to start to distort your signal of interest. Know that this is NOT the best low pass filter to use but one you can implement quickly (point is a moving average is a low pass filter), and be able to see the baseband signal you are looking for. After that you can try better actual filter designs. $\endgroup$ Commented Mar 1, 2017 at 2:33
  • $\begingroup$ So yes just go ahead and do the 20 point moving average and you should absolutely have a baseband signal if the carrier was at 1 GHz and you are doing and I and Q downconversion as I described. $\endgroup$ Commented Mar 1, 2017 at 2:34
  • $\begingroup$ To get the difference from I and Q, how can I edit your designed low pass-filter? For my project, I need difference not the sum. $\endgroup$ Commented Mar 1, 2017 at 2:41
  • $\begingroup$ Why do you think you need the difference? Your baseband signal is a complex signal that is I+jQ, you can't combine them by adding or subtracting them together--- the result of that will no longer be your signal that was at 1GHz. What exactly are you trying to do to make you think you needed to subtract? $\endgroup$ Commented Mar 1, 2017 at 2:44

For direct conversion to baseband, one flow would be to first multiply your strictly real 10 GHz sample stream with a 1 GHz cosine wave, sampled at 10 GHz, and then also by a 1 GHz sine wave (90 degrees different from the cosine wave), also sampled at 10 GHz. This will result in two 10 GHz sample streams, call them I and Q. Separately filter the I and Q steams to below some bandwidth, and then optionally decimate to a lower sample rate of at least twice that bandwidth frequency, resulting in a complex IQ baseband signal.

Any kind of low-pass filter with the appropriate bandwidth and cut-off should work, but fast convolution (FFT/IFFT overlap add/save) with a suitable length FIR filter is one common method. A series of multiple biquads might be another, if you know where all the IIR's poles and zeros should go.

Demodulating that baseband IQ signal varies with and thus requires knowing the type of modulation.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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