GSM Baseband Implementation

advertisement
GSM Baseband Implementation
Fig 1. A Conceptual block diagram for GSM transmitter/Receiver. Only the above six
blocks will be implemented.
As a input, voice interfaces will not be implemented. Instead a random bits are generated
to be as input as shown in Fig 1.2
Fig 1.2 . Input is replaced by random bit generator here.
TRANSMITTER:
The overall picture of the transmitter seems to be as below.
Fig 1.3 Transmitter block diagram
To provide an input data stream to channel encode/interleaver, a sequence of random data
bits are generated. This sequence is – after processing- received by the MUX which splits
the incoming sequence to form the GSM normal burst. As this burst type requires that a
training sequence is included , so that is also supplied (as shown in pic above).
After generating the normal GSM burst data sequence , the MUX returns this to GMSK
modulator. GMSK block performs the differential encoding of the incoming burst to form
the NRZ (non return to zero) sequence.
This modified sequence is then subject to actual GMSK modulation , after which the
resulting signal is represented as complex baseband signal (in form of I and Q signal).
RECEIVER:
The overall structure of receiver is as follows:
Fig 1.4 Receiver block diagram
The demodulator accepts the GSM burst r using a complex baseband representation.
based on the data sequence information concerning the over sampling sequence OSR, the
training sequence TRAINING , and the desired length of the receiving filter Lh , the
demodulator determines the most probable bit sequence.
This sequence is used as input to the DeMUX , Where the bits are split in order to
retrieve the actual data bits., remaining control bit and training sequence is discharged
here.
As a final operation channel decoding and de-interleaving is performed. Parameter values
used in receiver is used as equal to values used in transmitter.
Matlab implementation:
The following .m files are propsed to simulate the above mentioned block diagram.
Transmitter section:
1. data_gen.m for DataGenerator in Tx
2.
3.
4.
5.
6.
7.
channel_enc.m for channelEncoder
interleav.m for Interleaver.
burst_g.m for MUX
diff_enc.m for differential encoding (GMSK Mod)
gmsk_mod.m (GMSK Mod)
ph_g.m (GMSK Mod)
Fig 1.5 A Typical GSM Burst Structure
Receiver Section:
1. mf.m (for matched filter in case of demodulator).
2. viterbi_init.m
3. viterbi_detector.m
4. demux.m for demultiplexer
5. channel_dec.m for channel decoder
6. deinterleaver.m for DeInterleaving
7.
file number 2 and 3 are for viterbi equalizer (minimum least square error detection).
In brief, on a broad level the functionality looks like as below.
1.
2.
3.
4.
5.
data_gen.m --- generates random data for transmission
channel_enc.m – performs parity and convolutional encoding of data bits
interleave.m -- interleave the encoded data bits
gsm_mod.m - - modulates the burst and does multiplexing as well.
mf.m – performs chanel estimation, synchronization, matched filtering and down
sampling
6. viterbi_init.m -- set up data structure for viterbi detector to use
7. viterbi_detector.m – viterbi algo based on MLSE
8. demux.m -- does simple demultiplexing
9. deinterleave.m – takes care of deinterleaving
10. channel_dec.m – performs cahnnel decoding.
Other detailed desctiption about each block and its implementation will be given later.
These things are still in design phase and not yet finalized.
Your comments/suggestion/critics are most welcome in order to make the simulation
more refined.
All of the above implementation will be done on 6.x or higher version of Matlab.
Currently I am identifying the built it APIs and other blocks which an be used to simulate
it.
Download