Hi, I’m actually trying to do some MIMO transmitting but I’m having some issues. I hope someone can help me resolve my potential misunderstanding with this. Here is a summary of the background and problem:
- I’m using GNU Radio for this effort
- I want to transmit two signals at once (within the 61.44 MHz bandwidth)
- I can successfully transmit a wav file using FM modulation via TX1_1 which is good
- I tried transmitting two signals using NCO but it wasn’t working as I expected (I got mirroring and I wasn’t receiving the second signal).
- I decided to take a step back to figure out what is going wrong…
- Next I tried to simply transmit the wav file using FM modulation via TX2_1, like I did before with TX1_1, this doesn’t work!
Before I can progress to transmitting two signals at once, I need to be able to transmit one on TX2_1. As stated, I’m using GNU Radio to do this, please see the attached Python file for what I’m trying to do (generated via the Lime example). When I run this set to channel A (0) it works but in its current state, it doesn’t transmit (I have antennas attached to TX1_1 and TX2_1). I’m referencing sink.h. Am I missing something? Please note I have two LimeSDR USBs and they are both exhibiting the same behavior so I don’t believe it is a hardware issue.
I also have another question to help clarify my understanding. The Lime GNU Radio block allows you to specify an ini file, is this needed for things to work properly on a different channel? Everything has been working well when I transmit over TX1_1 without specifying one but this problem got me thinking maybe I need to create one in LimeSuite and specify it (I hope not).
Thanks for any assistance!
John
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
##################################################
# GNU Radio Python Flow Graph
# Title: FM transmitter
# Author: Lime Microsystems
# Generated: Thu Sep 19 13:49:09 2019
##################################################
from gnuradio import analog
from gnuradio import blocks
from gnuradio import eng_notation
from gnuradio import filter
from gnuradio import gr
from gnuradio.eng_option import eng_option
from gnuradio.filter import firdes
from optparse import OptionParser
import limesdr
class top_block(gr.top_block):
def __init__(self):
gr.top_block.__init__(self, "FM transmitter")
##################################################
# Blocks
##################################################
self.rational_resampler_xxx_0 = filter.rational_resampler_ccf(
interpolation=25,
decimation=6,
taps=None,
fractional_bw=None,
)
self.limesdr_sink_0 = limesdr.sink('', 0, '', '')
self.limesdr_sink_0.set_sample_rate(2e6)
self.limesdr_sink_0.set_center_freq(100.0e6, 0)
self.limesdr_sink_0.set_bandwidth(5e6,1)
self.limesdr_sink_0.set_digital_filter(100e3,1)
self.limesdr_sink_0.set_gain(20,1)
self.limesdr_sink_0.set_antenna(1,1)
self.blocks_wavfile_source_0_0 = blocks.wavfile_source('./guitar.wav', False)
self.analog_nbfm_tx_0_0 = analog.nbfm_tx(
audio_rate=48000,
quad_rate=480000,
tau=75e-6,
max_dev=2e3,
fh=-1.0,
)
##################################################
# Connections
##################################################
self.connect((self.analog_nbfm_tx_0_0, 0), (self.rational_resampler_xxx_0, 0))
self.connect((self.blocks_wavfile_source_0_0, 0), (self.analog_nbfm_tx_0_0, 0))
self.connect((self.rational_resampler_xxx_0, 0), (self.limesdr_sink_0, 0))
def main(top_block_cls=top_block, options=None):
tb = top_block_cls()
tb.start()
tb.wait()
if __name__ == '__main__':
main()