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?


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 '19 at 10:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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