Hello Again,
I am starting to play with the GNU Radio code some and wanted to start
by
capturing audio from a handheld radio (FRS fm modulation). I am having
some
problems and can’t seem to figure out why it is not working.
- receiving. Why does the usrp nfm sample programs not work for FRS
well?
I type…
python ./usrrp_nbfm_rcv.py -f462.5625
When I key the radio, I see the large spike at the carrier frequency
(+80db). But after demod, the max amplitude is -80 to -60 db. If I
turn my
volume way up, I can hear the audio, but barely.
- transmitting. I also tried modulating a single sine wave tone and
transmitting it so that I can hear it on the radio. For some reason my
tune
function returns a false. Does this mean it did not tune to the correct
frequency? What could be causing that? My code is below if it helps.
Thanks!
Kevin Rudd
#!/usr/bin/env python
from gnuradio import gr, eng_notation
from gnuradio import usrp
from gnuradio import audio
from gnuradio import blks
from gnuradio.eng_option import eng_option
import usrp_dbid
import sys
class my_graph(gr.flow_graph):
def init(self):
gr.flow_graph.init (self)
self.u = usrp.sink_c () # the USRP sink (consumes
samples)
self.dac_rate = self.u.dac_rate() # 128
MS/s
self.usrp_interp = 400
self.u.set_interp_rate(self.usrp_interp)
self.usrp_rate = self.dac_rate / self.usrp_interp # 320
kS/s
self.sw_interp = 10
self.audio_rate = self.usrp_rate / self.sw_interp # 32
kS/s
# determine the daughterboard subdevice we're using
tx_subdev_spec = usrp.pick_tx_subdevice(self.u)
m = usrp.determine_tx_mux_value(self.u, tx_subdev_spec)
self.u.set_mux(m)
self.subdev = usrp.selected_subdev(self.u, tx_subdev_spec)
print "Using TX d'board %s" % (self.subdev.side_and_name(),)
m = usrp.determine_tx_mux_value(self.u, tx_subdev_spec)
self.subdev.set_gain(self.subdev.gain_range()[1]) # set
max Tx gain
ttarget_freq = 462562500
#self.set_freq(ttarget_freq)
r = self.u.tune(self.subdev._which, self.subdev,
ttarget_freq)
print r # this prints false!
self.subdev.set_enable(True) #
enable transmitter
src0 = gr.sig_source_f (self.audio_rate, gr.GR_SIN_WAVE,
350, 1)
fmtx = blks.nbfm_tx (self, self.audio_rate,
self.usrp_rate,
max_dev=5e3, tau=75e-6)
gain = gr.multiply_const_cc (4.0) # not sure about this
self.connect (src0, fmtx)
self.connect (fmtx, gain)
self.connect (gain, self.u)
if name == ‘main’:
try:
my_graph().run()
except KeyboardInterrupt:
pass