I have a 192kHz IQ signal from an RF receiver, and i'm trying to remove signals in the negative (or positive) frequency spectrum.

I see that the negative frequency signals are -90 degrees phase shifted from I, where positive frequencies have the usual +90 degrees shift I vs Q.

Here's the problem:

If i set the center frequency to f, and i have two signals, one at f+1000, one at f-1000, they would both be audible on the same frequency, if i mix the whole thing into audio, either interfering with each other, or cancelling each other out.

I'm missing the step where i can decide whether i want to hear anything below or above center.

How is this usually being filtered?

  • $\begingroup$ Is 192kHz the Sampling Frequency or the carrier? What is the carrier and the modulation scheme? $\endgroup$
    – A_A
    Jan 11, 2018 at 10:12
  • $\begingroup$ 192kHz is the sampling rate for the I/Q signal coming from the receiver. $\endgroup$
    – WhiteN01se
    Jan 11, 2018 at 13:44
  • $\begingroup$ Forgot: The modulation is simple AM (actually Morse). $\endgroup$
    – WhiteN01se
    Jan 11, 2018 at 18:03

1 Answer 1


I managed to do this now by having a 3 step process after converting the I/Q data to complex numbers. This is far from me understanding what i'm doing, but it's eliminating negative frequencies.

  1. I shift the the frequencies by multiplying each i/q sample with the complex output of an oscillator at frequency PI/2. The oscillator outputs a complex number with Real being sin(pi*0.5*t), and Imaginary being cos() of the same values. Then I multiply that complex number with each sample (t advances +1 with each sample).

  2. Next step is to high-pass filter at a quarter sample rate. So if our sample rate is 192000, my high pass cutoff is at 48000.

  3. Lastly, we shift the whole thing back by doing the same multiplication as in 1), except with PI*1.5.

The result is I/Q data that's got everything in the negative spectrum filtered out.

I read about Hilbert transforms etc etc, but got lost halfway through that. Maybe someone has an explanation of what i did or why this works? :)

  • $\begingroup$ That is the filter method of SSB, basically you are creating an IF at Fs/4 then filtering away the lower sideband before mixing back down. It is worth noting that specifically at Fs/4 sine turns into the sequence 0,1,0,-1,... and cos becomes 1,0,-1,0,... which can save some computation and a few multiplies. $\endgroup$
    – Dan Mills
    Jan 15, 2018 at 15:13

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.