I'm working on a generalized CPM demod based on Achilleas's previous work
in gr-trellis/src/examples/test_cpm.py, and I have it more or less working
although there are plenty of little bugs to work out. Since the Viterbi
part was more or less worked out for me, synchronization is the hard part;
my application isn't GSM, and I'd like the solution in Gnuradio to be
applicable to a wide range of systems -- this means closed-loop timing and
freq synchronization instead of just doing data-aided estimates from the
preamble. I've implemented a timing synchronizer based on the D'andrea,
Mengali, Reggiannini paper following MATLAB's example, and I'm using an
adaptation of the correlate_and_sync block to synchronize to (G)MSK
preambles.

Don't know when I'll have it ready to release (i.e. when the code isn't an
embarrassment to look at) but it's Working In The Lab (TM). It also takes
quite a bit of setup to apply to each use case.

If you don't need those extra few dB, it's a whole heck of a lot simpler
both in implementation complexity and CPU cycles to just stick with the
existing noncoherent GMSK block. When I release code I'll also release an
updated noncoherent GMSK receiver block which uses the new timing
estimator, as the primary weakness of the existing GMSK block is timing
recovery.

--n


On Fri, Feb 28, 2014 at 7:31 AM, Sylvain Munaut <246...@gmail.com> wrote:

> Also as a side note, you can't demod GSM and then slice it. You have
> to demod it burst by burst so that you can lock to the training
> sequence of each. So the demod block of GR is pretty much useless
> here.
>
> airprobe has a viterbi demod (which is probably one of the few good
> part of airprobe to re-use).
>
> Cheers,
>
>     Sylvain
>
>
> On Fri, Feb 28, 2014 at 4:27 PM, Tom Rondeau <t...@trondeau.com> wrote:
> > On Fri, Feb 28, 2014 at 10:12 AM, Marcus Müller <mar...@hostalia.de>
> wrote:
> >> Hi Zhenhua,
> >> as Aditya pointed out: Viterby is /not/ a demodulator.
> >> You should read something on digital communication that explains the
> >> difference between channel coding and modulation, then everything will
> be
> >> clearer to you.
> >>
> >> Greetings,
> >> Marcus
> >>
> >> On 02/28/2014 04:04 PM, zhenhua han wrote:
> >>
> >> What confused me is the Viterbi algorithm. I saw it can be used to
> >> demodulate GMSK in more than one place (such as here:
> >> http://www.mathworks.cn/cn/help/comm/ref/comm.gmskdemodulatorclass.html)
> >>
> >> I think it's better for me to read some materials of Viterbi and find
> out
> >> what really it is.
> >>
> >> Cheers
> >> Zhenhua
> >>
> >> 2014-2-28 下午10:40于 "Aditya Dhananjay" <adi...@cs.nyu.edu> 写道:
> >>>>
> >>>>
> >>>> As I have known, GSM uses GMSK modulation which BT = 0.3 and it uses
> >>>> Viterbi algorithm for demodulation. And I took a look at the code of
> GMSK
> >>>> demod code in GNU Radio, it use quadrature_demod but not Viterbi as
> >>>> demodulation method. So which one is better in doing demodulating
> GMSK?
> >>>>
> >>>> Moreover, GSM uses Viterbi algorithm to decode the convolution
> encoding.
> >>>> Would it be possible to use quadrature_demod to demodulate GSM signal
> >>>> instead of Viterbi? What about the convolution decoding part (maybe
> by some
> >>>> other method)?
> >>>>
> >>>
> >>> I think you are mixing up the modulation and coding components.
> >>>
> >>> At the transmitter, you first code (convolutional code), and then you
> >>> modulate (GMSK).
> >>>
> >>> At the receiver, you first demodulate (quadrature demodulate) and then
> you
> >>> decode (Viterbi).
> >>>
> >>> Coding takes a stream of bits and converts it to another stream of
> bits.
> >>> Modulation refers to the process of converting the post-coded bits into
> >>> "symbols" that you will then send over-the-air.
> >>>
> >>> best,
> >>> aditya
> >
> >
> > Actually, guys....
> >
> > http://www.ittc.ku.edu/~prescott/kcp/HPRC-GMSK-Demod.pdf
> >
> > You can demodulate GMSK using the Viterbi algorithm.
> >
> > Zhenhua,
> >
> > We don't implement this method in our GMSK demodulator, though I have
> > wanted to see someone do it. The Viterbi is the maximum likelihood
> > detector for GMSK, but it's more complicated to implement. The
> > quadrature method we use is simple and intuitive but suboptimal.
> >
> > Tom
> >
> > _______________________________________________
> > 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