summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorn4hy <n4hy@221aa14e-8319-0410-a670-987f0aec2ac5>2008-10-01 20:42:43 +0000
committern4hy <n4hy@221aa14e-8319-0410-a670-987f0aec2ac5>2008-10-01 20:42:43 +0000
commit5bfda44b8d4093c81779c05c98f3bbd310f198df (patch)
tree0f32d55fa026e9d26aad1210afa5117f5237d141
parentd9b0663b0170c7f5958df900ce68f15ea2b0434f (diff)
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
-rw-r--r--gnuradio-core/src/python/gnuradio/blks2impl/wfm_rcv_pll.py4
-rwxr-xr-xgnuradio-examples/python/usrp/usrp_wfm_rcv_pll.py15
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 e49544c8ec..bc68a9f3f7 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 80f2b84660..84992955a2 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)