In theory when i need to shift some frequency i just multiply that signal by some sin or cos wave with the right frequency and than apply LPF or HPF.

But when there is a wideband complex signal with the central frequency on for example 500MHz, bandwidth 3 MHz and 6Msps sample rate, i captured using SDR, how can i shift any harmonic inside of this band to much lower frequency like 50MHz i.e. far outside of the bandwidth?


1 Answer 1


If your signal was at 500 MHz, and you successfully captured it with a 6 Msps sample rate, the signal is no longer "at" 500 MHz. Indeed it was transmitted there, but either:

  • your receiver has an analog mixer, and mixed this signal down to baseband such that it could be sampled at 6 Msps, or
  • the digital signal was originally sampled at a much higher rate, but has since been mixed to a lower frequency and decimated to a lower sample rate.

A 6 Msps complex-valued stream can represent frequencies from -3 MHz to +3 MHz. At this sample rate it is impossible to represent 500 MHz due to the Nyquist-Shannon sampling theorem.

As such, I suspect you will find that what was 500 MHz (the center frequency of your receiver at time of capture) is represented in the data as 0 Hz.

If you want to shift this around your certainly can, simply multiply it by a complex sinusoid: this will have the effect of "rotating" the frequency spectrum. Unlike multiplying a real-valued signal with a real-valued sinusoid (as done in many analog mixers) this does not generate two sidebands, so no additional filtering is required.

  • $\begingroup$ Thank you for your answer! $\endgroup$
    – mishaskt
    Dec 5, 2019 at 10:22

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .