Re: Why not use matched filter in GMSK demodulator

There is no reason why you should not use a matched filter.
However make sure you understand that a symbol-spaced MF
generates sufficient statistics only for detection,
ie, not for (epoch) synchronization.
Also note that in the case of GMSK (CPM in general) a bank of MFs will
generate colored noise.
Another appropriate implementation of a front end projects the entire
oversampled signal to a set of orthonormal basis functions which has the
advantage of generating white noise samples for (simpler) further
processing.

Take a look at how a generic receiver for an arbitrary CPM
is developed in

http://gnuradio.org/svn/gnuradio/trunk/gr-trellis/src/examples/test_cpm.py

There, the signal is first projected to its basis functions (which is
calculated by a helper python application in “fsm_utils.py”)
to generate a sufficient statistic which is then used in conjunction
with trellis decoding to do soft-decision sequence detection.
What is missing though is epoch and phase syncronization (to do at some
point…)

Achilleas

Thank you for your reply!

I think the generic receiver for CPM you mentioned is the optimal
receiver
for CPM and the projection onto basis functions (correlation with basis
functions) is equivalent to the matched filters, am I right?

Go back to the GMSK transceiver I mentioned in the file

http://gnuradio.org/trac/browser/gnuradio/branches/releases/3.2/gnuradio-core/src/python/gnuradio/blks2impl/gmsk.py

The modulator structure is NRZ mapping --> Gaussian filter --> FM
modulator
And the demodulator structure is FM demodulator --> Timing recovery -->
detector

I think after the FM demodulator the signal can be viewed as a PAM
modulated
signal and what if I add a matched filter before the timing recovery?
Can I
improve the BER performance? I think the matched filter can maximize the
output SNR. Will it make the detector work better?

Best regards,
Shizheng Li

On Thu, Jul 30, 2009 at 2:07 PM, Achilleas A.
<[email protected]

Shizheng Li wrote:

Thank you for your reply!

I think the generic receiver for CPM you mentioned is the optimal
receiver for CPM and the projection onto basis functions (correlation
with basis functions) is equivalent to the matched filters, am I right?

yes; however see the comment i made about the colored noise and the
detection vs detection/estimation in my earlier post

recovery? Can I improve the BER performance? I think the matched filter
can maximize the output SNR. Will it make the detector work better?

you are already suboptimal when you do FM demodulation…

Achilleas,

I’m rooting through your test_cpm.py code, and I have a few questions on
what’s going on in there. Specifically:

What is the purpose of the two filters with coeffs MF[0,1]?

Why do you frequency-shift the modulated signal by -f0T to bring the
“low” frequency to zero before feeding it to the filters?

What is the purpose of the streams_to_stream conversion?

Sorry in advance if these are trivial questions.

–n

Shizheng,

For an alternative noncoherent GMSK demodulator that does a lot better
than the stock one, see the GMSK receiver I put together for my AIS
project:

https://www.cgran.org/wiki/AIS

It uses a modified decision-feedback equalizer to estimate the channel
and remove ISI. It seems to do pretty well for my application. If you
have a continuous signal (i.e., not in short bursts) you can even use
the stock LMS DFE block. My application uses short packets, so I run
them through the DFE multiple times to train it. The DFE avoids the
colored-noise problem you get when you invert the channel with a matched
filter. It’s pretty simple, but it works.

–n

This is NOT optimal. CPM and FM detector is a noncoherent detection of
MSK/GMSK. The near optimal receiver for MSK and GMSK does two things:

  1. it does a coherent detection of the received symbols and
  2. it does something like a trellis/viterbi decode for the correct phase
    path through the symbols using the fact that at each symbol time the
    phase transition is +/- pi/2.

Should you follow this type of construction, the performance of coherent
detection/with “viterbi error correction” for the paths, the performance
is approximately the same as QPSK with the same bit rate.

Bob

Shizheng Li wrote:

The modulator structure is NRZ mapping --> Gaussian filter --> FM
Best regards,
generates sufficient statistics only for detection,

Achilleas


[email protected]
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


(Co)Author: DttSP, Quiktrak, PowerSDR, GnuRadio
Member: ARRL, AMSAT, AMSAT-DL, TAPR, Packrats,
NJQRP, QRP ARCI, QCWA, FRC.
“You don’t need to see the whole staircase, just
take the first step.”, MLK.
Twitter:rwmcgwier
Active: Facebook,Myspace,LinkedIn

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs