I would like to transmit a 56 MHz real cosine and receive it using SDR with max complex sample rate equals 61.44MSPS and an analog filter with BW = 56MHz (the transceiver is AD9361). Can I do it? How should I generate its samples? (I think I can't since the RF BW is 112 MHz (full BW) around the center frequency, but am I wrong?)

Are these Tx chain and Rx chains the correct way to implement this transmission?

TX enter image description here


enter image description here

  • $\begingroup$ Adding to all of Marcus' sound advice: I suggest reading about the "complex envelope". $\endgroup$ – MBaz Jul 9 at 14:02

Are these Tx chain and Rx chains the correct way to implement this transmission?

No. When you want to transmit a real cosine in passband, then you need a single complex tone in baseband. Not a real one. Otherwise, you'll have two real tones on the air, one at the mixing frequency + cosine frequency, and one at the mixing frequency - cosine frequency.

But maybe, you wanted that, I'm not sure from your description. However, the fact that you're calling things "chirp" makes this unlikely.

Then, a real-valued sampled signal at a sampling rate of 60 MHz can't represent 56 MHz. The highest frequency it can represent is less than 30 MHz. Nyquist (The Nyquist-Shannon sampling theorem, to be exact)!

Also, you can't throw away the imaginary part in your receiver: you have no knowledge of your phase. So, you're unsynchronized in phase, and then you can't assume that the real signal you've sent is received as real signal. Especially if this, as I might guess, is about channel estimation or radar, you can't make that assumption.

So, I'm sorry but: you really need to refresh your education on sampling theory, and on what equivalent complex baseband and bandpass signals are, first!

I think I can't since the RF BW is 112 MHz (full BW) around the center frequency, but am I wrong?

Yes, the bandwidth is 56 MHz, not twice that.

Also, delete the file sink on the transmitter site: that signal you're transmitting is deterministic, and it's easier to just recreate it than read it from a file; in fact, that file sink hurts a lot, since you need to generate samples at a pretty high rate under hard real-time constraints. You're trying to write 60 MS/s · 32 bit/S = 1.92 Gb/s to a storage device; that takes computational power and bus bandwidth away from your PC, and acts as an artificial slow down.

I've seen few SSDs that can sustain that rate for a significant amount of time under these constraints.

On the RX side, as said, you need to be complex, so you need to write 60 MS/s · 2·32 bit/S = 2·1.92 Gb/s = 3.84 Gb/s to a storage device; that really is challenging. You might want to start with Vector sink first, which stores the samples in RAM, and use the "reserve memory" parameter of that to preallocate RAM for these samples; use a head block to cut off after you've collected enough samples and read the contents of the vector sink in Python. (That "reserve memory option" might only available in recent versions of GNU Radio – you're using an outdated one)

| improve this answer | |
  • $\begingroup$ OK, I know I can't sample the 56MHz cosine with 60MSPS. But how can actually transmit a complex tone? I mean, I can generate it using a file source, but only real samples will be transmitted(cos+sin without j multipling the sin) ... how do I use complex/quadrature sampling for the tx side? If I transmit a 56MHz complex tone, can I sample it with 60MHz complex sampling and transmit? I am confused... $\endgroup$ – ronyk Jul 9 at 9:40
  • $\begingroup$ You had to manually set the signal source from complex to float. Don't. Done. $\endgroup$ – Marcus Müller Jul 9 at 9:42
  • $\begingroup$ again, you'll need to read up on complex baseband, complex samples, and baseband-passband equivalence if you want to clear up this confusion. But that really seems to be the core of your assignment – there's no shortcut for you to get that knowledge. $\endgroup$ – Marcus Müller Jul 9 at 9:43
  • $\begingroup$ So just to conclude, the sdr will transmit cos(wct)*cos(wbt) + sin(wct)*sin(wbt) = cos((wc-wb)*t) and therefore I will have only one tone on air? again, the sampling rate can be 60Msps for 56MHz Tx tone since the sampling is complex? (wb is base band freq and wc is rf center freq) $\endgroup$ – ronyk Jul 9 at 9:59
  • $\begingroup$ first question: yes, second question: no. Again, complex signals is a theory that you'll need. $\endgroup$ – Marcus Müller Jul 9 at 10:08

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.