From 5bfda44b8d4093c81779c05c98f3bbd310f198df Mon Sep 17 00:00:00 2001 From: n4hy Date: Wed, 1 Oct 2008 20:42:43 +0000 Subject: [PATCH] pll bandwidth optimized to more nearly meet Carson's rule. The 19 kHz pilot recovery will soon be replace by polyphase channelizer trick git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@9694 221aa14e-8319-0410-a670-987f0aec2ac5 --- .../src/python/gnuradio/blks2impl/wfm_rcv_pll.py | 4 ++-- gnuradio-examples/python/usrp/usrp_wfm_rcv_pll.py | 15 ++++++++------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/gnuradio-core/src/python/gnuradio/blks2impl/wfm_rcv_pll.py b/gnuradio-core/src/python/gnuradio/blks2impl/wfm_rcv_pll.py index e49544c8..bc68a9f3 100644 --- a/gnuradio-core/src/python/gnuradio/blks2impl/wfm_rcv_pll.py +++ b/gnuradio-core/src/python/gnuradio/blks2impl/wfm_rcv_pll.py @@ -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) diff --git a/gnuradio-examples/python/usrp/usrp_wfm_rcv_pll.py b/gnuradio-examples/python/usrp/usrp_wfm_rcv_pll.py index 80f2b846..84992955 100755 --- a/gnuradio-examples/python/usrp/usrp_wfm_rcv_pll.py +++ b/gnuradio-examples/python/usrp/usrp_wfm_rcv_pll.py @@ -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) -- 2.30.2