Skip to main content

OFDM Symbols and Subcarriers Explained


This article explains how OFDM (Orthogonal Frequency Division Multiplexing) symbols and subcarriers work. It covers modulation, mapping symbols to subcarriers, subcarrier frequency spacing, IFFT synthesis, cyclic prefix, and transmission.

Step 1: Modulation

First, modulate the input bitstream. For example, with 16-QAM, each group of 4 bits maps to one QAM symbol. Suppose we generate a sequence of QAM symbols:

s0, s1, s2, s3, s4, s5, …, s63

Step 2: Mapping Symbols to Subcarriers

Assume Nsub = 8 subcarriers. Each OFDM symbol in the frequency domain contains 8 QAM symbols (one per subcarrier):

Mapping (example)
  1. OFDM symbol 1 → s0, s1, s2, s3, s4, s5, s6, s7
  2. OFDM symbol 2 → s8, s9, s10, s11, s12, s13, s14, s15
  3. OFDM symbol 8 → s56, s57, …, s63
Note

Each QAM symbol occupies one FFT bin (frequency bin). You assign (map) symbols to these bins before computing the IFFT.

Step 3: Subcarrier Frequencies (Clarified)

Each element of an OFDM symbol (the frequency-domain vector) corresponds to a subcarrier. The subcarriers are spaced by:

$$\Delta f = \dfrac{1}{T_u} = \dfrac{f_s}{N}$$

  • \(f_s\) = sampling frequency
  • \(N\) = number of FFT/IFFT points
  • \(T_u = \dfrac{N}{f_s}\) = useful symbol duration

The frequency assigned to bin index \(k\) is:

$$f_k = k\dfrac{f_s}{N},\quad k = 0,1,\dots,N-1$$

(If you center bins with an FFT shift, indices run from \(-N/2\) to \(N/2-1\), and negative frequencies appear for bins \(k \ge N/2\).)

You map QAM symbols to these frequency bins before taking the IFFT. The IFFT then synthesizes the time-domain OFDM symbol, whose sinusoidal components oscillate at the \(f_k\) frequencies. This spacing \(\Delta f\) guarantees orthogonality between subcarriers over the symbol duration \(T_u\).

Step 4: Time-Domain Conversion

Take the IFFT of each frequency-domain OFDM symbol to convert it to the time domain. The discrete IFFT synthesis is:

\[ x[n] = \dfrac{1}{N} \sum_{k=0}^{N-1} X[k] e^{j 2 \pi \frac{k}{N} n}, \quad n=0,\dots,N-1 \]

  1. Add a Cyclic Prefix (CP) to mitigate inter-symbol interference.
  2. Convert the baseband signal to passband by modulation with a carrier.
  3. Transmit the passband OFDM signal.
  • The cyclic prefix length should exceed the channel delay spread to prevent inter-symbol interference.

At Transmitter Side

OFDM transmitter block diagram 1 OFDM transmitter block diagram 2 OFDM transmitter block diagram 3 OFDM transmitter block diagram 4 OFDM transmitter block diagram 5

At Receiver Side

OFDM receiver block diagram 1 OFDM receiver block diagram 2 OFDM receiver block diagram 3 OFDM receiver block diagram 4 OFDM receiver block diagram 5 OFDM receiver block diagram 6

In the above diagram, the graphical representation of the subcarrier signals is shown only for illustration purposes. In a real OFDM system, an IFFT is applied to the modulated baseband symbols (such as BPSK, QPSK, or QAM). This operation converts the signal into the time domain, while the subcarriers are automatically arranged with orthogonal frequency spacing in the frequency domain.

The resulting time-domain signal is then transmitted after being modulated onto a high-frequency carrier to convert it into a passband signal using:

Q(t)cos(ωct) + I(t)sin(ωct)

Run the interactive OFDM online simulator for a hands-on experience (click here)



Why OFDM is the Industry Standard

High Spectral Efficiency

Overlapping subcarriers allow more data to be transmitted over a limited bandwidth compared to FDM.

Multipath Resilience

The long symbol duration makes OFDM naturally resistant to echoes and multipath fading in urban environments.

Simple Equalization

Channel equalization is performed in the frequency domain, which is computationally cheaper than time-domain filters.

The "PAPR" Challenge in OFDM

One major drawback of OFDM is the High Peak-to-Average Power Ratio (PAPR). Since the time-domain signal is a sum of many sinusoids, they can occasionally align in phase, creating a massive power spike.

  • Requires high-linear range power amplifiers (expensive).
  • Reduces battery efficiency in mobile devices.
  • Mitigated by techniques like Selective Mapping (SLM) or Clipped Filtering.

OFDM vs. SC-FDMA

Feature OFDM (Downlink) SC-FDMA (Uplink)
Standard Usage 4G/5G Downlink, Wi-Fi 4G/5G Uplink (LTE)
PAPR Level High Low
Complexity Lower (at Tx side) Higher (due to extra DFT)
Read more about SC-FDMA (click here)

Where is OFDM Used?

5G New Radio (NR) Wi-Fi 6 (802.11ax) 4G LTE DVB-T2 (Digital TV) ADSL/VDSL

Frequently Asked Questions

What is the purpose of the Cyclic Prefix (CP)?

The CP acts as a guard interval to eliminate Inter-Symbol Interference (ISI) caused by multipath delay spread. It also turns the linear convolution of the channel into a circular convolution, simplifying frequency-domain equalization.

Why are subcarriers spaced at 1/T?

Spacing subcarriers at exactly \(\Delta f = 1/T_u\) ensures orthogonality. This means that at the peak frequency of one subcarrier, all other subcarriers are at their zero-crossing point, preventing interference.

Try Interactive Online Simulators


Further Reading

  1. OFDM (Theory)
  2. OFDM in MATLAB
  3. OFDM Spectrum Analysis Using MATLAB
  4. Single Carrier OFDM (SC‑OFDM): Benefits over OFDM in LTE/5G Uplink
  5. OFDM vs SC-OFDM
  6. DFTs-OFDM vs OFDM: Why DFT-Spread OFDM Reduces PAPR Effectively


Contact Us

Name

Email *

Message *

Popular Posts

Design of CMOS Flip-Flops (SR, D, JK)

Design of CMOS Flip-Flops (SR, D, JK) A flip-flop or latch is a circuit with two stable states, used to store state information. It is the basic storage element in sequential logic and a fundamental building block in digital electronics systems, including computers and communication devices. Flip-flops and latches act as data storage elements for states, pulse counting, and synchronization of variably-timed input signals to a reference clock. Flip-flops can be transparent/opaque (latches) or clocked (synchronous, edge-triggered). Latches are level-sensitive, while flip-flops are edge-sensitive. In sequential logic, the output depends on current inputs and previous states. Fig.1 shows a sequential circuit combining a combinational block and a memory element. ...

FFT Butterfly Method Explained (with Simulations)

4-Point FFT Using Butterfly Method Given: x[n] = {0, 1, 2, 3} Step 1: Split into Even & Odd Even indices: x e = {x[0], x[2]} = {0, 2} Odd indices: x o = {x[1], x[3]} = {1, 3} Step 2: 2-point DFT For any {a, b}: DFT = {a + b, a - b} Even Part (E): {0+2, 0-2} = {2, -2} Odd Part (O): {1+3, 1-3} = {4, -2} Step 3: Combine Using Butterfly X[k] = E[k] + W 4 k O[k] X[k + 2] = E[k] - W 4 k O[k] Twiddle Factors (N=4): W 4 0 = 1, W 4 1 = -j Final Calculations: X[0] = E[0] + W 4 0 O[0] = 2 + (1)(4) = 6 X[2] = E[0] - W 4 0 O[0] = 2 - (1)(4) = -2 X[1] = E[1] + W 4 1 O[1] = -2 + (-j)(-2) = -2 + 2j X[3] = E[1] - W 4 1 O[1] = -2 - (-j)(-2) = -2 - 2j Final Answer: X[k] = {6, -2 + 2j, -2, -2 - 2j} 8-Point FFT Using Butterfly Method Given: x[n] = {0,1,2,3,4,5,6,7} Step 1: Split into Bit-Reversed Order To perform DIT-FFT, split the 8 points into pairs of two: Group A: {x[0], x[4]} = {0, 4}...

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 Calculation 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 figur...

Pulse Amplitude Modulation and Demodulation

📘 Overview & Theory of Pulse Amplitude Moduation (PAM) 🧮 Pulse Amplitude Demoduation 🧮 MATLAB Code for PAM 📚 Further Reading 📂 Other Topics on Pulse Amplitude Modulation ... 🧮 Simulation results for comparison of PAM, PWM, PPM, DM, and PCM 🧮 Other Pulse Modulation Techniques (e.g., PWM, PPM, DM, and PCM) 🧮 MATLAB Code for Pulse Amplitude Modulation and Demodulation of an Analog Signal (2) 🧮 MATLAB Code for Pulse Amplitude Modulation and Demodulation of Digital data  Pulse Amplitude Modulation (PAM) Sampling allow us to represent real world continuous signal, such as audio or video, in a format suitable for digital processing and storage. This sampled discrete-time signal is inherently digital. A digital signal is a discrete-time signal that is further quantized in amplitude. Pulse Amplitude modulation (PAM) is the modulation technique in which amplitude of carrier pulses is...

Q-function in BER vs SNR Calculation (with Simulation)

Q-function in BER vs. SNR Calculation In digital communications and signal processing, the Q-function plays a significant role in predicting system reliability. It allows engineers to quantify the probability that Gaussian noise will exceed a specific threshold, causing a bit error. What is the Q-function? The Q-function is a mathematical function representing the tail probability of the standard normal (Gaussian) distribution. It is the complementary cumulative distribution function (CCDF) of a standard Gaussian distribution. Q(x) = (1 / √(2Ï€)) ∫â‚“∞ e^(-t² / 2) dt The Role of the Q-function in BER vs. SNR The Q-function is the standard tool for calculating BER in systems like BPSK or QPSK over AWGN (Additive White Gaussian Noise) channels. For BPSK: In BPSK, we transmit +√E b (bit 1) and -√E b (bit 0). The decision boundary is set at 0 . If -√E b was sent, an error occurs if noise r > √...

Channel Impulse Response (CIR) (with MATLAB + Simulator)

📘 Overview & Theory 📘 How CIR Affects the Signal 🧮 Online Channel Impulse Response Simulator 🧮 MATLAB Codes 📚 Further Reading What is the Channel Impulse Response (CIR)? The Channel Impulse Response (CIR) is a concept primarily used in the field of telecommunications and signal processing. It provides information about how a communication channel responds to an impulse signal. It describes the behavior of a communication channel in response to an impulse signal. In signal processing, an impulse signal has zero amplitude at all other times and amplitude ∞ at time 0 for the signal. Using a Dirac Delta function, we can approximate this. Fig: Dirac Delta Function The result of this calculation is that all frequencies are responded to equally by δ(t) . This is crucial since we never know which frequenci...

MATLAB Code for BER performance of QPSK with BPSK, 4-QAM, 16-QAM, 64-QAM, 256-QAM, etc

📘 Overview 🧮 MATLAB Codes 🧮 Online Simulator for Calculating BER of M-ary PSK and QAM 🧮 QPSK vs BPSK and QAM: A Comparison of Modulation Schemes in Wireless Communication 🧮 Are QPSK and 4-PSK same? 📚 Further Reading   QPSK offers double the data rate of BPSK while maintaining a similar bit error rate at low SNR when Gray coding is used. It shares spectral efficiency with 4-QAM and can outperform 4-QAM or 16-QAM in very noisy channels. QPSK is widely used in practical wireless systems, often alongside QAM in adaptive modulation schemes [Read more...] What is the Gray Code? Gray Code: Gray code is a binary numeral system where two successive values differ in only one bit. This property is called the single-bit difference or unit distance code. It is also known as reflected binary code. Let's convert binary 111 to Gray code: Binary bits: B = 1 1 1 Apply the rule: G[0] = B[0] = 1...

MATLAB Code for QPSK Modulation and Demodulation

📘 Overview 🧮 MATLAB Codes 🧮 Theory 🧮 BER performance of QPSK with BPSK, 4-QAM, 16-QAM, 64-QAM, 256-QAM, etc 📚 Further Reading QPSK Passband Signal Generation Spectral Efficiency in QPSK   Quadrature Phase Shift Keying (QPSK) is a digital modulation scheme that conveys two bits per symbol by changing the phase of the carrier signal. Each pair of bits is mapped to one of four possible phase shifts: 0°, 90°, 180°, or 270° 00  ===> 0 degree phase shift of carrier signal 01  ===> 90 degree 11  ===> 180 degree 10  ===> 270 degree   MATLAB Script clc; clear all; close all; clc; M = 4; data = randi([0 (M-1)], 1000, 1); Phase = 0; modData=pskmod(data,M,Phase); figure(1); scatterplot(modData); channelAWGN = 15; rxData2 = awgn(modData, channelAWGN); figure(2); scatterplot(rxData2); demodData = pskdemod(rxData2,M,Phase);   Result data 1 0 2 2 0 2 1 . . . modData -1.0...