# GMSK/MSK constellation derotation and Channel impulse response estimation

Started by August 7, 2008
```I am trying to implement a GMSK receiver I have a block diagram of the

Received IQ Samples - >  constellation derotation -> CIR estimation
from training sequence -> MLSE (viterbi) equalizer

The constellation derotation is supposed to collapse the four end
points of GMSK constellations (+1, +j,-1,-j) to a two point (+1,-1)
constellation.

My question is how exactly are the constellation derotation and CIR
estimation are supposed to performed?  From what I have figured it out
so far, the constellation derotation is supposed to by a
multiplicaiton by exp{-j*n*pi/2}  for n=1,2,3,4  i.e. every four
received IQ samples are multiplied by {-j,-1,+j,1}.  The goal is to
limit the binary symbols to 2 (+1,-1) so that the MLSE equlaizer has
2^L states.  However, this multiplication by exp{-j*n*pi/2} seem to
totally change the pulse sequence.  For example, if we skip the
filtering for a moment (MSK modulation) and consider a pulse train
+1,+1,-1,-1,+1,+1,+1,-1,-1,...  and starting phase 0, then the
modulated IQ samples are +j,-1,+j,+1,+j,-1,+j,+1,...multiplication by -
j,-1,+j,+1,... results in the derotated sequence of
+1,+1,-1,+1,+1,-1,+1,+1...  Which, while limited to symbols(+1,-1), is
a different pulse train sequence than the input.  Would it not mess up
the CIR calculation based on a known training sequence?  Would it not
result in incorrect sequence estimation by the viterbi equalizer?

```
```
Hi

>My question is how exactly are the constellation derotation and CIR
>estimation are supposed to performed?

I dont knw abt constellation derotation but to estimate CIR, u need to
corss correlate the o/p constellation derotation(as per ur diagram) with
the training sequence.

But can u tell more abt the structure of packet? i.e. what is the training
sequence? is it BPSK or QPSK?

Generally, after the I-Q down conversion, the o/p is xcorrelated with
known training sequence.

Hope this helps.

Chintan
```
```On Aug 7, 3:09&#2013266080;pm, "cpshah99" <cpsha...@rediffmail.com> wrote:
> Hi
>
> >My question is how exactly are the constellation derotation and CIR
> >estimation are supposed to performed?
>
> I dont knw abt constellation derotation but to estimate CIR, u need to
> corss correlate the o/p constellation derotation(as per ur diagram) with
> the training sequence.
>
> But can u tell more abt the structure of packet? i.e. what is the training
> sequence? is it BPSK or QPSK?
>
> Generally, after the I-Q down conversion, the o/p is xcorrelated with
> known training sequence.
>
> Hope this helps.
>
> Chintan

The modulation is GMSK.  The training sequence is alternating sequence
of 00s and 11s (00110011...) or (-1-1+1+1-1-1+1+1...) .  The question
is regardlessof whther you use cross correlation, deconvolution, least
squares, LMS or any other method for CIR estimation what would you use
as the known training sequence?  (-1-1+1+1...) or the ideal derotated
version of it(without gaussian filtering)?
```
```On Thu, 07 Aug 2008 11:31:48 -0700, ane wrote:

> I am trying to implement a GMSK receiver I have a block diagram of the
> receiver which is like this
>
> Received IQ Samples - >  constellation derotation -> CIR estimation from
> training sequence -> MLSE (viterbi) equalizer
>
> The constellation derotation is supposed to collapse the four end points
> of GMSK constellations (+1, +j,-1,-j) to a two point (+1,-1)
> constellation.
>
>
> My question is how exactly are the constellation derotation and CIR
> estimation are supposed to performed?  From what I have figured it out
> so far, the constellation derotation is supposed to by a multiplicaiton
> by exp{-j*n*pi/2}  for n=1,2,3,4  i.e. every four received IQ samples
> are multiplied by {-j,-1,+j,1}.  The goal is to limit the binary symbols
> to 2 (+1,-1) so that the MLSE equlaizer has 2^L states.  However, this
> multiplication by exp{-j*n*pi/2} seem to totally change the pulse
> sequence.  For example, if we skip the filtering for a moment (MSK
> modulation) and consider a pulse train +1,+1,-1,-1,+1,+1,+1,-1,-1,...
> and starting phase 0, then the modulated IQ samples are
> +j,-1,+j,+1,+j,-1,+j,+1,...multiplication by - j,-1,+j,+1,... results in
> the derotated sequence of +1,+1,-1,+1,+1,-1,+1,+1...  Which, while
> limited to symbols(+1,-1), is a different pulse train sequence than the
> input.  Would it not mess up the CIR calculation based on a known
> training sequence?  Would it not result in incorrect sequence estimation
> by the viterbi equalizer?

Could they be using differential GMSK, where a transmitted '1' means a
forward rotation of the phase, and a transmitted '0' means a reverse
rotation of the phase?

Seems like after derotation you'd still have a differential BPSK-ish
signal to decode...

--
Tim Wescott
Control systems and communications consulting
http://www.wescottdesign.com

Need to learn how to apply control theory in your embedded system?
"Applied Control Theory for Embedded Systems" by Tim Wescott
Elsevier/Newnes, http://www.wescottdesign.com/actfes/actfes.html
```
```>On Thu, 07 Aug 2008 11:31:48 -0700, ane wrote:
>
>> I am trying to implement a GMSK receiver I have a block diagram of the
>> receiver which is like this
>>
>> Received IQ Samples - >  constellation derotation -> CIR estimation
from
>> training sequence -> MLSE (viterbi) equalizer
>>
>> The constellation derotation is supposed to collapse the four end
points
>> of GMSK constellations (+1, +j,-1,-j) to a two point (+1,-1)
>> constellation.
>>
>>
>> My question is how exactly are the constellation derotation and CIR
>> estimation are supposed to performed?  From what I have figured it out
>> so far, the constellation derotation is supposed to by a
multiplicaiton
>> by exp{-j*n*pi/2}  for n=1,2,3,4  i.e. every four received IQ samples
>> are multiplied by {-j,-1,+j,1}.  The goal is to limit the binary
symbols
>> to 2 (+1,-1) so that the MLSE equlaizer has 2^L states.  However, this
>> multiplication by exp{-j*n*pi/2} seem to totally change the pulse
>> sequence.  For example, if we skip the filtering for a moment (MSK
>> modulation) and consider a pulse train +1,+1,-1,-1,+1,+1,+1,-1,-1,...
>> and starting phase 0, then the modulated IQ samples are
>> +j,-1,+j,+1,+j,-1,+j,+1,...multiplication by - j,-1,+j,+1,... results
in
>> the derotated sequence of +1,+1,-1,+1,+1,-1,+1,+1...  Which, while
>> limited to symbols(+1,-1), is a different pulse train sequence than
the
>> input.  Would it not mess up the CIR calculation based on a known
>> training sequence?  Would it not result in incorrect sequence
estimation
>> by the viterbi equalizer?
>
>Could they be using differential GMSK, where a transmitted '1' means a
>forward rotation of the phase, and a transmitted '0' means a reverse
>rotation of the phase?
>
>Seems like after derotation you'd still have a differential BPSK-ish
>signal to decode...
>
>--
>Tim Wescott
>Control systems and communications consulting
>http://www.wescottdesign.com
>
>Need to learn how to apply control theory in your embedded system?
>"Applied Control Theory for Embedded Systems" by Tim Wescott
>Elsevier/Newnes, http://www.wescottdesign.com/actfes/actfes.html
>

Hi Tim,

Yes, you are right. GMSK can be interpreted a differential BPSK after a
-PI/2 derotation being employed.

But here I want also to point out a mistake in ane's example. The right
one is below.

A(n):     0, 0, 1, 1, 0, 0, 0, 1, 1
Original: +1,+1,-1,-1,+1,+1,+1,-1,-1  original= 1-2A(n)
phase=0:  +j,-1,+j,+1,+j,-1,-J,-1,+j;
derotate: -j,-1,+j,+1,-j,-1,+j,+1,-j

result:   +1,+1,-1,+1,+1,+1,+1,-1,+1
B(n):      0, 0, 1, 0, 0, 0, 0, 1, 0

D(n):      0, 0, 1, 1, 0, 0, 0, 1, 1

A(n)=D(n). This means that after derotation we have to decode the
differential code.

Hope I say it clear.

Fan
```