discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] FIR filter , Clock recovery and Quadrature demodu


From: Martin DvH
Subject: Re: [Discuss-gnuradio] FIR filter , Clock recovery and Quadrature demodulation
Date: Mon, 27 Apr 2009 23:20:30 +0200

On Sun, 2009-04-26 at 22:30 +0500, M. Awais Arshad wrote:
> Hi,
>        
>      The following are some code segments of gsm-scan.py basically
> used for gsm data reception. I have a few questions about the
> difference between input_rate and sps,
> 
> 
>      
> clock_rate = 64e6 
>  #set the default input rate, we will check with the USRP if it is
> being used
> input_rate = clock_rate / options.decim
> gsm_symb_rate = 1625000.0 / 6.0
> sps = input_rate/gsm_symb_rate
> 
> 
> 
> # configure the processing blocks
> # configure channel filter
> filter_cutoff = 145e3 #135,417Hz is GSM bandwidth 
> filter_t_width = 10e3
> 
> #Only DSP adjust for offset on datafile, adjust tuner for USRP
> #TODO: see if we can change this offset at runtime based on freq
> detection
> if options.inputfile:
> offset = self.offset
> else:
> offset = 0.0
> 
> filter_taps = gr.firdes.low_pass(1.0, input_rate, filter_cutoff,
> filter_t_width, gr.firdes.WIN_HAMMING)
> self.filter = gr.freq_xlating_fir_filter_ccf(1, filter_taps, offset,
> input_rate)
> 
>                # configure demodulator
> # adjust the phase gain for sampling rate
> self.demod = gr.quadrature_demod_cf(sps);
> 
> #configure clock recovery
> gain_mu = 0.01
> gain_omega = .25 * gain_mu * gain_mu # critically damped
> self.clocker = gr.clock_recovery_mm_ff( sps, 
> gain_omega,
> 0.5, #mu
> gain_mu,
> 0.3) #omega_relative_limit, 
> 
> self.burst = gsm.burst_ff()
> self.connect(self.filter, self.demod, self.clocker, self.burst)
> 
> 
> 
> . Can anyone please give me an idea why "
> gr.freq_xlating_fir_filter_ccf " is used here and 'input_rate' is used
> as an argument in stead of 'sps'.
Well, because a freq_translating_fir_filter needs the input rate.
It knows nothing about symbols so sps (samples per symbol) makes no
sense here.

>  Whereas, in quadrature demod and Clock_recovery_mm 'sps' is used for
> sampling rate 
sps is not used for samplingrate.
Did you even bother looking up what the parameters mean.
In quadrature_demod the parameter means gain (not sampling rate)
See:
http://gnuradio.org/doc/doxygen/classgr__quadrature__demod__cf.html

In clock_recovery_mm_ff the first parameter means omega (not sampling
rate)
http://gnuradio.org/doc/doxygen/classgr__clock__recovery__mm__ff.html

> and why clock recovery is used after demodulation block ? 
Because you want to recover the symbol clock.
As long as the samples are not demodulated there exists no symbols.


> Are I and Q samples are flowing out of clocker block or are they the
> encoded bits ?  
> 
Mueller and Moeller (M&M) based clock recovery block with float input,
float output.

This implements the Mueller and Moeller (M&M) discrete-time
error-tracking synchronizer. 

See "Digital Communication Receivers: Synchronization, Channel
Estimation and Signal Processing" by Heinrich Meyr, Marc Moeneclaey, &
Stefan Fechtel. ISBN 0-471-50275-8.
> 
> Thanks,
> 
> 
> M.Awais
> 
> 
> _______________________________________________
> Discuss-gnuradio mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/discuss-gnuradio





reply via email to

[Prev in Thread] Current Thread [Next in Thread]