[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Discuss-gnuradio] bug in wfm_rcv_pll and fix, who has stereo FM s
Re: [Discuss-gnuradio] bug in wfm_rcv_pll and fix, who has stereo FM specs/info and noise and gain issues
Tue, 19 Jun 2007 22:04:19 -0700
Thunderbird 220.127.116.11 (X11/20070326)
Martin Dvh wrote:
> I found a nasty bug in the wfm_rcv_pll.py code.
> The pilot tone pll should return the recovered carrier,
> For this you should use gr.pll_refout_cc, not gr.pll_carriertracking_cc.
> pll_carriertracking returns the input transformed to baseband using the
> recovered carrier.
> pll_refout returns the recovered carrier.
Great catch, Martin.
> With the fixed code I now actually get stereo.
> (Before you would get a kind of attenuated, distorted, spectrum inverted
Can you check it in?
> I tested it with a stereo-coder I wrote in gnuradio, and now I seem to
> actually get stereo seperation.
> (stereo modulater is attached)
> But now I do get a lot of noise when decoding stereo.
> I also don't quite understand why double side band suppressed carrier
> Left-Right audio is attenuated and needs a factor 20 for gain.
> (It seems to be correct or at least close)
I would try this with the regular (non-PLL) FM demod. I think the
rolloff of the PLL tracking loop is what is giving you the lower gain.
> The code comments say 10 dB
> The actual code uses a factor 20 which corresponds to 20 *log10(20)= 26 dB.
> This 26 dB seems to be quite accurate, but where is this number based on?
> can you give me a link to more info or the stereo FM specs on this.
> # Pick off the double side band suppressed carrier Left-Right
> audio. It is attenuated 10 dB so apply 10 dB gain
> stereo_dsbsc_filter_coeffs = gr.firdes.complex_band_pass(20.0,
> fix for wrong pll is below:
> --- gnuradio-core/src/python/gnuradio/blksimpl/wfm_rcv_pll.py 2007-06-11
> 18:12:55.000000000 +0200
> +++ gnuradio-core/src/python/gnuradio/blksimpl/wfm_rcv_pll_fixed.py
> 2007-06-17 08:07:43.000000000 +0200
> @@ -131,8 +131,8 @@
> max_freq = -2.0*math.pi*18990/audio_rate;
> min_freq = -2.0*math.pi*19010/audio_rate;
> - self.stereo_carrier_pll_recovery =
> - self.stereo_carrier_pll_recovery.squelch_enable(False);
> + self.stereo_carrier_pll_recovery =
> + #self.stereo_carrier_pll_recovery.squelch_enable(False)
> #pll_refout does not have squelch yet, so disabled for now
> # set up mixer (multiplier) to get the L-R signal at baseband
> Discuss-gnuradio mailing list