Abstract
This report discusses the design and implementation of an OFDM modem for a simplex com-
munication between two PCs over a frequency selective channel. First a brief introduction is
provided by explaining the backrground and the specification of the project. Then the report
deals with the system model. Each blo ck of the OFDM system is described (IFFT/FFT, cyclic
prefix, modulation/demodulation, channel estimation, bit loading). In the following section, the
system architecture is anal ysed. The transmission protocol, as well as the system parameters
are explained in details. Then, the DSP implementation is discussed. Finally, the results are
provided in the last chapter.
1
Aknowledgment
We would like to thank our project assistant, Xi Zhang, for his help during the course.
2
Contents
Abstract 1
Aknowledgment 2
1 Introduction 7
1.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3 Equipment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4 Project overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2 System Model 9
2.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.1 Transmitter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.2 Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.1.3 Receiver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2 OFDM System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.1 Evoluti on of OFDM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.2 Introduction to OFDM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.3 FFT and IFFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.4 Cyclic Prefix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.5 Modulation and demodulation . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.6 Channel and Noise Estimation . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.7 Adap tive Bit Loading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3 System Architecture 19
3.1 Frame structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.1.1 Transmission Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.1.2 Training sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.1.3 Length Frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.1.4 Pilots Frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2 Convolution Encoder and Decoder . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3 Mirror Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.4 Upsampling and pulse sh api ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.5 Synchroni zation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.6 Frequency offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3
Chapter 0 Black TEAM
4 DSP implementation 26
4.1 Overview of the Board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.2 Data Transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.3 Ping Pong Buffering with Linked EDMA transfers . . . . . . . . . . . . . . . . . 27
4.4 Implementation issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.5 DSP transmitter implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.6 DSP Receiver Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.7 Changes compared to simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5 Graphical User Interface 32
5.1 Commu nicati on between the Host and the DSP . . . . . . . . . . . . . . . . . . . 32
5.2 Transmitter GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.3 Receiver GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
6 Simulation results 35
6.1 Channel estimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
6.2 Bit loading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
6.3 Bit error probability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
7 Real system results 38
7.1 Let’s follow a frame at the receiver . . . . . . . . . . . . . . . . . . . . . . . . . . 38
7.1.1 Received signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
7.1.2 Match filter, downsampling and FFT . . . . . . . . . . . . . . . . . . . . . 38
7.1.3 Channel compensation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
7.2 Final results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
8 Future work 41
8.1 Increase the bit rate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
8.2 Peak to average ratio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
8.3 Improving the system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Conclusion 42
Page 4
List of Figures
1.1 Point to point communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1 OFDM system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2 Bits flow through an interleaver . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3 Basis functions in OFDM system . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.4 OFDM system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.5 Channel impulse response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.6 Addi ng a cyclic prefix to a frame . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.7 Bits allocation in modulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.8 4-QAM (left) and 16-QAM (right) . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.9 Block type channel estimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.10 Adaptive bit loading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.1 Preambu le of transmission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2 Transmission protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.3 Structure of the training sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.4 A 1/2 - rate Convolution encoder . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.5 Trellis used in the Viterbi decoder . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.6 Mirror operation, producing a real valued output from IFFT . . . . . . . . . . . . 22
3.7 Impulse response of the root-raised-cosine filter . . . . . . . . . . . . . . . . . . . 23
3.8 The frames "slide" in the received buffer because of the sampling clock difference 23
3.9 The synchronization method uses correlation between the train ing sequence and
the ouput from the match filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.10 The maximum of the correlation indicates the where the training frame starts . . 24
3.11 Channel estimation compensates the rotation of the constellation due to frequency
offset. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.1 Ping Pong Buffering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.2 Buffer handling at the receiver . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.3 State machine at the transmitter . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.4 State machine at the receiver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.5 The bit allocation is constant over the transmission . . . . . . . . . . . . . . . . . 31
5.1 Interface at the transmitter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.2 Interface at the receiver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
6.1 Channel model in the Matlab simulation . . . . . . . . . . . . . . . . . . . . . . . 36
5