DSPRelated.com
Forums

Differential Encoder/Decoder in GSM

Started by richard_zhang April 9, 2008
Hi All,

I am looking at the Differential Encoder used in GSM. The 3GPP TS45.002
specifies that the encoder is as follows:
T(i) = D(i) xor D(i-1) where D(i) is information symbol and inputs to the
encoder, T(i) is the output.

Correspondingly at the receiver side, I am going to use a differential
decoder as below:
D(i) = R(i) xor D(i-1) where R(i) suppose to be the received bits and the
inputs to the decoder. Ideally R(i) equals T(i).

A question comes into the decoder now. One error bit in R(i) will cause
all subsequent D(i) wrong. Is it true for GSM receiver? I don't think so,
since it will cause high BER. Is there any other method that I shall use
to avoid this issue?


thank you.
On Apr 9, 9:54 am, "richard_zhang" <hardhear...@yahoo.com.cn> wrote:
> I am looking at the Differential Encoder used in GSM. The 3GPP TS45.002 > specifies that the encoder is as follows: > T(i) = D(i) xor D(i-1) where D(i) is information symbol and inputs to the > encoder, T(i) is the output.
hmm...as i recall, in differential encoding, T(i) = T(i-1) xor D(i)
> Correspondingly at the receiver side, I am going to use a differential > decoder as below: > D(i) = R(i) xor D(i-1) where R(i) suppose to be the received bits and the > inputs to the decoder. Ideally R(i) equals T(i).
i think it should be, D(i) = R(i) xor R(i-1)
> A question comes into the decoder now. One error bit in R(i) will cause > all subsequent D(i) wrong. Is it true for GSM receiver? I don't think so, > since it will cause high BER. Is there any other method that I shall use > to avoid this issue?
per your problem statement, the error will propagate. However, i think that your problem statement is incorrect. Per the equations which i put forward, due to differential encoding each decision error during coherent demodulation will cause two bits to be in error.
> thank you.
Hope this helps (ofcourse, i do not have the specs with me). Thanks, Krishna ~ blogs @ http://www.dsplog.com
richard_zhang wrote:

> I am looking at the Differential Encoder used in GSM. The 3GPP TS45.002 > specifies that the encoder is as follows: > T(i) = D(i) xor D(i-1) where D(i) is information symbol and inputs to the > encoder, T(i) is the output.
> Correspondingly at the receiver side, I am going to use a differential > decoder as below: > D(i) = R(i) xor D(i-1) where R(i) suppose to be the received bits and the > inputs to the decoder. Ideally R(i) equals T(i).
(snip) Are you sure you have R and T right? If you do it the other way around it doesn't have that problem. T(i) = D(i) xor T(i-1) and D(i) = R(i) xor R(i-1) In this case, a received bit in error will cause two data bits to be wrong. Others use much more complicated scramblers, but with the same symmetry. -- glen
>richard_zhang wrote: > >> I am looking at the Differential Encoder used in GSM. The 3GPP
TS45.002
>> specifies that the encoder is as follows: >> T(i) = D(i) xor D(i-1) where D(i) is information symbol and inputs to
the
>> encoder, T(i) is the output. > >> Correspondingly at the receiver side, I am going to use a differential >> decoder as below: >> D(i) = R(i) xor D(i-1) where R(i) suppose to be the received bits and
the
>> inputs to the decoder. Ideally R(i) equals T(i). >(snip) > >Are you sure you have R and T right? If you do it the other way >around it doesn't have that problem. > >T(i) = D(i) xor T(i-1) >and >D(i) = R(i) xor R(i-1) > >In this case, a received bit in error will cause two data bits >to be wrong. > >Others use much more complicated scramblers, but with the same symmetry. > >-- glen
Krishna and Glen, Thank you for the reply. The equation for differential encoder that I posted previously is from 3GPP specifications, please refer to the spec of 3GPP TS45.004 and the version I am reading is V6.0.0 (2005-01). I understand, if the encoder equation is T(i) = D(i) xor T(i-1), then the error propagation issue will not happen at the decoder. This is what I feel confused, why 3GPP uses the encoder of T(i) = D(i) xor D(i-1). Am I making anything wrong ???????? thanks

richard_zhang wrote:

> Hi All, > > I am looking at the Differential Encoder used in GSM. The 3GPP TS45.002 > specifies that the encoder is as follows: > T(i) = D(i) xor D(i-1) where D(i) is information symbol and inputs to the > encoder, T(i) is the output. > > Correspondingly at the receiver side, I am going to use a differential > decoder as below: > D(i) = R(i) xor D(i-1) where R(i) suppose to be the received bits and the > inputs to the decoder. Ideally R(i) equals T(i). > > A question comes into the decoder now. One error bit in R(i) will cause > all subsequent D(i) wrong. Is it true for GSM receiver? I don't think so, > since it will cause high BER. Is there any other method that I shall use > to avoid this issue?
You have the encoder and the decoder vice versa. Should be: Encoder: T[i] = X[i] xor T[i-1] Decoder: X[i] = R[i] xor R[i-1] Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com
> > >richard_zhang wrote: > >> Hi All, >> >> I am looking at the Differential Encoder used in GSM. The 3GPP
TS45.002
>> specifies that the encoder is as follows: >> T(i) = D(i) xor D(i-1) where D(i) is information symbol and inputs to
the
>> encoder, T(i) is the output. >> >> Correspondingly at the receiver side, I am going to use a differential >> decoder as below: >> D(i) = R(i) xor D(i-1) where R(i) suppose to be the received bits and
the
>> inputs to the decoder. Ideally R(i) equals T(i). >> >> A question comes into the decoder now. One error bit in R(i) will
cause
>> all subsequent D(i) wrong. Is it true for GSM receiver? I don't think
so,
>> since it will cause high BER. Is there any other method that I shall
use
>> to avoid this issue? > >You have the encoder and the decoder vice versa. > >Should be: > >Encoder: T[i] = X[i] xor T[i-1] >Decoder: X[i] = R[i] xor R[i-1] > > >Vladimir Vassilevsky >DSP and Mixed Signal Design Consultant >http://www.abvolt.com >
Hi Vladimir, thanks for the reply. Please refer to the 3GPP specification I mentioned previously and you will find that encoder/decoder equation you put here is not the one used in GSM.

richard_zhang wrote:


>> >>You have the encoder and the decoder vice versa. >> >>Should be: >> >>Encoder: T[i] = X[i] xor T[i-1] >>Decoder: X[i] = R[i] xor R[i-1] >> >> > Hi Vladimir, thanks for the reply. Please refer to the 3GPP specification > I mentioned previously and you will find that encoder/decoder equation you > put here is not the one used in GSM.
Well, of course you can continue to insist on your delusions :) VLV
Vladimir Vassilevsky wrote:

(snip)
>>> Encoder: T[i] = X[i] xor T[i-1] >>> Decoder: X[i] = R[i] xor R[i-1]
>> Hi Vladimir, thanks for the reply. Please refer to the 3GPP specification >> I mentioned previously and you will find that encoder/decoder equation >> you put here is not the one used in GSM.
> Well, of course you can continue to insist on your delusions :)
It seems that the document (though the reference is the wrong one) uses d and d-hat. It seems likely a typographic error that wasn't noticed. If it was T and X it would be much easier to see. Also, I don't see the decoder described, which would be a double check on the error. Then again, which of the different modulation methods do people actually use? -- glen
The 3GPP reference is here and sorry for the typo in my first post.

http://www.3gpp.org/ftp/Specs/html-info/45004.htm

Just download one 3GPP spec (e.g. the version 7.2.0) in above webpage, and
you will find the differential encoder in the spec.


>Vladimir Vassilevsky wrote: > >(snip) >>>> Encoder: T[i] = X[i] xor T[i-1] >>>> Decoder: X[i] = R[i] xor R[i-1] > >>> Hi Vladimir, thanks for the reply. Please refer to the 3GPP
specification
>>> I mentioned previously and you will find that encoder/decoder equation
>>> you put here is not the one used in GSM. > >> Well, of course you can continue to insist on your delusions :) > >It seems that the document (though the reference is the wrong >one) uses d and d-hat. It seems likely a typographic error >that wasn't noticed. If it was T and X it would be much easier >to see. Also, I don't see the decoder described, which would be >a double check on the error. Then again, which of the different >modulation methods do people actually use? > >-- glen >
If it is a typo error in 3GPP spec, then I can close my case here immediately, but who can make sure that it is an error in 3GPP? 3GPP spec here: http://www.3gpp.org/ftp/Specs/html-info/45004.htm