I started this blog last year and just so that people don’t think I am lazy, I thought to write at least one post before it is a year. The thing is I relocated last year and did not have time to write anything. So lets begin.
This post will be about overview of a communication system i.e. key blocks and how each block functions. My idea is to provide simplified version of the topic so that you can read the books by John Proakis, Bernard Sklar and many more brilliant authors.
Later, I plan to provide Matlab codes for all different systems, so that people can gain better understanding. Hopefully, it will be soon.
A communication system has three key components: Transmitter, channel and receiver.
Basically, a transmitter takes video, voice or data as input in digital or analogue form but it always transmits the signal in analogue form. This transmitted signal is received at the receiver but it is a corrupted by the channel. The complete process is shown in the figure below.
In this blog, it will be assumed that the information signal (voice, video or data) is already converted into a digital signal i.e. bits. As shown in the figure, this information sequence is denoted as . The key term to consider is bit rate, which means the number of you can transmit per second.
The information bits are encoded using a coding scheme, which introduces redundancy. In other words, it adds extra bits to protect the information. There are several coding schemes such Block codes, Convolution codes, Reed Solomon codes, Turbo codes etc. The encoded bits are denoted as .
Next block is mapping. It means that the coded bits (or just the information bits if the system is uncoded) will be converted into symbols using modulation scheme such as BPSK, QPSK, QAM etc. The symbols are denoted as and they are complex (i.e. they have an imaginary component. Only BPSK does not have the complex part). It is important to note that at this point, no waveform has been created and these symbols cannot be transmitted. Another useful term is symbol rate i.e. number of symbols per second.
These symbols are then converted to a baseband signal using pulse shaping. It is basically an analogue signal. This is where sampling frequency comes into the picture as it helps to determine how many number samples are required per symbol. The baseband signal is denoted as and it can be either real or complex. The most common pulse shape function is square root raised cosine (SRRC). The aim of pulse shaping is to properly band-limit the signal so that it does not interfere with other signals. For example, the company O2 will not be happy if Vodafone’s signal interferes with their signal.
Finally, the baseband signal is converted to passband signal, denoted as , using carrier modulation and transmitted via an antenna. This signal is always real value.
The channel is the villain in your story when you are trying to talk to someone and he/she cannot hear you properly. The transmitted signal gets heavily corrupted, attenuated, reflected and so much more happens that if the situation is really bad, the receiver will not be able to recover the original message. However, it happens in very rare cases but it still happens.
On the plus side, it is because of the channel that we can do amazing research and develop great algorithms to mitigate the problems. There are several types of channels and many ways to model a channel.
The simplest channel model is Additive White Gaussian Noise (AWGN) channel. As the name suggests, it is a noise that is additive in nature, with white frequency spectrum and its distribution has Gaussian shape. This model is sometimes used to establish lower bound on the system performance. The most common system performance measure is bit error rate (BER) vs. Signal to Noise Ratio (SNR). As the name suggests, the number of errors in the received bits should decrease with increasing SNR (more on this later).
Other channel types are, Rayleigh fading, Rician fading, time varying channels, frequency selective channels etc. There are more but mostly, people use these models to evaluate their systems.
Also, channel models vary according to the environment. For example, the underwater acoustic channel (UAC) is very challenging compare to the RF channel. I personally believe that if your system works great for UAC, then it will work for any channel. (My PhD was in underwater communication and hence you see this bias but I am right!).
Ideally, if you look at the receiver diagram, it can be seen that it is the complete opposite process of the transmitter, apart from few extra blocks. These blocks are required as the signal has been corrupted.
The received signal , which is real valued, is first passed through carrier demodulation or I-Q mixer. The resulting signal , is a complex valued baseband signal.
This baseband signal is passed through a matched filter, which is nothing but the same SRRC function used at the transmitter, hence the name. The advantage of using matched filter is that it improves output SNR. The output of matched filter is denoted as .
The next block is Synchronisation and it is so important that if synchronisation fails, the system will fail, no matter how sophisticated your system is. There are three types of synchronisations:
- Frame sync: to determine where the information signal begins in the received signal. It possible to achieve good frame sync most of the time.
- Symbol sync: Once we know where the signal begins, next task is to determine where exactly we should sample so that we obtain accurate symbol. If sample early or late, then it will cause significant error, which will be difficult to fix. The need to sample at correct instance is due to the fact that the transmitted signal is delayed to the receiver and there should be a way to estimate this delay so that the symbols can be sampled at correct instance.
- Phase sync: It is not necessary that the phase of the received symbol is exactly the same as that of the transmitted symbol and we must correct the phase in order to obtain better performance.
There are many techniques for all these three synchronisation types, which will be covered in future posts. I must stress that not many people know how synchronisation works, there are only two text books on this topic and even the most popular book by John Proakis does not cover this topic in great detail. As a result, not many people know a lot about Synchronisation and those who know it are always in demand!
Once the symbols are synchronised, the resulting symbols , are passed through an equaliser. The task of the equaliser is to remove the effects of multipath. The multipath effect happens when the transmitted signal is received via multiple paths at the receiver, which results in intersymbol interference (ISI). The frequency response of a multipath channel is not flat and hence the channel is known as frequency selective channel, as it only allows selective frequencies to pass without attenuation. The output of equaliser is denoted as . There are several types of equalisers: feed-forward, Decision Feedback Equaliser (DFE), Maximum Likelihood (ML) etc. Furthermore, in order to design an equaliser, the receiver must have access to channels state information (CSI, not Miami!), which is not available. In order to obtain the CSI, the receiver must estimate it from the received signal or make the equaliser adaptive. In order to make the system adaptive, a special sequence is transmitted, which is called a training sequence and is known to the receiver.
Now the task is very easy and simple. The equalised symbols are demapped either into hard of soft bits. These demapped bits are denoted as and they are passed to the decoder.
The decoder algorithm depends on the type of encoding scheme used at the transmitter. For example, if the information is encoded using convolution codes then it will be decoded using Viterbi algorithm, which is a simplified implementation of maximum likelihood estimation algorithm. The decoded bits .are then compared with the information bits and hopefully, they will have zero errors!
This is it folks. My belief is that if you understand single antenna system well, then it will be very easy to extend your knowledge to multiple input multiple output (MIMO) systems without any trouble.
I hope you like this post and please feel free to provide your feedback, so that future posts will be improved and hopefully I will soon post one.