Anda di halaman 1dari 35

INTER-CARRIER INTERFERENCE

CANCELLATION FOR OFDM SYSTEMS

Group:

OFDM I

Principal Investigators:

Mihir Anandpara
Elmustafa Erwa
James Golab
Roopsha Samanta
Huihui Wang

May 6, 2003
Prof. T. S. Rappaport
EE 381K-11: Wireless Communications
Spring 2003

ABSTRACT
Orthogonal Frequency Division Multiplexing (OFDM) is an emerging multi-carrier
modulation scheme, which has been adopted for several wireless standards such as IEEE
802.11a and HiperLAN2. A well-known problem of OFDM is its sensitivity to frequency
offset between the transmitted and received carrier frequencies. This frequency offset
introduces inter-carrier interference (ICI) in the OFDM symbol. This project investigates
three methods for combating the effects of ICI: ICI self-cancellation (SC), maximum
likelihood (ML) estimation, and extended Kalman filter (EKF) method. These three
methods are compared in terms of bit error rate performance, bandwidth efficiency, and
computational complexity. Through simulations, it is shown that the three techniques are
effective in mitigating the effects of ICI. For high values of the frequency offset and for
higher order modulation schemes, the ML and EKF methods perform better than the SC
method.

TABLE OF CONTENTS
1.0 INTRODUCTION.1
2.0 OFDM SYSTEM DESCRIPTION1
3.0 ANALYSIS OF INTER-CARRIER INTERFERENCE IN OFDM SYSTEMS...3
4.0 ICI SELF-CANCELLATION SCHEME..5
4.1 ICI Canceling Modulation.5
4.2 ICI Canceling Demodulation.6
5.0 MAXIMUM LIKELIHOOD ESTIMATION....7
6.0 EXTENDED KALMAN FILTER ESTIMATION9
6.1 Problem Formulation.9
6.2 Assumptions.10
6.3 ICI Cancellation...10
7.0 COMPARISIONS12
8.0 CONCLUSIONS.15
9.0 REFERENCES17
APPENDIX A: MATLAB CODE18
APPENDIX B: DERIVATION OF ICI COEFFICIENTS31

List of Figures and tables:


Figure 2.1: OFDM Transceiver2
Figure 3.1: Frequency offset model 3
Figure 3.2: ICI Coefficients for N=16 sub-carriers.4
Figure 4.1: Comparison of |S(l-k)|, |S`(l-k)|, and |S``(l-k)| for N = 64 and = 0.4.5
Figure 4.2: CIR verses for standard OFDM systems7
Figure 5.1: Actual verses ML estimated frequency offset for different values of Eb/No..8
Figure 6.1: Recursive Estimation of normalized frequency offset , SNR=20 dB....11
Figure 6.2: Pseudo code for EKF ..12
Figure 7.1: BER Performance of standard OFDM system without ICI cancellation....13
Figure 7.2: BER Performance with ICI Cancellation, =0.05...13
Figure 7.3: BER Performance with ICI Cancellation, =0.15...14
Figure 7.4: BER Performance with ICI Cancellation, =0.3.14
Table 7.1: Required SNR and improvement for BER of 10-2 for BPSK...15
Table 7.2: Required SNR and improvement for BER of 10-2 for 4-QAM15

1. INTRODUCTION
Orthogonal frequency division multiplexing (OFDM) is emerging as the preferred modulation
scheme in modern high data rate wireless communication systems. OFDM has been adopted in
the European digital audio and video broadcast radio system and is being investigated for
broadband indoor wireless communications. Standards such as HIPERLAN2 (High Performance
Local Area Network) and IEEE 802.11a and IEEE 802.11g have emerged to support IP-based
services. Such systems are based on OFDM and are designed to operate in the 5 GHz band [1].
OFDM is a special case of multi-carrier modulation. Multi-carrier modulation is the concept of
splitting a signal into a number of signals, modulating each of these new signals to several
frequency channels, and combining the data received on the multiple channels at the receiver [2].
In OFDM, the multiple frequency channels, known as sub-carriers, are orthogonal to each other
[3].
A well known problem of OFDM, however, is its sensitivity to frequency offset between the
transmitted and received signals, which may be caused by Doppler shift in the channel, or by the
difference between the transmitter and receiver local oscillator frequencies. This carrier
frequency offset causes loss of orthogonality between sub-carriers and the signals transmitted on
each carrier are not independent of each other, leading to inter-carrier interference (ICI) [4].
Researchers have proposed various methods to combat the ICI in OFDM systems. The existing
approaches that have been developed to reduce ICI can be categorized as frequency-domain
equalization [5, 6], time-domain windowing [7], and the ICI self-cancellation (SC) scheme [8].
In addition, statistical approaches have also been explored to estimate and cancel ICI [9].
In this project, the effects of ICI have been analyzed and three solutions to combat ICI have been
presented. The first method is a self-cancellation scheme, in which redundant data is transmitted
onto adjacent sub-carriers such that the ICI between adjacent sub-carriers cancels out at the
receiver. The other two techniques, maximum likelihood (ML) estimation and the extended
Kalman filter (EKF) method, statistically estimate the frequency offset and correct the offset
using the estimated value at the receiver.
This report is organized as follows. Section 2 describes the standard OFDM system. In section 3,
the concept of ICI is analytically developed. Sections 4, 5, and 6, describe the SC, ML
estimation, and EKF methods respectively. Section 7 provides a comparison of these techniques
in terms of bandwidth efficiency and BER performance.
2. OFDM SYSTEM DESCRIPTION
In an OFDM system, the input bit stream is multiplexed into N symbol streams, each with
symbol period Ts , and each symbol stream is used to modulate parallel, synchronous sub-carriers
[10]. The sub-carriers are spaced by 1 / NTs in frequency, thus they are orthogonal over the
interval (0,Ts ).
A typical discrete-time baseband OFDM transceiver system is shown in Figure 2.1. First, a
serial-to-parallel (S/P) converter groups the stream of input bits from the source encoder into

groups of log2M bits, where M is the alphabet of size of the digital modulation scheme employed
on each sub-carrier. A total of N such symbols, Xm, are created. Then, the N symbols are mapped
to bins of an inverse fast Fourier transform (IFFT). These IFFT bins correspond to the orthogonal
sub-carriers in the OFDM symbol. Therefore, the OFDM symbol can be expressed as
x ( n) =

1
N

N 1

X me

2nm
N

(2.1)

m=0

where the Xms are the baseband symbols on each sub-carrier. The digital-to-analog (D/A)
converter then creates an analog time-domain signal which is transmitted through the channel.

Figure 2.1: Baseband OFDM transceiver system

At the receiver, the signal is converted back to a discrete N point sequence y(n), corresponding to
each sub-carrier. This discrete signal is demodulated using an N-point fast Fourier transform
(FFT) operation at the receiver. The demodulated symbol stream is given by:
N 1

Y ( m) = y ( n )e

j 2nm
N

+ W ( m)

(2.2)

n=0

where, W(m) corresponds to the FFT of the samples of w(n), which is the Additive White
Gaussian Noise (AWGN) introduced in the channel.
The high speed data rates for OFDM are accomplished by the simultaneous transmission of data
at a lower rate on each of the orthogonal sub-carriers. Because of the low data rate transmission,
distortion in the received signal induced by multi-path delay in the channel is not as significant
as compared to single-carrier high-data rate systems. For example, a narrowband signal sent at a
high data rate through a multipath channel will experience greater negative effects of the
multipath delay spread, because the symbols are much closer together [3]. Multipath distortion
can also cause inter-symbol interference (ISI) where adjacent symbols overlap with each other.
This is prevented in OFDM by the insertion of a cyclic prefix between successive OFDM

symbols. This cyclic prefix is discarded at the receiver to cancel out ISI. It is due to the
robustness of OFDM to ISI and multipath distortion that it has been considered for various
wireless applications and standards.
3. ANALYSIS OF INTER-CARRIER INTERFERENCE
The main disadvantage of OFDM, however, is its susceptibility to small differences in frequency
at the transmitter and receiver, normally referred to as frequency offset. This frequency offset
can be caused by Doppler shift due to relative motion between the transmitter and receiver, or by
differences between the frequencies of the local oscillators at the transmitter and receiver. In this
project, the frequency offset is modeled as a multiplicative factor introduced in the channel, as
shown in Figure 3.1.
exp(j2n/N)
w(n)
IFFT

X(m)

y(n)

x(n)

Figure 3.1: Frequency Offset Model

The received signal is given by,


y ( n ) = x ( n )e

j 2n
N

+ w(n)

(3.1)

where is the normalized frequency offset, and is given by fNTs. f is the frequency difference
between the transmitted and received carrier frequencies and Ts is the subcarrier symbol period.
w(n) is the AWGN introduced in the channel.
The effect of this frequency offset on the received symbol stream can be understood by
considering the received symbol Y(k) on the kth sub-carrier.

Y ( k ) = X ( k ) S (0) +

N -1

X ( l ) S (l k ) + n

l = 0, l k

(3.2)

k = 0,1,.... N 1
where N is the total number of subcarriers, X(k) is the transmitted symbol (M-ary phase-shift
keying (M-PSK), for example) for the kth subcarrier, nk is the FFT of w(n), and S(l-k) are the
complex coefficients for the ICI components in the received signal. The ICI components are the
interfering signals transmitted on sub-carriers other than the kth sub-carrier. The complex
coefficients are given by

S(l - k) =

sin( (l + k))
1
exp(j (1 )(l + k))
N sin( (l + k) / N)
N

(3.3)

A detailed derivation of (3.2) and (3.3) from (3.1) and (2.2) is given in Appendix B.
To analyze the effect of ICI on the received signal, we consider a system with N=16 carriers. The
frequency offset values used are 0.2 and 0.4, and l is taken as 0, that is, we are analyzing the
signal received at the sub-carrier with index 0. The complex ICI coefficients S(l-k) are plotted for
all sub-carrier indices in Figure 3.2.
1

= 0.2
= 0.4

0.9
0.8
0.7
0.6
)|
k(l
S|

0.5
0.4
0.3
0.2
0.1
0

10

15

Subcarrier index k

Figure 3.2: ICI Coefficients for N=16 Carriers

This figure shows that for a larger , the weight of the desired signal component, S(0), decreases,
while the weights of the ICI components increases. The authors also notice that the adjacent
carrier has the maximum contribution to the ICI. This fact is used in the ICI self-cancellation
technique described in Section 4.
The carrier-to-interference ratio (CIR) is the ratio of the signal power to the power in the
interference components. It serves as a good indication of signal quality. It has been derived
from (3.2) in [8] and is given below. The derivation assumes that the standard transmitted data
has zero mean and the symbols transmitted on the different sub-carriers are statistically
independent.
CIR =

| S ( k ) |2
N 1

| S (l k ) |
l =0
l k

=
2

| S (0) |2
N 1

| S (l ) |
l =0

(3.4)

4. ICI SELF-CANCELLATION SCHEME


ICI self-cancellation is a scheme that was introduced by Yuping Zhao and Sven-Gustav
Hggman in 2001 in [8] to combat and suppress ICI in OFDM. Succinctly, the main idea is to
modulate the input data symbol onto a group of subcarriers with predefined coefficients such that
the generated ICI signals within that group cancel each other, hence the name self- cancellation.
4.1 ICI Canceling Modulation
The ICI self-cancellation scheme requires that the transmitted signals be constrained such
that X (1) = X (0) , X (3) = X (2) , , X ( N 1) = X ( N 2) . Using (3.3), this assignment of
transmitted symbols allows the received signal on subcarriers k and k + 1 to be written as

Y' ( k ) =

N -2

X ( l )[ S (l k ) S (l + 1 k )] + n

l =0
l = even

Y' ( k + 1) =

(4.1)

N -2

X ( l )[ S (l k 1) S (l k )] + n

l =0
l = even

k +1

and the ICI coefficient S(l-k) is denoted as [8]


S ' (l k ) = S (l k ) S (l + 1 k ).

(4.2)

Figure 4.1 shows a comparison between |S(l-k)| and |S(l-k)| on a logarithmic scale. It is seen that
|S(l-k)| << |S(l-k)| for most of the l-k values. Hence, the ICI components are much smaller in
(4.2) than they are in (3.3). Also, the total number of interference signals is halved in (4.2) as
opposed to (3.3) since only the even subcarriers are involved in the summation.
0

|S(l-k)|
|S` (l-k)|

-10

|S``(l-k)|

-20

-30
B
d

-40

-50

-60

-70

10

20

30
40
Subcarrier index k

50

60

Figure 4.1: Comparison of |S(l-k)|, |S`(l-k)|, and |S``(l-k)| for N = 64 and = 0.4

4.2 ICI Canceling Demodulation


ICI modulation introduces redundancy in the received signal since each pair of subcarriers
transmit only one data symbol. This redundancy can be exploited to improve the system power
performance, while it surely decreases the bandwidth efficiency. To take advantage of this
redundancy, the received signal at the (k + 1)th subcarrier, where k is even, is subtracted from the
kth subcarrier. This is expressed mathematically as

Y' ' ( k ) = Y ' ( k ) Y ' ( k + 1)


=

N-2

X (l )[ S (l k 1) + 2S (l k ) S (l k + 1)]

(4.3)

l =0
l = even

+ nk nk +1 .
Subsequently, the ICI coefficients for this received signal becomes
S ' ' (l k ) = S (l k 1) + 2S (l k ) S (l k + 1).

(4.4)

When compared to the two previous ICI coefficients |S(l-k)| for the standard OFDM system and
|S(l-k)| for the ICI canceling modulation, |S(l-k)| has the smallest ICI coefficients, for the
majority of l-k values, followed by |S(l-k)| and |S(l-k)|. This is shown in Figure 4.1 for N = 64
and = 0.4. The combined modulation and demodulation method is called the ICI selfcancellation scheme.
The reduction of the ICI signal levels in the ICI self-cancellation scheme leads to a higher CIR.
From (4.4), the theoretical CIR can be derived as
CIR =

| S (1) + 2 S (0) S (1) |2


N 1

| S (l 1) + 2S (l ) S (l + 1) |2

(4.5)

l = 2 , 4 , 6 ,...

Figure 4.2 below shows the comparison of the theoretical CIR curve of the ICI self-cancellation
scheme, calculated by (4.5), and the CIR of a standard OFDM system calculated by (3.3). As
expected, the CIR is greatly improved using the ICI self-cancellation scheme. The improvement
can be greater than 15 dB for 0 < < 0.5.
As mentioned above, the redundancy in this scheme reduces the bandwidth efficiency by half.
This could be compensated by transmitting signals of larger alphabet size. Using the theoretical
results for the improvement of the CIR should increase the power efficiency in the system and
gives better results for the BER. Hence, there is a tradeoff between bandwidth and power
tradeoff in the ICI self-cancellation scheme.

60
Standard OFDM system
ICI Theory
50

40

)
B
d(
RI
C

30

20

10

-10

0.05

0.1

0.15
0.2
0.25
0.3
0.35
Normalized Frequency Offset

0.4

0.45

0.5

Figure 4.2: CIR versus for a standard OFDM system

5. MAXIMUM LIKELIHOOD ESTIMATION

The second method for frequency offset correction in OFDM systems was suggested by Moose
in [9]. In this approach, the frequency offset is first statistically estimated using a maximum
likelihood algorithm and then cancelled at the receiver. This technique involves the replication of
an OFDM symbol before transmission and comparison of the phases of each of the subcarriers
between the successive symbols.
When an OFDM symbol of sequence length N is replicated, the receiver receives, in the absence
of noise, the 2N point sequence {r (n)} given by

1 K
X (k ) H (k )e j 2n ( k + ) / N

N k = K

k = 0,1,...N 1 , N 2 K + 1

r ( n) =

(5.1)

where {X (k )} are the 2 K + 1 complex modulation values used to modulate 2 K + 1 subcarriers,


H (k ) is the channel transfer function for the kth carrier and is the normalized frequency offset
of the channel.

The first set of N symbols is demodulated using an N-point FFT to yield the sequence R1 (k ) , and
the second set is demodulated using another N-point FFT to yield the sequence R2 (k ) . The
frequency offset is the phase difference between R1 (k ) and R2 (k ) , that is R2 (k ) = R1 (k )e j 2 .

Adding the AWGN yields


Y1 (k ) = R1 (k ) + W1 (k )
Y2 (k ) = R1 (k )e j 2 + W2 (k )

(5.2)

k = 0,1,...N 1
The maximum likelihood estimate of the normalized frequency offset is given by:

*
(
Im[
Y
(
k
)
Y
(
k
)])

2
1

= ( ) tan 1 k =K K

2
( Re[Y2 ( k )Y1* ( k )])
k = K

(5.3)

This maximum likelihood estimate is a conditionally unbiased estimate of the frequency offset
and was computed using the received data [7]. Once the frequency offset is known, the ICI
distortion in the data symbols is reduced by multiplying the received symbols with a complex
conjugate of the frequency shift and applying the FFT,
x (n) = FFT { y (n)e

2n
N

}.

(5.4)

From Figure 5.1, it can be seen that the results of the maximum likelihood estimation of the
frequency offset are quite accurate over a varying range of SNR values.

Figure 5.1: Actual vs ML estimation of frequency offset for various values of Eb/No

6. EXTENDED KALMAN FILTERING

Kalman filters are common in communications and signal processing literature. The Kalman
filter is a remarkably versatile and powerful recursive estimation algorithm that has found
various applications in communications, such as adaptive equalization of telephone channels,
adaptive equalization of fading dispersive channels, and adaptive antenna arrays. As a recursive
filter, it is particularly applicable to non-stationary processes such as signals transmitted in a
time-variant radio channel. In estimating non-stationary processes, the Kalman filter computes
estimates of its own performance as part of the recursion and use this information to update the
estimate at each step. Therefore, the estimation procedure is adjusted to the time-variant
statistical characteristics of the random process.
6.1 Problem Formulation
A state-space model of the discrete Kalman filter is defined as

z ( n) = a ( n) d ( n ) + v ( n)

(6.1)

In this model, the observation z(n) has a linear relationship with the desired value d(n). By using
the discrete Kalman filter, d(n) can be recursively estimated based on the observation of z(n) and
the updated estimation in each recursion is optimum in the minimum mean square sense.
As illustrated in Figure 3.1, the received symbols are
y ( n) = x ( n)e

2 n ( n )
N

+ w(n)

(6.2)

It is obvious that the observation y(n) is in a nonlinear relationship with the desired value (n) ,
i.e.
y (n) = f ((n)) + w(n)

(6.3)

where
f ((n)) = x(n)e

2 n ( n )
N

(6.4)

In order to estimate (n) efficiently in computation, we build an approximate linear relationship


using the first-order Taylors expansion:
y (n) f ( (n 1)) + f ' ( (n 1))[(n) (n 1)] + w(n)

where (n 1) is the estimation of (n 1) .

(6.5)

2 n ( n 1)
j
f ((n))
2n
= j
f ' ( (n 1)) =
x ( n)e N
(n) ( n ) = ) ( n 1)
N

(6.6)

Define
z (n) = y (n) f ( (n 1))
d (n) = (n) (n 1)

(6.7)

and the following relationship:


z (n) = f ' ((n 1))d (n) + w(n)

(6.8)

which has the same form as (6.1), i.e., z(n) is linearly related to d(n). Hence the normalized
frequency offset (n) can be estimated in a recursive procedure similar to the discrete Kalman
filter. As linear approximation is involved in the derivation, the filter is called the extended
Kalman filter (EKF). The derivation of the EKF is omitted in this report for the sake of brevity.
The EKF provides a trajectory of estimation for (n) . The error in each update decreases and the
estimate becomes closer to the ideal value during iterations. It is noted that the actual error in
each recursion between (n) and (n) does not strictly obey (6.8). Thus there is no guarantee of
optimal MMSE estimates in the EKF scheme. However it has been proven that EKF is a very
useful method of obtaining good estimates of the system state. Hence this has motivated us to
explore the performance of EKF in ICI cancellation in an OFDM system.
6.2 Assumptions
In the following estimation using the EKF, it is assumed that the channel is slowly time varying
so that the time-variant channel impulse response can be approximated to be quasi-static during
the transmission of one OFDM frame. Hence the frequency offset is considered to be constant
during a frame. The preamble preceding each frame can thus be utilized as a training sequence
for estimation of the frequency offset imposed on the symbols in this frame. Furthermore, in our
estimation, the channel is assumed to be flat-fading and ideal channel estimation is available at
the receiver. Therefore in our derivation and simulation, the one-tap equalization is temporarily
suppressed.
6.3 ICI Cancellation
There are two stages in the EKF scheme to mitigate the ICI effect: the offset estimation scheme
and the offset correction scheme.

6.3.1. Offset Estimation Scheme


To estimate the quantity (n) using an EKF in each OFDM frame, the state equation is built as
(n) = (n 1)

(6.9)

i.e., in this case we are estimating an unknown constant . This constant is distorted by a nonstationary process x(n), an observation of which is the preamble symbols preceding the data
symbols in the frame. The observation equation is
y ( n) = x ( n)e

2 n ( n )
N

+ w(n)

(6.10)

where y(n) denotes the received preamble symbols distorted in the channel, w(n) the AWGN, and
x(n) the IFFT of the preambles X(k) that are transmitted, which are known at the receiver.
Assume there are Np preambles preceding the data symbols in each frame are used as a training
sequence and the variance 2 of the AWGN w(n) is stationary. The computation procedure is
described as follows.
1. Initialize the estimate (0) and corresponding state error P(0).
2. Compute the H(n), the derivative of y(n) with respect to (n) at (n 1) , the estimate
obtained in the previous iteration.
3. Compute the time-varying Kalman gain K(n) using the error variance P(n-1), H(n), and
2 ,
4. Compute the estimate y (n) using x(n) and (n 1) , i.e. based on the observations up to
time n-1, compute the error between the true observation y(n) and y (n) .
5. Update the estimate (n) by adding the K(n)-weighted error between the observation y(n)
and y (n) to the previous estimation (n 1) .
6. Compute the state error P(n) with the Kalman gain K(n), H(n), and the previous error
P(n-1).
7. If n is less than Np, increment n by 1 and go to step 2; otherwise stop.
It is observed that the actual errors of the estimation (n) from the ideal value (n) are computed
in each step and are used for adjustment of estimation in the next step.
The pseudo code of computation is summarized in Figure 6.1.
Initialize P(n) , (0) .
For n=1, 2, Np compute
y ( x)
i 2n j 2 n 'N( n 1)
=
H ( n) =
e
x ( n)
x x = ( n )
N
K (n) = P(n 1) H * (n)[ P(n 1) + 2 ] 1
(n) = (n 1) + Re{K (n)[ y (n) x(n)e
P (n) = [1 K (n) H (n)]P(n 1)

2 n ' ( n 1)
N

Figure 6.1: Pseudo Code for EKF

]}

Through the recursive iteration procedure described above, an estimate of the frequency offset
can be obtained. Figure 6.2 shows the estimates for various normalized frequency offsets . It is
observed that the EKF technique offers fast convergence.

Figure 6.2: Recursive estimation of the normalized frequency offset , SNR = 20 dB.

6.3.2. Offset Correction Scheme


The ICI distortion in the data symbols x(n) that follow the training sequence can then be
mitigated by multiplying the received data symbols y(n) with a complex conjugate of the
estimated frequency offset and applying FFT, i.e.
x (n) = FFT { y (n)e

2 n '
N

(6.11)

As the estimation of the frequency offset by the EKF scheme is pretty efficient and accurate, it is
expected that the performance will be mainly influenced by the variation of the AWGN.
7. COMPARISON

In order to compare the three different cancellation schemes, BER curves were used to evaluate
the performance of each scheme. For the simulations in this project, MATLAB was employed
with its Communications Toolbox for all data runs. The OFDM transceiver system was
implemented as specified by Figure 2.1. Frequency offset was introduced as the phase rotation as
given by (3.1). Modulation schemes of binary phase shift keying (BPSK) and 4-ary quadrature
amplitude modulation (QAM) were chosen as they are used in many standards such as 802.11a.
Simulations for cases of normalized frequency offsets equal to 0.05, 0.15, and 0.30 are given in
Figure 7.1.

Figure 7.1: BER performance of a standard OFDM system without ICI cancellation.

These results show that degradation of performance increases with frequency offset. For the case
of BPSK, even severe frequency offset of 0.30 does not deteriorate the performance too greatly.
However, for QAM with an alphabet of size 2, performance degrades more quickly. When
frequency offset is small, the 4-QAM system has a lower BER than the BPSK system. But the
BER of 4-QAM varies more dramatically with the increase the frequency offset than that of
BPSK. Therefore it is concluded that larger alphabet sizes are more sensitive to ICI.
Figures 7.2-7.4 provide comparisons of the performance of the SC, ML and EKF schemes for
different alphabet sizes and different values of the frequency offset.

Figure 7.2: BER Performance with ICI Cancellation, =0.05

Figure 7.3: BER Performance with ICI Cancellation, =0.15

Figure 7.4: BER Performance with ICI Cancellation, =0.30

It is observed in the figures that each method has its own advantages. In the presence of small
frequency offset and binary alphabet size, self cancellation gives the best results. However, for
larger alphabet sizes and larger frequency offset such as 4-QAM and frequency offset of 0.30,
self cancellation does not offer much increase in performance. The maximum likelihood method
gives the best overall results. The Kalman filter method indicates that for very small frequency
offset, it does not perform very well, as it hardly improves BER. However, for high frequency
offset the Kalman filter does perform extremely well. It gives a significant boost to performance.
Tables 7.1 and 7.2 summarize required values of SNR for BER specified at 10-2. Significant
gains in performance can be achieved using the ML and EKF methods for a large frequency
offset.

Method
None
SC
ML
EKF

= 0.05
23 dB
18 dB
18 dB
22.5 dB

Gain

5 dB
5 dB
0.5 dB

= 0.15
23 dB
18 dB
18 dB
22dB

Gain

5 dB
5 dB
1 dB

= 0.30
26 dB
20.5 dB
20 dB
23 dB

Gain

5.5 dB
6 dB
3 dB

Table 7.1: Required SNR and improvement for BER of 10-2 for BPSK

Method
None
SC
ML
EKF

= 0.05
20 dB
20 dB
17 dB
20 dB

Gain

0 dB
3 dB
0 dB

= 0.15
23 dB
22 dB
17 dB
20 dB

Gain

1 dB
6 dB
3 dB

= 0.30
40 dB
27 dB
19.5 dB
20 dB

Gain

13 dB
20.5 dB
20 dB

Table 7.2: Required SNR and improvement for BER of 10-2 for 4-QAM

For small alphabet sizes (BPSK) and for low frequency offset values, the SC and ML techniques
have good performance in terms of BER. However, for higher order modulation schemes, the
EKF and ML techniques perform better. This is attributed to the fact that the ML and EKF
methods estimate the frequency offset very accurately and cancel the offset using this estimated
value. However, the self-cancellation technique does not completely cancel the ICI from adjacent
sub-carriers, and the effect of this residual ICI increases for larger alphabet sizes and offset
values.
8. CONCLUSION

In this project, the performance of OFDM systems in the presence of frequency offset between
the transmitter and the receiver has been studied in terms of the Carrier-to-Interference ratio
(CIR) and the bit error rate (BER) performance. Inter-carrier interference (ICI) which results
from the frequency offset degrades the performance of the OFDM system.
Three methods were explored in this project for mitigation of the ICI. The ICI self-cancellation
(SC) and the maximum likelihood (ML) estimation techniques were proposed in previous
publications [8, 9]. The extended Kalman filtering (EKF) method for estimation and cancellation
of the frequency offset has been investigated in this project, and compared with these two
existing techniques.
The choice of which method to employ depends on the specific application. For example, self
cancellation does not require very complex hardware or software for implementation. However,
it is not bandwidth efficient as there is a redundancy of 2 for each carrier. The ML method also
introduces the same level of redundancy but provides better BER performance, since it
accurately estimates the frequency offset. Its implementation is more complex than the SC
method. On the other hand, the EKF method does not reduce bandwidth efficiency as the
frequency offset can be estimated from the preamble of the data sequence in each OFDM frame.

However, it has the most complex implementation of the three methods. In addition, this method
requires a training sequence to be sent before the data symbols for estimation of the frequency
offset. It can be adopted for the receiver design for IEEE 802.11a because this standard specifies
preambles for every OFDM frame. The preambles are used as the training sequence for
estimation of the frequency offset.
In this project, the simulations were performed in an AWGN channel. This model can be easily
adapted to a flat-fading channel with perfect channel estimation. Further work can be done by
performing simulations to investigate the performance of these ICI cancellation schemes in
multipath fading channels without perfect channel information at the receiver. In this case, the
multipath fading may hamper the performance of these ICI cancellation schemes.

9. REFERENCES
[1] B. G. Evans and K. Baughan, Vision of 4G, Electronics & Communication Engineering Journal,
vol. 12, no. 6, pp. 293 303, December 2000.
[2] White Paper: High-speed wireless OFDM communication systems, Wi-LAN Inc., February 2001.
[3] CommsDesign Enabling fast wireless networks with OFDM, http://www.commsdesign.com/
story/OEG20010122S0078, Accessed May 1, 2003
[4] J. Armstrong, Analysis of new and existing methods of reducing intercarrier interference due to
carrier frequency offset in OFDM, IEEE Transactions on Communications, vol. 47, no. 3, pp. 365
369, March 1999.
[5] N. Al-Dhahir and J. M. Cioffi, Optimum finite-length equalization for multicarrier transceivers,
IEEE Transactions on Communications, vol. 44, no. 1, pp. 56 64, January 1996.
[6] W. G. Jeon, et al, An equalization technique for orthogonal frequency-division multiplexing
systems in time-variant multipath channels, IEEE Transactions on Communications, vol. 47, no. 1,
pp. 27 32, July 2001.
[7] C. Muschallik, Improving an OFDM reception using an adaptive Nyquist windowing, IEEE
Transactions on Consumer Electronics, vol. 42, no. 3, pp. 259 269, August 1996.
[8] Y. Zhao and S. Hggman, Intercarrier interference self-cancellation scheme for OFDM mobile
communication systems, IEEE Transactions on Communications, vol. 49, no. 7, pp. 1185 1191,
July 2001.
[9] P. H. Moose, A Technique for Orthogonal Frequency Division Multiplexing Frequency Offset
Correction, IEEE Transactions on Communications, vol. 42, no. 10, October 1994.
[10] R. E. Ziemer, R. L. Peterson, Introduction to Digital Communications, 2nd edition, Prentice Hall,
2002.

APPENDIX A Matlab Code


File: sici.m
This generates theoretical CIR plots
ep1 = .2;
ep2 = .4;
N = 16;
n = (0:N-1);
S1 = sin(pi*(-n+ep1))./(N*sin(pi/N*(ep1-n))).*exp(j*pi*(1-1/N)*(ep1-n));
S2 = sin(pi*(-n+ep2))./(N*sin(pi/N*(ep2-n))).*exp(j*pi*(1-1/N)*(ep2-n));
subplot(2,2,1)
plot(n,abs(S1),'*')
xlabel('Subcarrier index k')
ylabel('|S(l-k)|')
hold on
plot(n,abs(S2),'o')
axis([0 N-1 0 1.1*max([abs(S1) abs(S2)])])
subplot(2,2,2)
plot(n,real(S1),'*')
xlabel('Subcarrier index k')
ylabel('Real(S(l-k))')
hold on
plot(n,real(S2),'o')
axis([0 N-1 1.1*min([real(S1) real(S2)]) 1.1*max([real(S1) real(S2)])])
subplot(2,2,3)
plot(n,imag(S1),'*')
xlabel('Subcarrier index k')
ylabel('Imag(S(l-k))')
hold on
plot(n,imag(S2),'o')
axis([0 N-1 1.1*min([imag(S1) imag(S2)]) 1.1*max([imag(S1) imag(S2)])])
N = 64;
n = (0:N-1);
ep = 0.2;
figure
S = sin(pi*(-n+ep))./(N*sin(pi/N*(ep-n))).*exp(j*pi*(1-1/N)*(ep-n));
Sp1 = sin(pi*(-n+ep+1))./(N*sin(pi/N*(ep-n+1))).*exp(j*pi*(1-1/N)*(ep-n+1));
Sp2 = sin(pi*(-n+ep-1))./(N*sin(pi/N*(ep-n-1))).*exp(j*pi*(1-1/N)*(ep-n-1));
Sp = S - Sp1;
Spp = -Sp2-Sp1+2*S;
plot(n, 10*log10(abs(S)),'-.')
hold on
plot(n, 10*log10(abs(Sp)),'--')
plot(n, 10*log10(abs(Spp)))
axis([0 N-1 -70 0])
legend('|S(l-k)|', '|S^`(l-k)|','|S^`^`(l-k)|')
xlabel('Subcarrier index k')
ylabel('dB')
title('Comparrison of |S(l-k)|, |S^`(l-k)|, and |S^`^`(l-k)| for \epsilon = 0.2 and N = 64');
ep = linspace(0,.5, 100);
for i = 1:100
S = sin(pi*(-n+ep(i)))./(N*sin(pi/N*(ep(i)-n))).*exp(j*pi*(1-1/N)*(ep(i)-n));

CIR(i) = abs(S(1))^2/sum(abs(S(2:N)).^2);
end
for i = 1:100
S_0 = sin(pi*(ep(i)))./(N*sin(pi/N*(ep(i)))).*exp(j*pi*(1-1/N)*(ep(i)));
S_1 = sin(pi*(-1+ep(i)))./(N*sin(pi/N*(ep(i)-1))).*exp(j*pi*(1-1/N)*(ep(i)-1));
S_2 = sin(pi*(1+ep(i)))./(N*sin(pi/N*(ep(i)+1))).*exp(j*pi*(1-1/N)*(ep(i)+1));
Stt = 0;
for l = 2:2:N-1
St
=
-sin(pi*(l-1+ep(i)))./(N*sin(pi/N*(ep(i)+l-1))).*exp(j*pi*(1-1/N)*(ep(i)+l1))+2*sin(pi*(l+ep(i)))./(N*sin(pi/N*(ep(i)+l))).*exp(j*pi*(1-1/N)*(ep(i)+l))-sin(pi*(l+1+ep(i)))./(N*sin(pi/N*(ep(i)+l+1))).*exp(j*pi*(11/N)*(ep(i)+l+1));
Stt = abs(St).^2 + Stt;
end
CIR_SC(i) = abs(-S_1-S_2+2*S_0).^2/Stt;
end

figure
plot(ep, 10*log10(CIR+eps),'--')
hold on
plot(ep, 10*log10(CIR_SC+eps))
xlabel('Normalized Frequency Offset \epsilon')
ylabel('CIR (dB)')
title('CIR versus \epsilon for a standard OFDM system')
legend('Standard OFDM system', 'ICI Theory');

File: run_all.m
This file runs all the standard and self-cancellation simulators for various values of epislon
clc;
clear all;
close all;
% OFDM Simulator
% Using Communications Toolbox
% USER DEFINED PARAMETERS
% NORMALIZED DOPPLER SHIFT
ep = [0 .15 .3];
% Es/No
EbNo=1:15;
% NS = number of OFDM symbols to transmit
NS = 100;
% Modulation type
modulation = 'qask';
M=2
% N = number of carriers in OFDM symbol
N = 52;
% BPS = number of bits per OFDM symbol
BPS = N*log2(M);
% index for carriers in OFDM symbol
% don't use DC component
carriers = (1:52) + 2;
% IFFT size
ifftsize = 64;
% RUN QAM2
final_simulator;
BERqam2 = BER;
save BERqam2 BERqam2
clear BER;
% QAM 4
M=4
BPS = N*log2(M);
clear BER;
final_simulator;
BERqam4 = BER;
save BERqam4 BERqam4
% QAM 16
M = 16
BPS = N*log2(M);
clear BER;
final_simulator;
BERqam16 = BER;
save BERqam16 BERqam16
% QAM 64
M = 64
BPS = N*log2(M);
clear BER;

final_simulator;
BERqam64 = BER;
save BERqam64 BERqam64

subplot(2,2,1)
semilogy(EbNo, BERqam2(1,:))
hold on
semilogy(EbNo, BERqam2(2,:),'.-')
semilogy(EbNo, BERqam2(3,:),'*-')
title('QAM-2')
xlabel('E_b/N_o')
ylabel('BER')
grid on
subplot(2,2,2)
semilogy(EbNo, BERqam4(1,:))
hold on
semilogy(EbNo, BERqam4(2,:),'.-')
semilogy(EbNo, BERqam4(3,:),'*-')
title('QAM-4')
xlabel('E_b/N_o')
ylabel('BER')
grid on
subplot(2,2,3)
semilogy(EbNo, BERqam16(1,:))
hold on
semilogy(EbNo, BERqam16(2,:),'.-')
semilogy(EbNo, BERqam16(3,:),'*-')
title('QAM-16')
xlabel('E_b/N_o')
ylabel('BER')
grid on
%
subplot(2,2,4)
semilogy(EbNo, BERqam64(1,:))
hold on
semilogy(EbNo, BERqam64(2,:),'.-')
semilogy(EbNo, BERqam64(3,:),'*-')
title('QAM-64')
xlabel('E_b/N_o')
ylabel('BER')
grid on
%
clear input_bit_stream output_bit_stream;
figure
M = 2;
BPS = N*log2(M);
% RUN QAM2
final_simulator_sc;
BERqam2sc = BER;
save BERqam2sc BERqam2sc
clear BER;
% QAM 4
M=4
BPS = N*log2(M);
clear BER;
clear input_bit_stream output_bit_stream;
final_simulator_sc;
BERqam4sc = BER;
save BERqam4sc BERqam4sc

% QAM 16
M = 16
BPS = N*log2(M);
clear input_bit_stream output_bit_stream;
clear BER;
final_simulator_sc;
BERqam16sc = BER;
save BERqam16sc BERqam16sc
% QAM 64
M = 64
BPS = N*log2(M);
clear input_bit_stream output_bit_stream;
clear BER;
final_simulator_sc;
BERqam64sc = BER;
save BERqam64sc BERqam64sc
subplot(2,2,1)
semilogy(EbNo, BERqam2sc(1,:))
hold on
semilogy(EbNo, BERqam2sc(2,:),'.-')
semilogy(EbNo, BERqam2sc(3,:),'*-')
title('QAM-2')
xlabel('E_b/N_o')
ylabel('BER')
grid on
subplot(2,2,2)
semilogy(EbNo, BERqam4sc(1,:))
hold on
semilogy(EbNo, BERqam4sc(2,:),'.-')
semilogy(EbNo, BERqam4sc(3,:),'*-')
title('QAM-4')
xlabel('E_b/N_o')
ylabel('BER')
grid on
subplot(2,2,3)
semilogy(EbNo, BERqam16sc(1,:))
hold on
semilogy(EbNo, BERqam16sc(2,:),'.-')
semilogy(EbNo, BERqam16sc(3,:),'*-')
title('QAM-16')
xlabel('E_b/N_o')
ylabel('BER')
grid on
%
subplot(2,2,4)
semilogy(EbNo, BERqam64sc(1,:))
hold on
semilogy(EbNo, BERqam64sc(2,:),'.-')
semilogy(EbNo, BERqam64sc(3,:),'*-')
title('QAM-64')
xlabel('E_b/N_o')
ylabel('BER')
grid on
figure
subplot(2,2,1)
semilogy(EbNo, BERqam2(1,:))
hold on
semilogy(EbNo, BERqam2(2,:),'.-')
semilogy(EbNo, BERqam2(3,:),'*-')
title('QAM-2')
xlabel('E_b/N_o')
ylabel('BER')

grid on
subplot(2,2,2)
semilogy(EbNo, BERqam2sc(1,:))
hold on
semilogy(EbNo, BERqam2sc(2,:),'.-')
semilogy(EbNo, BERqam2sc(3,:),'*-')
title('QAM-2 ICI')
xlabel('E_b/N_o')
ylabel('BER')
grid on
subplot(2,2,3)
semilogy(EbNo, BERqam2(2,:))
hold on
semilogy(EbNo, BERqam2sc(2,:),'r*-')
title('QAM-2 \epsilon = .15')
xlabel('E_b/N_o')
ylabel('BER')
grid on
%
subplot(2,2,4)
semilogy(EbNo, BERqam2(3,:))
hold on
semilogy(EbNo, BERqam2sc(3,:),'r*-')
title('QAM-2 \epsilon = .3')
xlabel('E_b/N_o')
ylabel('BER')
grid on

FILE: final_simulator.m
This is a standard ofdm simulator
% Input Bit Stream is normally Distributed
input_bit_stream = sign(randn(1,BPS*NS));
input_bit_stream(input_bit_stream == -1) = 0;
% PERFORM SERIAL TO PARALLEL CONVERSION
% work on whole data stream at once
disp('Serial to Parallerl Conversion')
parallel_data = StoP(input_bit_stream, log2(M));
% PERFORM MODULATION
% using indicated modulation type and M-ary alphabet
disp(['Modulating with ' modulation ' and ' num2str(M) '-ary Alphabet'])
modulated_data = dmodce(parallel_data, 1, 1, modulation, M);
% CREATE OFDM SYMBOLS
disp('Transmitting OFDM symbols')
%Normalize
%modulated_data = (modulated_data/max(abs(modulated_data)));
for ll= 1:length(ep)
for l=1:length(EsNo)
k = 1;
for n = 1:NS
ofdm_symbol = zeros(1,ifftsize);
% Map modulated data to FFT bins in OFDM symbol
ofdm_symbol(carriers) = modulated_data(k:k+51);
% Time Signal to transmit
tx_signal = ifft(ofdm_symbol,ifftsize);
% DOPPLER SHIFT
rx_signal = tx_signal.*exp((j*pi*ep(ll)/ifftsize)*(0:ifftsize-1));
noise = sqrt(1/(2*log2(M)*10^(EsNo(l)/10)))*(randn(1,64)+j*randn(1,64));
rx_signal = rx_signal + noise;
% FFT
received_ofdm = fft(rx_signal, ifftsize);
% Extract data from carriers in OFDM symbol
received_symbols(k:k+51) = received_ofdm(carriers);
k = k + 52;
end
% PERFROM DEMODULATION
disp('Performing Demodulation')
received_data = ddemodce(received_symbols, 1, 1, modulation, M);
%PERFORM PARALLEL TO SERIAL CONVERSION
disp('Performing Parallel to Serial Converion')
output_bit_stream = PtoS(received_data, log2(M));
% CALCULATE BER
disp('Calculating BER ')
BER(ll,l)= sum(xor(input_bit_stream, output_bit_stream))/length(input_bit_stream);
end
end

File: final_simulator_sc.m
This is the self_cancellation emulator
% Input Bit Stream is normally Distributed
input_bit_stream = sign(randn(1,BPS*NS));
input_bit_stream(input_bit_stream == -1) = 0;
% PERFORM SERIAL TO PARALLEL CONVERSION
% work on whole data stream at once
disp('Serial to Parallerl Conversion')
parallel_data = StoP(input_bit_stream, log2(M));
% PERFORM MODULATION
% using indicated modulation type and M-ary alphabet
disp(['Modulating with ' modulation ' and ' num2str(M) '-ary Alphabet'])
modulated_data = dmodce(parallel_data, 1, 1, modulation, M);
%modulated_data = (modulated_data/max(abs(modulated_data)));
% CREATE OFDM SYMBOLS
disp('Transmitting OFDM symbols')
odd_carriers = carriers(1:2:52);
even_carriers = carriers(2:2:52);
for ll= 1:length(ep)
for l=1:length(EsNo)
k = 1;
for n = 1:NS
ofdm_symbol1 = zeros(1,ifftsize);
ofdm_symbol2 = zeros(1,ifftsize);
% MAP to carriers
ofdm_symbol1(odd_carriers) = modulated_data(k:k+25);
ofdm_symbol1(even_carriers) = -modulated_data(k:k+25);
ofdm_symbol2(odd_carriers) = modulated_data(k+26:k+51);
ofdm_symbol2(even_carriers) = -modulated_data(k+26:k+51);
% Time Signal to transmit
tx_signal1 = (ifft(ofdm_symbol1,ifftsize));
tx_signal2 = (ifft(ofdm_symbol2,ifftsize));
% DOPPLER SHIFT
rx_signal1 = tx_signal1.*exp(j*pi*ep(ll)/ifftsize*(0:ifftsize-1));
rx_signal2 = tx_signal2.*exp(j*pi*ep(ll)/ifftsize*(0:ifftsize-1));
% ADD NOISE
rx_signal1 = awgn(rx_signal1, EsNo(l),0);
rx_signal2 = awgn(rx_signal2, EsNo(l),0);
% FFT
received_ofdm1 = fft(rx_signal1, ifftsize);
received_ofdm2 = fft(rx_signal2, ifftsize);
demod_sym1 = .5*(received_ofdm1(odd_carriers)-received_ofdm1(even_carriers));
demod_sym2 = .5*(received_ofdm2(odd_carriers)-received_ofdm2(even_carriers));
received_ofdm3 = [demod_sym1 demod_sym2];
% Extract data from carriers in OFDM symbol
received_symbols(k:k+51) = received_ofdm3;
k = k + 52;
end
% PERFROM DEMODULATION
disp('Performing Demodulation')
received_data = ddemodce(received_symbols, 1, 1, modulation, M);
%PERFORM PARALLEL TO SERIAL CONVERSION
disp('Performing Parallel to Serial Converion')
output_bit_stream = PtoS(received_data, log2(M));
% CALCULATE BER
disp('Calculating BER ')
BER(ll,l)= sum(xor(input_bit_stream, output_bit_stream))/length(input_bit_stream);
end
end

FILE: final_simulatorMLEEE.m
Maximum likelihood
% Input Bit Stream is normally Distributed
input_bit_stream = sign(randn(1,BPS*NS));
input_bit_stream(input_bit_stream == -1) = 0;
% PERFORM SERIAL TO PARALLEL CONVERSION
% work on whole data stream at once
%disp('Serial to Parallerl Conversion')
parallel_data = StoP(input_bit_stream, log2(M));
% PERFORM MODULATION
% using indicated modulation type and M-ary alphabet
%disp(['Modulating with ' modulation ' and ' num2str(M) '-ary Alphabet'])
modulated_data = dmodce(parallel_data, 1, 1, modulation, M);
% CREATE OFDM SYMBOLS
%disp('Transmitting OFDM symbols')
%SNR=EbNolin * log2(M);
for ll= 1:length(ep)
for l=1:length(EsNo)
k = 1;
noise = generateNoiseee (EsNo(l),ifftsize,NS,log2(M));
for n = 1:2*NS
ofdm_symbol = zeros(1,ifftsize);
% Map modulated data to FFT bins in OFDM symbol
ofdm_symbol(carriers(1:32)) = modulated_data(k:k+31); %Use only half the data for MLE
% Time Signal to transmit
%tx_signal = ifft(ofdm_symbol,ifftsize);
%Generate AWGN to be added
%Add noise
%ofdm_symbol_noisy = ofdm_symbol + noise (n);
%Transmission for MLE
tx_signal1 = ifft(ofdm_symbol,ifftsize/2); %Modulate using N/2 point DFT
tx_signal = [tx_signal1,tx_signal1];
%Replicate to get N point sequence
% Generate and add noise
%nois=complex(randn(1,64)/sqrt(2*EsNolin(l)),randn(1,64)/sqrt(2*EsNolin(l)));
%noise= complex(randn(1,ifftsize)/sqrt(2*SNR(l)),randn(1,ifftsize)/sqrt(2*SNR(l)));
%tx_signal=tx_signal2+ifft(noise(n),ifftsize);
rx_signal = tx_signal.*exp((2*j*pi*ep(ll)/ifftsize).*(0:ifftsize-1));

%
%

% DOPPLER SHIFT
%rx_signal = tx_signal.*exp((j*pi*ep(ll)/ifftsize)*(0:ifftsize-1));
rx_signal = tx_signal.*exp((4*j*pi*ep(ll)/ifftsize).*(0:ifftsize-1));
% ADD NOISE
rx_signal = awgn(rx_signal, EsNo(l));
mod_noise1 = ifft (noise(n,1:ifftsize/2),ifftsize/2);
mod_noise2 = ifft (noise(n,ifftsize/2+1:ifftsize),ifftsize/2);
mod_noise = [mod_noise1 mod_noise2];
rx_signal_noisy = rx_signal + noise(n,:);

% FFT
%received_ofdm = fft(rx_signal, ifftsize);

%Frequency offset in the channel

received_ofdm1 = fft(rx_signal(1:ifftsize/2), ifftsize/2);


received_ofdm2 = fft(rx_signal((ifftsize/2)+1:ifftsize), ifftsize/2);
temp=0;temp1=0;
for w=1:length(ifftsize/2)
temp=temp + imag(received_ofdm2(w)*conj(received_ofdm1(w)));
temp1=temp1 + real(received_ofdm2(w)*conj(received_ofdm1(w)));
end;
epestMLE(ll,l) = (atan(temp/temp1))/(2*pi);
if (epestMLE(ll,l)<0)
epestMLE(ll,l)=epestMLE(ll,l)+0.5;
end;
%Correct recieved signal using the estimated frequency offset
%received_ofdm = received_ofdm1 .* exp((-4*j*pi*epestMLE(ll)/ifftsize)*(0:ifftsize/2-1));
received_ofdm = rx_signal_noisy .* exp((-2*j*pi*epestMLE(ll,l)/ifftsize)*(0:ifftsize-1));
% Extract data from carriers in OFDM symbol
received_symbols(k:k+31) = fft(received_ofdm,ifftsize/2);
k = k + 32;
end
% PERFROM DEMODULATION
%
disp('Performing Demodulation')
received_data = ddemodce(received_symbols, 1, 1, modulation, M);
%

%PERFORM PARALLEL TO SERIAL CONVERSION


disp('Performing Parallel to Serial Converion')
output_bit_stream = PtoS(received_data, log2(M));

% CALCULATE BER
disp('Calculating BER ')
BER(ll,l)= sum(abs(input_bit_stream-output_bit_stream))/length(input_bit_stream);
end
end
%

% figure;
% plot (ep,epestMLE,'*');
% title ('Actual vs Estimated');
%Function to generate AWGN given the Es/No
function output = generateNoise (EsNo,ifftsize,NS,QamBit);
EbNolin = 10^(EsNo/10);
%ifftsize = 64;
%NS = 10;
SNR = EbNolin * QamBit ;
for i = 1:(2*NS)
noise(i,:) = complex(randn(1,ifftsize)/sqrt(2*SNR),randn(1,ifftsize)/sqrt(2*SNR));;
end
output = noise;

File: final_simulator.m
Kalman Filter
for ee = 1:length(ep)
epsilon = ep(ee);
qam_bit = log2(M);
K = length(EbNo);
N = 64; % 1 FFT period
N_preamble = 256;
N_data = 512; % total number of subcarriers simulated
F = 256;
FF = F*N_data*qam_bit;
ber = zeros(1, K);
for k=1:K % different EbtoNo
k
EbtoNo = EbNo(k);
err = 0;
scale = sqrt(1/(2*log2(M)*10^(EbtoNo/10)));
for f = 1:F
xbits = rand(1, N_preamble*qam_bit);
xbits = sign(xbits-.5); % 1 & -1
xbits = xbits>0;
xx = xbits;
% M_QAM modulation
parallel_data = StoP(xx, qam_bit);
yy = dmodce(parallel_data, 1, 1, modulation, 2^qam_bit);
xx = zeros(1, N_preamble);
xf = zeros(1, N_preamble);
for n=1:N_preamble/N
yf = ifft(yy(1+N*(n-1):N*n));
xf(1+N*(n-1):N*n) = yf;
mm = 0:N-1;
offset = exp(i*2*pi*epsilon/N.*mm);
yf = yf.*offset;
noise = scale*(randn(1, N)+i.*randn(1, N));
yf = yf+noise;
xx(1+N*(n-1):N*n) = yf;
end;
% Extended Kalman Filter
Qvn = 1e-9;
Pnn = 1e-6;
en = .1;
piN = i*2*pi/N;
m_ep = 1;
for n = 1:N_preamble
zn = exp(piN*en*mod(n-1, N))*xf(n);
Cn = piN*mod(n-1, N)*exp(piN*mod(n-1, N)*en)*xf(n);
Kn = Pnn*conj(Cn)/(Cn*Pnn*conj(Cn)+Qvn);
en = en + real(Kn*(xx(n) - zn));
Pnn = (1-Kn*Cn)*Pnn;
epsil(m_ep) = en;
m_ep = m_ep+1;
end;
% restore the following data symbols using en obtained
xbits = rand(1, N_data*qam_bit);
xbits = sign(xbits-.5); % 1 & -1
xbits = xbits>0;
xx = xbits;
parallel_data = StoP(xx, qam_bit);
yy = dmodce(parallel_data, 1, 1, modulation, 2^qam_bit);

xx = zeros(1, N_data);
for n=1:floor(N_data/N)
yf = ifft(yy(1+N*(n-1):N*n));
mm = 0:N-1;
offset = exp(i*2*pi*epsilon/N.*mm);
yf = yf.*offset; % frequency offset
noise = scale.*(randn(1, N)+i.*randn(1, N));
yf = yf+noise;
yf = yf.*exp(-i*2*pi*en/N.*mm);% cancell the frequency offset
xx(1+N*(n-1):N*n) = fft(yf);
end;
received_data = ddemodce(xx, 1, 1, modulation, 2^qam_bit);
yy = PtoS(received_data, qam_bit);
er = sum(xor(xbits, yy));
err = err + er;
end; % enf of all frames
ber(k) = err/FF;
end; % end of one ber point
BER(ee, :) = ber;
end;
File: run_all.m
Run file for Kalman Filter
clc;
clear all;
close all;
% OFDM Simulator
% Using Communications Toolbox
% USER DEFINED PARAMETERS
% NORMALIZED DOPPLER SHIFT
ep = [0.05 .15 .3];
% Modulation type
modulation = 'qask';
EbNo = 1:2:30;
% QAM 2
M=2
final_simulator;
BERqam2 = BER;
save BERqam2 BERqam2
%save BERqam2.txt BERqam2 -ascii
clear BER;
% QAM 4
M=4
final_simulator;
BERqam4 = BER;
save BERqam4. BERqam4
%save BERqam4.txt BERqam4 -ascii
clear BER;
% QAM 16
M = 16
final_simulator;
BERqam16 = BER;
save BERqam16 BERqam16
%save BERqam16.txt BERqam16 -ascii
clear BER;
% QAM 64
M = 64
final_simulator;
BERqam64 = BER;
save BERqam64 BERqam64

%save BERqam64.txt BERqam64 -ascii


clear BER;
subplot(2,1,1)
semilogy(EbNo, BERqam2(1,:))
hold on
semilogy(EbNo, BERqam2(2,:),'.-')
semilogy(EbNo, BERqam2(3,:),'*-')
title('QAM-2')
xlabel('E_b/N_o')
ylabel('BER')
grid on
subplot(2,1,2)
semilogy(EbNo, BERqam4(1,:))
hold on
semilogy(EbNo, BERqam4(2,:),'.-')
semilogy(EbNo, BERqam4(3,:),'*-')
title('QAM-4')
xlabel('E_S/N_o')
ylabel('BER')
grid on
subplot(2,2,3)
semilogy(EbNo, BERqam16(1,:))
hold on
semilogy(EbNo, BERqam16(2,:),'.-')
semilogy(EbNo, BERqam16(3,:),'*-')
title('QAM-16')
xlabel('E_S/N_o')
ylabel('BER')
grid on
subplot(2,2,4)
semilogy(EbNo, BERqam64(1,:))
hold on
semilogy(EbNo, BERqam64(2,:),'.-')
semilogy(EbNo, BERqam64(3,:),'*-')
title('QAM-64')
xlabel('E_S/N_o')
ylabel('BER')
grid on

APPENDIX B: DERIVATION OF ICI COEFFICIENTS

We start with equation (2.2), and say that Yk is the Discrete Fourier Transform of y(n). Then, we
get,
N 1

Y (k ) = x(n) exp(
n =0

j 2nm
j 2n( k )
1 N 1
( X (m) exp(
)) exp(
)
N m =0
N
N

N 1

=
n =0

We can expand

1
N
1
N

1
N
1
N

j 2nk
j 2n
) exp(
)
N
N

N 1

N 1

m=0

n=0

N 1

N 1

m=0

n=0

X (m) exp(
X (m) exp(

N 1

exp(
n=0

N 1

exp(
n=0

j 2n(m + k )
)
N
j 2n(m + k )
)
N

(B.1)

j 2n(m + k )
) using the geometric series as,
N

j 2n(m + k )
1 1 exp( j 2 (m + k ))
)=
N
N 1 exp( j 2 (m + k ) / N )

1
exp( j 2 (m + k ) / 2)[exp( j 2 (m + k ) / 2) exp( j 2 (m + k ) / 2)]
.
N exp( j 2 (m + k ) / 2 N )[exp( j 2 (m + k ) / 2 N ) exp( j 2 (m + k ) / 2 N )]

1
sin( (m + k ))
exp( j 2 (m + k )(1 1 / N )
sin( (m + k ) / N )
N

Substituting (B.2) in (B.1), we get,


N 1

Y ( k ) = X ( m) S ( m k )
m =0

where,
S (m k ) = exp( j 2 (m + k )(1 1 / N )

sin( (m + k ))
N sin( (m + k ) / N )

which are the required ICI coefficients are given in equation (3.3).

(B.2)

Anda mungkin juga menyukai