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.

ofdm_image

Example: OFDM using QPSK

1. Input Parameters:

  • Number of Input bits: 128
  • Number of subcarriers (FFT length): 64
  • Cyclic prefix length (CP): 8

2. 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.

OFDM Symbol Construction: The 64 QPSK symbols exactly fit into 64 subcarriers, forming one OFDM symbol.

IFFT Operation: The symbol is transformed from the frequency domain to the time domain using a 64-point IFFT, resulting in 64 complex time-domain samples.

Adding Cyclic Prefix: A cyclic prefix of length 8 is appended. The final symbol length is 64 + 8 = 72 samples.

MATLAB Code for OFDM System

% Updated MATLAB Code by SalimWireless.Com
clc; clear all; close all;

numBits = 128; 
bits = randi([0, 1], 1, numBits);

% Parameters
numSubcarriers = 64; 
cpLength = 16; 

% 1. QPSK Modulation (Mapping bits to symbols)
symbols = (2*bits(1:2:end)-1) + j*(2*bits(2:2:end)-1); 

% 2. Reshape into OFDM symbols
dataMatrix = reshape(symbols, numSubcarriers, []);

% 3. IFFT (Frequency to Time Domain)
ofdmTime = ifft(dataMatrix, numSubcarriers);

% 4. Add Cyclic Prefix (Correct way: copy end of time signal to front)
ofdmWithCP = [ofdmTime(end-cpLength+1:end, :); ofdmTime];
ofdmSignal = ofdmWithCP(:).'; 

% Display Signal
figure(1); stem(real(ofdmSignal)); title('OFDM Time Domain Signal (Real Part)');
  

OFDM is a scheme of multicarrier modulation used to make better use of the spectrum. According to Nyquist's sampling theorem, to perfectly reconstruct a baseband signal with a maximum frequency component of fmax, we must sample at 2*fmax.

In wireless environments, Multi-path components (MPCs) cause time dispersion. RMS delay spread (Td) is used to measure this. If Td > Ts (Symbol duration), symbols overlap, causing Inter-Symbol Interference (ISI). OFDM mitigates this by dividing the total bandwidth B into N sub-bands, which increases the symbol duration significantly (Ts = N/B), making it much larger than the delay spread.



Q & A and Summary

1. What is the main advantage of using OFDM?

The main advantage is its ability to overcome ISI caused by frequency-selective fading. It transforms a wideband frequency-selective channel into multiple narrowband frequency-flat channels.

3. What role does the IFFT play in OFDM?

IFFT converts frequency-domain data symbols into time-domain signals. It ensures that subcarriers remain orthogonal. Mathematical representation:

$$ y(t) = \sum_{k=0}^{N-1} X_k e^{j2\pi k t / T} $$

4. What is the function of the cyclic prefix?

The cyclic prefix provides a guard interval that prevents overlap between symbols due to multipath propagation, thus maintaining orthogonality. It must be longer than the maximum delay spread.

5. How does high Doppler shift affect OFDM?

High Doppler shift causes frequency shifts in subcarriers, leading to Inter-Carrier Interference (ICI) and loss of orthogonality. Frequency shift equation:

$$ \Delta f = f_0 \cdot \frac{v}{c} $$

6. What is "orthogonality" in OFDM?

It ensures subcarriers do not interfere with each other even though they overlap in frequency. The integral of any two subcarriers over a symbol period is zero.

7. What are the transmitter steps?

1. Data Encoding. 2. Serial-to-Parallel. 3. IFFT. 4. Cyclic Prefix Addition. 5. D/A Conversion. 6. Upconversion.

9. Explain frequency-selective fading.

It occurs when different frequencies experience different levels of attenuation. OFDM solves this by using narrowband subcarriers that experience "flat" fading instead.

Further Reading

  1. OFDM in MATLAB
  2. Filter Bank Multicarrier (FBMC)
  3. GFDM Overview

People are good at skipping over material they already know!

View Related Topics to







Contact Us

Name

Email *

Message *

Popular Posts

BER vs SNR for M-ary QAM, M-ary PSK, QPSK, BPSK, ...(MATLAB Code + Simulator)

Bit Error Rate (BER) & SNR Guide Analyze communication system performance with our interactive simulators and MATLAB tools. 📘 Theory 🧮 Simulators 💻 MATLAB Code 📚 Resources BER Definition SNR Formula BER Calculator MATLAB Comparison 📂 Explore M-ary QAM, PSK, and QPSK Topics ▼ 🧮 Constellation Simulator: M-ary QAM 🧮 Constellation Simulator: M-ary PSK 🧮 BER calculation for ASK, FSK, and PSK 🧮 Approaches to BER vs SNR What is Bit Error Rate (BER)? The BER indicates how many corrupted bits are received compared to the total number of bits sent. It is the primary figure of merit for a...

ASK, FSK, and PSK (with MATLAB + Online Simulator)

📘 ASK Theory 📘 FSK Theory 📘 PSK Theory 📊 Comparison 🧮 MATLAB Codes 🎮 Simulator ASK or OFF ON Keying ASK is a simple (less complex) Digital Modulation Scheme where we vary the modulation signal's amplitude or voltage by the message signal's amplitude or voltage. We select two levels (two different voltage levels) for transmitting modulated message signals. Example: "+5 Volt" (upper level) and "0 Volt" (lower level). To transmit binary bit "1", the transmitter sends "+5 Volts", and for bit "0", it sends no power. The receiver uses filters to detect whether a binary "1" or "0" was transmitted. Fig 1: Output of ASK, FSK, and PSK modulation using MATLAB for a data stream "1 1 0 0 1 0 1 0" ( Get MATLAB Code ) ...

Calculation of SNR from FFT bins in MATLAB

📘 Overview 💻 FFT Bin Method 💻 Kaiser Window 📚 Further Reading SNR Estimation Overview In digital signal processing, estimating the Signal-to-Noise Ratio (SNR) accurately is crucial. Below, we demonstrate how to calculate SNR from periodogram and FFT bins using the Kaiser Window . The beta (β) parameter is the key—it allows you to control the trade-off between main-lobe width and side-lobe levels for precise spectral analysis. 1 Define Sampling rate and Time vector 2 Compute FFT and Periodogram PSD 3 Identify Signal Bin and Frequency resolution 4 Segment Signal Power from Noise floor 5 Logarithmic calculation of SNR in dB Method 1: Estimation from FFT Bins This approach uses a Hamming window to estimate SNR directly from the spectral bins. MATLAB Source Code Copy Code clc...

MATLAB Code for ASK, FSK, and PSK (with Online Simulator)

MATLAB Code for ASK, FSK, and PSK Comprehensive implementation of digital modulation and demodulation techniques with simulation results. 📘 Theory 📡 ASK Code 📶 FSK Code 🎚️ PSK Code 🕹️ Simulator 📚 Further Reading Amplitude Shift Frequency Shift Phase Shift Live Simulator ASK, FSK & PSK HomePage MATLAB Code MATLAB Code for ASK Modulation and Demodulation COPY % The code is written by SalimWireless.Com clc; clear all; close all; % Parameters Tb = 1; fc = 10; N_bits = 10; Fs = 100 * fc; Ts = 1/Fs; samples_per_bit = Fs * Tb; rng(10); binar...

Online Simulator for ASK, FSK, and PSK

Try our new Digital Signal Processing Simulator!   •   Interactive ASK, FSK, and BPSK tools updated for 2025. Start Now Interactive Modulation Simulators Visualize binary modulation techniques (ASK, FSK, BPSK) in real-time with adjustable carrier and sampling parameters. 📡 ASK Simulator 📶 FSK Simulator 🎚️ BPSK Simulator 📚 More Topics ASK Modulator FSK Modulator BPSK Modulator More Topics Simulator for Binary ASK Modulation Digital Message Bits Carrier Freq (Hz) Sampling Rate (...

Constellation Diagrams of ASK, PSK, and FSK (with MATLAB Code + Simulator)

Constellation Diagrams: ASK, FSK, and PSK Comprehensive guide to signal space representation, including interactive simulators and MATLAB implementations. 📘 Overview 🧮 Simulator ⚖️ Theory 📚 Resources Definitions Constellation Tool Key Points MATLAB Code 📂 Other Topics: M-ary PSK & QAM Diagrams ▼ 🧮 Simulator for M-ary PSK Constellation 🧮 Simulator for M-ary QAM Constellation BASK (Binary ASK) Modulation Transmits one of two signals: 0 or -√Eb, where Eb​ is the energy per bit. These signals represent binary 0 and 1. BFSK (Binary FSK) Modulation Transmits one ...

LDPC Encoding and Decoding Techniques

Low Density Parity Check (LDPC) Guide Comprehensive analysis of linear error-correcting block codes, Tanner graphs, and 5G-NR implementations. 📘 Overview 🧮 Encoding 🧩 Decoding 📚 Resources Theory Encoding Tech Tanner Graph 5G Encoding Decoding 'LDPC' is the abbreviation for 'low density parity check'. LDPC code H matrix contains very few amount of 1's and mostly zeroes. LDPC codes are error correcting code. Using LDPC codes, channel capacities that are close to the theoretical Shannon limit can be achieved. Low density parity check (LDPC) codes are linear error-correcting block code suitable for error correction in a large block sizes transmi...

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). Passband techniques shift these signals to higher carrier frequencies for transmission. Here are the common implementations: Amplitude Shift Keying (ASK) [↗] : In ASK, the amplitude of the 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. ASK Baseband (Digital Bits) ASK Passband (Modulated Carrier)     Fig 1:  ASK Passband Modulation (...