This column will briefly explain how cyclic prefix (CP) in OFDM works by illustration. I decided to add this topic because the I seldom found a text that simply discussed the operation of CP and its usage.
First, lets define a property of Discrete Fourier Transform (DFT) :
If x(n) and h(n) time-domain signals, circular convolution between them x(n) © h(n) is equivalent to multiplication in the frequency-domain, X(k).H(k).
That is, if we circularly convolve two time-domain signals, it is equivalent to multiplying the respective DFT’s of the time-domain signals in the frequency-domain.
Now lets see how this all corresponds to OFDM. First we will define some parameters.
In OFDM, the transmitted (time-domain) signal x(n) linearly convole when it travels through the channel h(n). But we cannot use the property we mentioned before because x(n) and h(n) linearly convolve rather than circularly as the property requires. But in OFDM literature, we often write the received signal after DFT as X(k)H(k) for the k-th subcarrier. This X(k)H(k) is a multiplication in the frequency-time. So how can we interpret the DFT’ed signal as a multiplication. The trick is the CP.
By using CP we fake a circular convolution. although the signals are really linearly convolve. Lets see an example.
Assume the time-domain signal x(n)=[1,2,3,2,1]

Now we will transmit x(n) through channel h(n)=[3,2,1]

When x(n) is transmitted through h(n), it undergoes linear convolution, which results in the following signal, x(n)*h(n)=[3,8,14,14,10,4,1]:

Now lets see how it will look if we circularly convolve x(n) and h(n):

So we see that the linearly convolved signal is different from the circularly convoluted signal, which gives [7,9,14,14,10]. So we need to do something to the signal we transmit, x(n) so that we can obtain the circularly convolved signal. Lets add the CP to our signal x(n). I.e. we copy a portion from the end to the front of the signal. Since the channel delay is 3 time samples, we need atleast 2 samples as the CP. So our new signal with the CP will be, x’(n) [2,1,1,2,3,2,1]. Now lets transmit this signal through the channel and see the result.

So the signal with the CP gives [6,7,7,9,14,14,10,4,1] when it is linearly convoluted with channel h(n). Now we seem a similarity with the circularly convoluted signal x(n) and the linearly convoluted signal x’(n). See the figure below:

So we see that by adding the CP to our original signal and transmitting through the same channel, we can obtain the desired circular convolution. After the reception of this signal, the receiver takes off the signal samples at either end extract the samples that correspond to the circular convolution and feed it to the DFT unit. So after the DFT operation, we get our desired result X(k)H(k) in frequency-domain. So by adding the CP, we could make the linear convolution give us the desired circularly convoluted signal. You can see that there are many signal samples we throw away. So there is a wastage of resources but CP not only serves this purpose. CP is used to eliminate Inter-Symbol-Interference (ISI) too.
I hope you got an introductory understanding of the usage of CP.
[...] is a follow up to the Cyclic Prefix (CP) I did here. There I gave a graphical explanation and here I will discuss how it happens theoretically. I [...]
hi , very nice explenation and illustration
good work!
some tip, the CP can also help detect the frequency shift
Cheers,
Roee
Thank you Roee for that tip.
I think CP has been used in few useful ways. It’s not really a complete waste of bandwidth anymore.
Now lets see how it will look if we circularly convolve x(n) and h(n)
I have difficulty figuring out how did you do the circular convolution in the above statement?
Your explanation is excellent
Thank you so much