How to change baseband signal to I/Q component?


I want to broadcast base-band signal through LimeSDR and GNURadio. The base-band signal is a repeated version of pseudo-random (PRN) code signal, the PRN code frequency is 1.023MHz and the code length is 1023.

The input of LimeSDR sink should be complex signals including I and Q components. But I don’t know how to change the PRN signal (baseband signal) into I/Q component. Could anyone please give me some instructions?

Thanks a lot and hope for your reply.

Zhibin Luo.

The Hilbert transform will convert a real series into a complex series - if that is what you need (liquidsdr - firhilb_example.c). If you want to use the gnuradio routines, you will have to use the existing routines or code in python or write an OutOfTree Module.

You need some form of modulation. As the previous response stated, one way would be to take the signal through a Hilbert transform and use that as the Q. That is implementing an AM Single Sideband Suppressed Carrier modulation.
You could also use an FM modulation, OFDM, PSK, QAM, or various other modulation schemes depending upon what you are trying to do.
You could even just feed the signal in as the I part, leaving Q at 0, and implement a suppressed carrier double sideband AM.

What are you actually trying to do? What is the problem you are trying to solve, or the goal you are trying to achieve? The answers to those questions will help decide what modulation to use.

Thanks for you reply.

I want to study the radio altimeter algorithms in real RF environment. So I must transmit the designed DSSS wavefrom and collected the echo waveform.

It seems like that the DSSS modulation is similar with BPSK. So I just set the I branch to the sampled PRN code , and the Q branch to zero. It works well. When I transmitted the I/Q signal and collected the echo waveform with LimeSDR and GNURadio, I can detected the reflected version of transmiting signal in the received I/Q signal.

Here I put a picture so you can see clearly. (The pluto-SDR should be replaced by LimeSDR)


@luozhibin Please don’t post multiple copies of the same response. This isn’t helpful and just clutters up the forums, so I’ve just deleted two duplicates.

Thanks for your reminding. It is a misoperation and I will never do that again. :sweat_smile: :sweat_smile: :sweat_smile: