Tom changed it to use the fir_filter_with_buffer vs. the standard
fir_filter internally, but as the taps remain the same I'd imagine it to be
more or less numerically identical.

First step I think is to verify that the FLL is actually the problem -- get
a scope on the output of the FLL and see that your FSK signal is more or
less at baseband.

--n

On Sat, Oct 18, 2014 at 8:57 AM, Luke Berndt <l...@robotastic.com> wrote:

> Thanks! I clearly have a lot of RF theory to read up on.
>
> The Band Edge FLL works great for me too, on 3.6. Does anyone know if
> there were changes to it or surrounding blocks in 3.7 that would make it
> stop working?
>
> I have a pretty strong, clean signal.
>
> Sent from my iPhone
>
> On Oct 18, 2014, at 11:00 AM, Nick Foster <bistrom...@gmail.com> wrote:
>
> Figured I'd chime in since I wrote the code in question. The band edge FLL
> is probably the wrong thing to use, but it did work surprisingly well for
> my local setup (at very high SNR), so I left it in. The square-and-FFT
> block works great for MSK, but Smartnet isn't MSK, it's FSK, and its lack
> of phase coherence (and variable deviation) mean you won't see those nice
> 1/2-bitrate FFT spikes.
>
> As Andy points out, the "right" answer is to correlate against the
> modulated preamble and develop phase, frequency, and timing estimates from
> the known preamble.
>
> --n
>
>
> On Oct 18, 2014 6:41 AM, "Andy Walls" <a...@silverblocksystems.net> wrote:
>
>> On Fri, 2014-10-17 at 12:00 -0400, discuss-gnuradio-requ...@gnu.org
>> wrote:
>>
>> > Message: 33
>> > Date: Fri, 17 Oct 2014 07:37:25 -0700
>> > From: John Malsbury <jmalsbury.perso...@gmail.com>
>> > To: Luke Berndt <l...@robotastic.com>
>> > Cc: "Discuss-gnuradio@gnu.org List" <discuss-gnuradio@gnu.org>
>> > Subject: Re: [Discuss-gnuradio] Works with GR 3.6, breaks with 3.7
>> > Message-ID:
>> >       <CAK+fQffv_gbGbq7DimJM0DiD=
>> agfz1rxekc7nav+xzimzqv...@mail.gmail.com>
>> > Content-Type: text/plain; charset="utf-8"
>> >
>> > Also, my understanding for the PLL blocks were that they were ideal for
>> > "strong carrier" signals like AM.  When I say strong carrier i mean a
>> > signal that has an obvious carrier which isn't "hidden" under
>> modulation..
>>
>> John and Luke,
>>
>> Yup.  GMSK doesn't have any narrow and strong spectral feature on which
>> one can lock a PLL.  (And the band-edge FLL is the wrong thing to use
>> too.)
>>
>> You can however get a spectral feature from the square of the GMSK
>> signal.  *Assuming* you have an approximately random bit stream,
>> squaring the GMSK signal gives you spectral peaks at f_c +/- f_b/2,
>> where f_c is the center frequency and f_b is your bit rate.  See the
>> attached "GMSK_squared_spectrum.png" which shows the spectra from a
>> random bit stream.
>>
>> So you can get a non-data-aided coarse frequency correction doing
>> essentially what older versions of gr-ais did.  See the attached
>> "square_and_fft_freq_sync.grc.png".  The gr-ais "freqest" block is the
>> only non-stock gnuradio block and it just walks the FFT looking for the
>> spectral peaks at +/- f_b/2 and outputs a frequency correction values
>> based on how many FFT bins the peaks are offset from the expected center
>> frequency.
>>
>> The major tradeoff is the length of the FFT:
>> 1. More FFT points gives you finer resolution bins and a finer
>> correction.
>> 2. More FFT points protects against pathological data sequences (e.g. a
>> long run of 0's) that give different spectral peaks which screw up the
>> correction.
>> 3. Fewer FFT points ensures the start and end of bursts get the proper
>> correction as the correction reacts faster to the transition from
>> dead-air to modulated signal.
>> 4. Fewer FFT points ensures faster reaction to changes in frequency
>> offset.
>>
>>
>> Although, if you have a known preamble to inspect, data-aided carrier
>> frequency offset correction is way better than the above non-data-aided
>> stuff.
>>
>> Regards,
>> Andy
>>
>> > Anyway, the GMSK block might be a good place to start.
>> >
>> > -John
>> >
>> > On Fri, Oct 17, 2014 at 7:35 AM, John Malsbury <
>> jmalsbury.perso...@gmail.com
>> > > wrote:
>> >
>> > > It doesn't have frequency correction - I can probably follow up with
>> some
>> > > ideas on how to implement that part.  But the GMSK demod might do OK
>> for
>> > > you initially.  It doesn't do anything intelligent to deal with the
>> data
>> > > shaping - its just a non-coherent slicer.
>> > >
>> > > If you want to design in GRC but keep your top-level application as
>> is,
>> > > you can use a hier block.  You can also use a command line parameter
>> or
>> > > other mechanism to select your demodulator at start-time for easy
>> > > comparisons.
>> > >
>> > > [typed one handed.. my daughter has my other and]
>> > >
>> > > -John
>> > >
>> > > On Fri, Oct 17, 2014 at 7:08 AM, Luke Berndt <l...@robotastic.com>
>> wrote:
>> > >
>> > >> Thanks for looking into it! To be honest, I am not really good at
>> RF. I
>> > >> based my code off the python code in gr-smartnet. The fsk-demod
>> python file
>> > >> is here:
>> > >>
>> https://github.com/bistromath/gr-smartnet/blob/master/src/python/fsk_demod.py
>> > >>
>> > >> It is quite possible that it just happened to work because of an
>> error
>> > >> that got patched in Gr 3.7.
>> > >>
>> > >> Are there some good examples for GMSK/FSK demodulation that I could
>> > >> borrow from instead?
>> > >>
>> > >> Recreating this in GRC sounds like a great idea so I can scope along
>> the
>> > >> way. I will give that a try next.
>> > >>
>> > >> Thanks again for the pointers, fresh eyes are really helpful when you
>> > >> have been staring at it for so long.
>> > >>
>> > >>  - Luke
>> > >>
>> > >> On Fri, Oct 17, 2014 at 8:18 AM, Martin Braun <
>> martin.br...@ettus.com>
>> > >> wrote:
>> > >>
>> > >>> On 10/17/2014 08:28 AM, John Malsbury wrote:
>> > >>> > Also also, is the Band-Edge FLL ideal for GMSK?  My possibly,
>> incorrect
>> > >>> > understanding of that block is that it was more ideal for PAM with
>> > >>> > common RRC.
>> > >>>
>> > >>> For the record: It might work coincidentally because of the
>> rolloff-y
>> > >>> shape of GMSK, but it's derived for and designed for common
>> PAM/RRC, as
>> > >>> John says and I wouldn't recommend it for anything else.
>> > >>> To look up the math, I suggest Harris' works.
>> > >>>
>> > >>>
>> > >>>
>> > >>
>> > >> _______________________________________________
>> > >> Discuss-gnuradio mailing list
>> > >> Discuss-gnuradio@gnu.org
>> > >> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>> > >>
>>
>>
>> _______________________________________________
>> Discuss-gnuradio mailing list
>> Discuss-gnuradio@gnu.org
>> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>>
>>
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to