# Viterbi equalizer in a GSM system

I'm about to tackle implementing a Viterbi equalizer fo a GSM system in gnuradio. I went through the internet and ieeexplore and I think that this document explains it best:

Application of Viterbi Equalizer in GSM System

My question concerns the Matched Filter in the block diagram. Normal Burst in GSM has 8 possible midambles. First of all, the Matched Filter block should determine which midable has been transmited. Midambles have highly-peaked auto-correlation function, so the first thing to do is to compute the modulated version of the 8 midambles and then convolve each of them with the received midamble and the one with the most peak-like is the most likely to have been sent. Once I have that done, it's easy to compute the channel response estimate.

I don't have much background in DSP and I was hoping someone could let me know if I understand it correctly.

• From a quick read, I think you're on the right track. – Jason R Aug 6 '14 at 18:27
• Yes, Viterbi decoder is nicely explained in - Sajal Kumar Das: "Mobile Handset Design" book... – user11447 Oct 20 '14 at 16:32

Thanks for the answer. You are correct - the training sequence is known by the time you establish any communication.

In case if somebody stumbles upon this in the future, here's how to get this done:

The synchronization burst contains an extended training sequence. It's longer than the regular one and there is only one sequence. You are supposed to use that to equalize, demodulate and decode the SCH burst. Among other useful information, it contains the color code of the BTS, which identifies the training sequence used by that BTS.

The procedure is nicely explained in this book:

Sajal Kumar Das: "Mobile Handset Design"

From the referenced description and also from [1] it seems to me that the training sequence (here: midamble) is assumed to be known already. This knowledge has probably been acquired before in the synchronization burst. The first block in Fig. 2 extracts the training sequence from the received signal. This suggests that the receiver is already synchronized to the transmitter otherwise the training sequence extraction would not be possible. (Unless the extraction block includes frame synchronization - but why the synchronization burst then?) Every base station has a so-called color code, 3 bit long. This color code indentifies the base station and determines the training sequence. The channel estimation using the midamble is done during data transmission, i.e. when communication has already been established. I think that the color code of the base station must already be known by then and hence the training sequence must be known as well.

I'm no GSM expert so I might be mistaken. In this case the transmitted training sequence could be found as you propose: try every of the eight possible matched filter impulse responses and choose the one that yields the highest distance between main and side lobe at the matched filter output, when the matched filter input is the received training sequence.

[1] Raymond Steele and Lajos Hanzo: "Mobile Radio Communications", 2nd edition, Wiley