Skip to main content

OFDM for 4G & 5G


 

Orthogonal Frequency Division Multiplexing

When a signal with high bandwidth traverses through a medium, it tends to disperse more compared to a signal with lower bandwidth.

A high-bandwidth signal comprises a wide range of frequency components. Each frequency component may interact differently with the transmission medium due to factors such as attenuation, dispersion, and distortion. OFDM combats the high-bandwidth frequency selective channel by dividing the original signal into multiple orthogonal multiplexed narrowband signals. In this way it, overcomes the inter-symbol interferences (ISI) issue.

Block Diagram

 



‘k’ indicates kth position in a input symbol

N is the number of subcarriers

 

Example: (OFDM using QPSK)

1.       Input Parameters:

N   Number of Input bits: 128
Number of subcarriers (FFT length): 64

Cyclic prefix length (CP): 8

Step-by-Step Process:

QPSK Mapping:

Each QPSK symbol represents 2 bits.

‘With 128 bits, the number of QPSK symbols generated will be 64 symbols.

2. OFDM Symbol Construction:


The 64 QPSK symbols exactly fit into 64 subcarriers, meaning we form one OFDM symbol

3. IFFT Operation:
Each OFDM symbol (composed of 64 QPSK symbols) is transformed from the frequency domain to the time domain using a 64-point IFFT.
The output of the IFFT is 64 complex time-domain samples per OFDM symbol.

4. Adding Cyclic Prefix:

A cyclic prefix of length 8 is appended to each 64-sample time-domain OFDM symbol.
Therefore, each OFDM symbol with the cyclic prefix becomes 64 + 8 = 72 samples long.


5. Total Length of OFDM Modulated Signal:

Since we have only one OFDM symbol in this example, the total length of the OFDM
modulated signal is 72 samples.
 

MATLAB Code for a simple OFDM system

% The code is written by SalimWireless.Com
clc;
clear all;
close all;

% Generate random bits
numBits = 100;
bits = randi([0, 1], 1, numBits);

% Define parameters
numSubcarriers = 4; % Number of subcarriers
numPilotSymbols = 3; % Number of pilot symbols
cpLength = ceil(numBits / 4); % Length of cyclic prefix (one-fourth of the data length)

% Add cyclic prefix
dataWithCP = [bits(end - cpLength + 1:end), bits];

% Insert pilot symbols
pilotSymbols = ones(1, numPilotSymbols); % Example pilot symbols (could be any pattern)
dataWithPilots = [pilotSymbols, dataWithCP];

% Perform OFDM modulation (IFFT)
dataMatrix = reshape(dataWithPilots, numSubcarriers, []);
ofdmSignal = ifft(dataMatrix, numSubcarriers);
ofdmSignal1 = reshape(ofdmSignal, 1, []);

% Display the generated data
disp("Original Bits:");
disp(bits);
disp("Data with Cyclic Prefix and Pilots:");
disp(dataWithPilots);
disp("OFDM Signal:");
disp(ofdmSignal1);

%%%%%%%%%%%%%%%%%%%%%%%%%%% Demodulation %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Perform FFT on the received signal
%ofdmSignal = awgn(ofdmSignal, 1000);
ofdmSignal = reshape(ofdmSignal1, numSubcarriers, []);
rxSignal = fft(ofdmSignal, numSubcarriers);
%rxSignal = [rxSignal(1,:) rxSignal(2,:) rxSignal(3,:) rxSignal(4,:)];

% Remove cyclic prefix
rxSignalNoCP = rxSignal(cpLength + 1:end);

% Extract data symbols and discard pilot symbols
dataSymbols = rxSignalNoCP(numPilotSymbols + 1:end);

% Demodulate the symbols using thresholding
threshold = 0;
demodulatedBits = (real(dataSymbols) > threshold);

figure(1)
stem(bits);
legend("Original Information Bits")

figure(2)
% Plot real part
hReal = stem(real(ofdmSignal1), 'r', 'DisplayName', 'Real Part'); % 'r' for red color
hold on;

% Plot imaginary part
hImag = stem(imag(ofdmSignal1), 'b', 'DisplayName', 'Imaginary Part'); % 'b' for blue color

% Customizing the plots
set(hReal, 'Marker', 'o', 'LineWidth', 1.5); % Real part marker and line style
set(hImag, 'Marker', 'x', 'LineWidth', 1.5); % Imaginary part marker and line style

% Add grid and other plot customizations
grid on;
title('Real and Imaginary Parts of OFDM Signal');
xlabel('Index');
ylabel('Amplitude');
legend;
hold off;

figure(3)
stem(demodulatedBits);
legend("Received Bits")

 

Output

 
 
 
Fig 1: Original Information Bits 
 
 


Fig 2: OFDM Signal
 
 

 
Fig 3: Received Demodulated Bits
 

 

OFDM is a scheme of multicarrier modulation. It's utilized to make greater use of the spectrum. Multiple carriers are used to modulate the message signal in this case. According to Nyquist's law, if the highest operational frequency is fmax, we must sample the signal at a rate of at least 2*fmax in order for the signal to be retrieved at the receiver properly. The signal's bandwidth B, on the other hand, will be 2*fmax.


Multi-path components, or MPCs, are seen while transmitting a signal in a wireless environment. MPCs are numerous copies of the same transmitted signal that arrive at the receiver with time delay or dispersion. If we send the second symbol immediately after the first, the second symbol will interact with the first symbol's time delayed MPCs. Excess delay spread refers to the time gap between the first and last MPCs. However, for measuring the time dispersion of multi path components, or MPCs, RMS delay spread is the most appropriate word. However, the RMS delay spread and the excess delay spread are not the same. The RMS delay spread is the power delay spread's second central momentum. In a wireless context, you've probably noticed signal power delay spread owing to multi-path. The relevant power weightage associated with MPCs is also taken into consideration by RMS delay spread.


Assume that the total bandwidth available is B. The duration of the symbol will then be 1/B. Signals at higher frequencies are subjected to additional reflection and refraction. As a result, more multipath is created, and the signal reaches the receiver via several reflections and refractions. RMS delay spread (say, Td) is substantially more than symbol time length (say, Ts) or Td>>Ts in such circumstances (for very high frequency). When the RMS delay spread is greater than the symbol time length, the symbol interacts with the MPCs of other symbols. This is what we term it technically. Inter-symbol interferences, or ISI, is a better word for this.


We divide the entire available bandwidth B into N number of sub-bands to eliminate inter-symbol interference. The bandwidth of each sub-band will be B/N. The symbol duration, Ts, will be 1/(B/N) if we do this. The symbol duration, Ts, 1/(B/N), will be significantly larger than 1/B, according to the calculations. N = 256, 512, and so on are common values. In the OFDM approach, we employ N point FFT for multi carrier modulation, or MCM.


Let me explain using a mathematical example: the RMS delay spread for an outdoor communication channel is typically 2 to 3 microseconds. If we use single carrier transmission with a transmission bandwidth of 10 MHz, the symbol time duration is Ts = 1/B or 0.1 microsecondTd (=2 to 3 microsecond) is greater than Ts (=0.1 microsecond). Inter-symbol interference, or ISI, is the result of this.


If we divide the broadband bandwidth, B, into N sub-bands, the bandwidth of each sub-band becomes B/N, increasing the symbol time duration, Ts. We normally keep symbol duration periods 10 times longer than RMS delay spread for seamless communication. This rule is also known as the sigma rule of communication.


Diagram:


Fig: Conventional Single carrier transmission



In the diagram above, a traditional single carrier communication system is depicted. B is the total bandwidth. If B = 10 MHz, Ts = 1/(10 MHz) = 0.1 microsecond symbol duration or symbol time. RMS delay spread, Td = 2 - 3 microsecond. As a result, the RMS delay spread is greater than the symbol time. As a result, the desired signal is not recoverable. So, in the next diagram, we're attempting to demonstrate that the entire bandwidth B is divided into N (say, 1000) portions.





Fig: Multicarrier transmission in OFDM



Each sub band's bandwidth is now B/N. Multicarrier modulation is used to modulate the sub band message signal. If N = 1000, then each sub band has a bandwidth of (100 MHz)/1000 = 10 KHz. Each sub band's symbol time, Ts, is now equal to 1/(10KHz) = 100 microsecond. The symbol time is significantly higher than the critical RMS delay spread in this case. Theoretically, That is enough to remove ISI.

[Get MATLAB Code for OFDM]

 Filter Bank Multi-Carrier (FBMC)


'Filter Bank Multi-Carrier' is the abbreviation for 'Filter Bank Multi-Carrier.' To obtain the desired data in an OFDM system, we use inverse fast Fourier transform (IFFT) at the transmitter side, or we use the opposite method or fast Fourier transform at the receiver side. For OFDM, we use the term Tsym, which stands for symbol duration time. As we all know, it's a multicarrier modulation system in which we send a single high data rate signal instead of multiple low data rate signals in parallel. To cancel inter-symbol interference (ISI) in a communication system caused by fading, we divide the entire bandwidth B into N sub bands.

The subcarrier filters of the IFFT/FFT filter banks in OFDM have poor containment, which is one of the main drawbacks of the system. As a result, there is a lot of noise from other users' transmissions.

On the other hand, when transmitting a symbol, we must not only use the Tsym time period, but also add a cyclic prefix. As a result, this phenomenon has an impact on bandwidth efficiency.

Another explanation is that when we send a signal over a multicarrier system, the carrier signal behaves like a sinc wave. As a result, every subcarrier can interfere with the subcarriers before and after it.

In this case, FBMC resolves the concerns with the OFDM system. To differentiate the sub carriers, we utilise a digital filter. We also don't require the cyclic prefix in this case. Digital filters are sharp in nature, reducing interference between other subcarriers significantly.



# OFDM delay spread channel to parallel fading channel conversion

 

Further Reading

  1. OFDM in MATLAB



People are good at skipping over material they already know!

View Related Topics to







Admin & Author: Salim

s

  Website: www.salimwireless.com
  Interests: Signal Processing, Telecommunication, 5G Technology, Present & Future Wireless Technologies, Digital Signal Processing, Computer Networks, Millimeter Wave Band Channel, Web Development
  Seeking an opportunity in the Teaching or Electronics & Telecommunication domains.
  Possess M.Tech in Electronic Communication Systems.


Contact Us

Name

Email *

Message *

Popular Posts

Constellation Diagrams of M-ary QAM | M-ary Modulation

๐Ÿ“˜ Overview of QAM ๐Ÿงฎ MATLAB Code for m-ary QAM (4-QAM, 16-QAM, 32-QAM, ...) ๐Ÿงฎ Online Simulator for M-ary QAM Constellations ๐Ÿ“š Further Reading ๐Ÿ“‚ Other Topics on Constellation Diagrams of QAM configurations ... ๐Ÿงฎ MATLAB Code for 4-QAM ๐Ÿงฎ MATLAB Code for 16-QAM ๐Ÿงฎ MATLAB Code for m-ary QAM (4-QAM, 16-QAM, 32-QAM, ...) ๐Ÿงฎ Simulator for constellation diagrams of m-ary PSK ๐Ÿงฎ Simulator for constellation diagrams of m-ary QAM ๐Ÿงฎ Overview of Energy per Bit (Eb / N0) ๐Ÿงฎ Online Simulator for constellation diagrams of ASK, FSK, and PSK ๐Ÿงฎ Theory behind Constellation Diagrams of ASK, FSK, and PSK ๐Ÿงฎ MATLAB Codes for Constellation Diagrams of ASK, FSK, and PSK QAM Unlike this, the M-ary PSK signal is modulated with a different phase-shifted version of the carrier signal and varying amplitude levels. Let me give an example for better comprehension. QAM = ASK +...

Theoretical vs. simulated BER vs. SNR for ASK, FSK, and PSK

๐Ÿ“˜ Overview ๐Ÿงฎ Simulator for calculating BER ๐Ÿงฎ MATLAB Codes for calculating theoretical BER ๐Ÿงฎ MATLAB Codes for calculating simulated BER ๐Ÿ“š Further Reading   BER vs. SNR denotes how many bits in error are received in a communication process for a particular Signal-to-noise (SNR) ratio. In most cases, SNR is measured in decibel (dB). For a typical communication system, a signal is often affected by two types of noises 1. Additive White Gaussian Noise (AWGN) 2. Rayleigh Fading In the case of additive white Gaussian noise (AWGN), random magnitude is added to the transmitted signal. On the other hand, Rayleigh fading (due to multipath) attenuates the different frequency components of a signal differently. A good signal-to-noise ratio tries to mitigate the effect of noise.  Simulator for calculating BER vs SNR for binary ASK, FSK, and PSK Calculate BER for Binary ASK Modulation The theoretical BER for binary ASK (BASK) in an AWGN channel is...

BER vs SNR for M-ary QAM, M-ary PSK, QPSK, BPSK, ...

๐Ÿ“˜ Overview of BER and SNR ๐Ÿงฎ Online Simulator for BER calculation of m-ary QAM and m-ary PSK ๐Ÿงฎ MATLAB Code for BER calculation of M-ary QAM, M-ary PSK, QPSK, BPSK, ... ๐Ÿ“š Further Reading ๐Ÿ“‚ View Other Topics on M-ary QAM, M-ary PSK, QPSK ... ๐Ÿงฎ Online Simulator for Constellation Diagram of m-ary QAM ๐Ÿงฎ Online Simulator for Constellation Diagram of m-ary PSK ๐Ÿงฎ MATLAB Code for BER calculation of ASK, FSK, and PSK ๐Ÿงฎ MATLAB Code for BER calculation of Alamouti Scheme ๐Ÿงฎ Different approaches to calculate BER vs SNR What is Bit Error Rate (BER)? The abbreviation BER stands for bit error rate, which indicates how many corrupted bits are received (after the demodulation process) compared to the total number of bits sent in a communication process. It is defined as,  In mathematics, BER = (number of bits received in error / total number of transmitted bits)  On the other hand, SNR ...

Hybrid Beamforming | Page 2

Beamforming Techniques Hybrid Beamforming... Page 1 | Page 2 | clear all; close all; clc; Nt = 64; Nr = 16; NtRF = 4; NrRF = 4; At both the transmitter and receiver ends, there are four RF chains only for a hybrid beamforming system. Alternatively, every 16 antenna elements on the transmitter side is connected to a single RF chain, while every 4 antenna elements on the receiver side are connected to a single RF chain. Mixers, amplifiers, and other critical wireless communication components make up the RF chain. Now, in the case of hybrid beamforming, there can be four different data streams between the transmitter and receiver, as both sides have four RF chains, each of which is accountable for a separate data stream. For Analog Beamforming: All 64 Tx antenna elements create a beam or focus the resultant correlated signal spread from adjacent antennas to a particular direction. Similarly, it may be used for beam...

Comparisons among ASK, PSK, and FSK | And the definitions of each

๐Ÿ“˜ Comparisons among ASK, FSK, and PSK ๐Ÿงฎ Online Simulator for calculating Bandwidth of ASK, FSK, and PSK ๐Ÿงฎ MATLAB Code for BER vs. SNR Analysis of ASK, FSK, and PSK ๐Ÿ“š Further Reading ๐Ÿ“‚ View Other Topics on Comparisons among ASK, PSK, and FSK ... ๐Ÿงฎ Comparisons of Noise Sensitivity, Bandwidth, Complexity, etc. ๐Ÿงฎ MATLAB Code for Constellation Diagrams of ASK, FSK, and PSK ๐Ÿงฎ Online Simulator for ASK, FSK, and PSK Generation ๐Ÿงฎ Online Simulator for ASK, FSK, and PSK Constellation ๐Ÿงฎ Some Questions and Answers Modulation ASK, FSK & PSK Constellation MATLAB Simulink MATLAB Code Comparisons among ASK, PSK, and FSK    Comparisons among ASK, PSK, and FSK   Simulator for Calculating Bandwidth of ASK, FSK, and PSK The baud rate represents the number of symbols transmitted per second. Both baud rate and bit rate a...

Difference between AWGN and Rayleigh Fading

๐Ÿ“˜ Introduction, AWGN, and Rayleigh Fading ๐Ÿงฎ Simulator for the effect of AWGN and Rayleigh Fading on a BPSK Signal ๐Ÿงฎ MATLAB Codes ๐Ÿ“š Further Reading Wireless Signal Processing Gaussian and Rayleigh Distribution Difference between AWGN and Rayleigh Fading 1. Introduction Rayleigh fading coefficients and AWGN, or additive white gaussian noise [↗] , are two distinct factors that affect a wireless communication channel. In mathematics, we can express it in that way.  Fig: Rayleigh Fading due to multi-paths Let's explore wireless communication under two common noise scenarios: AWGN (Additive White Gaussian Noise) and Rayleigh fading. y = h*x + n ... (i) Symbol '*' represents convolution. The transmitted signal  x  is multiplied by the channel coefficient or channel impulse response (h)  in the equation above, and the symbol  "n"  stands for the white Gaussian noise that is added to the si...

Comparing Baseband and Passband Implementations of ASK, FSK, and PSK

๐Ÿ“˜ Overview ๐Ÿงฎ Baseband and Passband Implementations of ASK, FSK, and PSK ๐Ÿงฎ Difference betwen baseband and passband ๐Ÿ“š Further Reading ๐Ÿ“‚ Other Topics on Baseband and Passband ... ๐Ÿงฎ Baseband modulation techniques ๐Ÿงฎ Passband modulation techniques   Baseband modulation techniques are methods used to encode information signals onto a baseband signal (a signal with frequencies close to zero), allowing for efficient transmission over a communication channel. These techniques are fundamental in various communication systems, including wired and wireless communication. Here are some common baseband modulation techniques: Amplitude Shift Keying (ASK) [↗] : In ASK, the amplitude of the baseband signal is varied to represent different symbols. Binary ASK (BASK) is a common implementation where two different amplitudes represent binary values (0 and 1). ASK is simple but susceptible to noise...

MATLAB code for BER vs SNR for M-QAM, M-PSK, QPSk, BPSK, ...

๐Ÿ“˜ Overview ๐Ÿงฎ Simulator for m-ary QAM and m-ary PSK ๐Ÿงฎ MATLAB Code for BPSK, M-ary PSK, and M-ary QAM Together ๐Ÿงฎ MATLAB Code for M-ary QAM ๐Ÿงฎ MATLAB Code for M-ary PSK ๐Ÿ“š Further Reading   MATLAB Script for  BER vs. SNR for M-QAM, M-PSK, QPSk, BPSK %Written by Salim Wireless %Visit www.salimwireless.com for study materials on wireless communication %or, if you want to learn how to code in MATLAB clc; clear; close all; % Parameters num_symbols = 1e5; % Number of symbols snr_db = -20:2:20; % Range of SNR values in dB % PSK and QAM orders to be tested psk_orders = [2, 4, 8, 16, 32]; qam_orders = [4, 16, 64, 256]; % Initialize BER arrays ber_psk_results = zeros(length(psk_orders), length(snr_db)); ber_qam_results = zeros(length(qam_orders), length(snr_db)); % BER calculation for each PSK order and SNR value for i = 1:length(psk_orders) psk_order = psk_orders(i); for j = 1:length(snr_db) % Generate random symbols ...