pll bandwidth optimized to more nearly meet Carson's rule. The 19 kHz pilot recovery...
authorn4hy <n4hy@221aa14e-8319-0410-a670-987f0aec2ac5>
Wed, 1 Oct 2008 20:42:43 +0000 (20:42 +0000)
committern4hy <n4hy@221aa14e-8319-0410-a670-987f0aec2ac5>
Wed, 1 Oct 2008 20:42:43 +0000 (20:42 +0000)
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@9694 221aa14e-8319-0410-a670-987f0aec2ac5

gnuradio-core/src/python/gnuradio/blks2impl/wfm_rcv_pll.py
gnuradio-examples/python/usrp/usrp_wfm_rcv_pll.py

index e49544c8ec32d1136d03710d0ec139151991e99f..bc68a9f3f7dbc14f09f470f2be31d71d76eb66e6 100644 (file)
@@ -39,7 +39,7 @@ class wfm_rcv_pll(gr.hier_block2):
        gr.hier_block2.__init__(self, "wfm_rcv_pll",
                                gr.io_signature(1, 1, gr.sizeof_gr_complex), # Input signature
                                gr.io_signature(1, 2, gr.sizeof_float))      # Output signature
-        bandwidth = 180e3
+        bandwidth = 250e3
         audio_rate = demod_rate / audio_decimation
 
 
@@ -49,7 +49,7 @@ class wfm_rcv_pll(gr.hier_block2):
         # input: complex; output: float
         alpha = 0.25*bandwidth * math.pi / demod_rate
         beta = alpha * alpha / 4.0
-        max_freq = 2.0*math.pi*100e3/demod_rate
+        max_freq = 2.0*math.pi*90e3/demod_rate
             
         self.fm_demod = gr.pll_freqdet_cf (alpha,beta,max_freq,-max_freq)
 
index 80f2b846604d80f59efe2b5b75a8e3e74b89bb52..84992955a20f79eddfa209b805222afe89775c83 100755 (executable)
@@ -81,13 +81,13 @@ class wfm_rx_block (stdgui2.std_top_block):
         self.u = usrp.source_c()                    # usrp is data source
 
         adc_rate = self.u.adc_rate()                # 64 MS/s
-        usrp_decim = 160
+        usrp_decim = 200
         self.u.set_decim_rate(usrp_decim)
-        usrp_rate = adc_rate / usrp_decim           #  400 kS/s
+        usrp_rate = adc_rate / usrp_decim           #  320 kS/s
         chanfilt_decim = 1
         demod_rate = usrp_rate / chanfilt_decim
         audio_decimation = 10
-        audio_rate = 6*demod_rate / audio_decimation/5  # 48 kHz
+        audio_rate = 3*demod_rate / audio_decimation/2  # 48 kHz
 
         if options.rx_subdev_spec is None:
             options.rx_subdev_spec = pick_subdevice(self.u)
@@ -100,12 +100,13 @@ class wfm_rx_block (stdgui2.std_top_block):
                                             usrp_rate,   # sampling rate
                                             90e3,        # passband cutoff
                                             30e3,        # transition bandwidth
-                                            60)          # stopband attenuation
-#        print len(chan_filt_coeffs)
+                                            70,          # stopband attenuation
+                                            gr.firdes.WIN_BLACKMAN)
+        print len(chan_filt_coeffs)
         chan_filt = gr.fir_filter_ccf (chanfilt_decim, chan_filt_coeffs)
 
-        self.rchan_sample = blks2.rational_resampler_fff(6,5)
-        self.lchan_sample = blks2.rational_resampler_fff(6,5)
+        self.rchan_sample = blks2.rational_resampler_fff(3,2)
+        self.lchan_sample = blks2.rational_resampler_fff(3,2)
 
 
         #self.guts = blks2.wfm_rcv (demod_rate, audio_decimation)