On Mon, Feb 13, 2012 at 9:39 PM, Nick Foster <n...@ettus.com> wrote:

> Hi all,
>
> I've been doing some stuff with the pfb clock sync for GMSK (my AIS app
> again) and had a couple questions. First, a sanity check so you can tell me
> if I'm just nuts:
>
> BT = 0.35
> self.filtersections = 32
> self.tapspersection = 20
> self.clockrec_sps = 1
> gain_mu = 0.03
> self._samples_per_symbol = 250.0e3 / 9600.0
> self.datafiltertaps = gr.firdes.gaussian(1,
> self._samples_per_symbol*self.filtersections, BT,
> self.tapspersection*self.filtersections)
> self.clockrec = gr.pfb_clock_sync_ccf(self._samples_per_symbol, gain_mu,
> self.datafiltertaps, self.filtersections, 0, 1.15, self.clockrec_sps)
>
> Am I constructing the filter correctly? If not, don't bother reading
> further, just tell me I'm a rube and move on. =)
>
> If not, increasing the output samples per symbol (self.clockrec_sps above)
> to 2 seems to cause the clock recovery to go off into the weeds. Any reason
> for this? Does the filter construction need to change when using multiple
> osps?
>
> --n
>

Hi Nick,
I actually tried using this block for GMSK when we transitioned to 3.5 but
ended up using it incorrectly and had to revert back to the old way. I
think I might now see what I did wrong, and I think it's in the naming of
the second input to the firdes.gaussian design function. It's called "spb,"
but it really looks like it's supposed to take the inverse number of
samples/baud.

There is a program called gr_filter_design.py that is installed into
$prefix/bin that you can use to see what a filter looks like when you
design it. You can plug your numbers in there and see what the freq and
time domain plots will look like. What you want is a massively oversampled
filter in the frequency domain, so something with a small passband and lots
of stopband rippling. In the time domain, this looks like a single cycle of
a Guassian pulse (which is good, since the derivative will have a minimum
right at the peak -- exactly what we want).

So see if the numbers you want to use make a filter that looks reasonable
in this program, first. But otherwise, the basic approach you have above
seems correct.

Tom
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to