[patch] usrp_wfm_rcv_nogui.py with pll-tuner

Hello!

I’ve extended the FM-receiver with an option to use the pll tuner.

Without pll my PIII 350Mhz decoded FM mono quite fine, with pll it’s
heavily stuttering.

Patrick

Index: usrp_wfm_rcv_nogui.py

RCS file:
/sources/gnuradio/gnuradio-examples/python/usrp/usrp_wfm_rcv_nogui.py,v
retrieving revision 1.9
diff -u -r1.9 usrp_wfm_rcv_nogui.py
— usrp_wfm_rcv_nogui.py 31 Mar 2006 18:33:05 -0000 1.9
+++ usrp_wfm_rcv_nogui.py 23 May 2006 11:08:38 -0000
@@ -34,6 +34,8 @@
help=“set frequency to FREQ”,
metavar=“FREQ”)
parser.add_option("-g", “–gain”, type=“eng_float”,
default=None,
help=“set gain in dB (default is midpoint)”)

  •    parser.add_option("-p", "--pll", action="store_true",
    

default=False,

  •                      help="use the PLL stereo decoder")
        parser.add_option("-O", "--audio-output", type="string",
    

default="",
help=“pcm device name. E.g., hw:0,0 or
surround51 or /dev/dsp”)

@@ -77,9 +79,14 @@
#print len(chan_filt_coeffs)
chan_filt = gr.fir_filter_ccf (chanfilt_decim,
chan_filt_coeffs)

  •    self.guts = blks.wfm_rcv (self, demod_rate, audio_decimation)
    
  •    if options.pll:
    
  •        self.guts = blks.wfm_rcv_pll (self, demod_rate,
    

audio_decimation)

  •    else:
    
  •        self.guts = blks.wfm_rcv (self, demod_rate, 
    

audio_decimation)
+
self.volume_control = gr.multiply_const_ff(self.vol)

  •    self.volume_control_l = gr.multiply_const_ff(self.vol)
    
  •    self.volume_control_r = gr.multiply_const_ff(self.vol)
    
        # sound card as final sink
        audio_sink = audio.sink(int(audio_rate),
    

@@ -87,9 +94,13 @@
False) # ok_to_block

      # now wire it all together
  •    self.connect (self.u, chan_filt, self.guts,
    

self.volume_control, audio_sink)

  •    self.connect (self.u, chan_filt, self.guts)
    
  •    if options.pll:
    
  •        self.connect ((self.guts, 0), self.volume_control_l,
    

(audio_sink,0))

  •        self.connect ((self.guts, 1), self.volume_control_r,
    

(audio_sink,1))

  •    else:
    
  •        self.connect (self.guts, self.volume_control, audio_sink)
    
  •     if options.gain is None:
            # if no gain was specified, use the mid-point in dB
            g = self.subdev.gain_range()
    

@@ -108,6 +119,8 @@
def set_vol (self, vol):
self.vol = vol
self.volume_control.set_k(self.vol)

  •    self.volume_control_l.set_k(self.vol)
    
  •    self.volume_control_r.set_k(self.vol)
        self.update_status_bar ()
    
    def set_freq(self, target_freq):
    


Engineers motto: cheap, good, fast: choose any two
Patrick S.
Student of Telematik, Techn. University Graz, Austria