Skip to main content

Orthogonality in OFDM


Orthogonality in OFDM: A Deep Dive

Great question. This goes to the heart of why OFDM works at all. We proceed step by step, from intuition to rigorous mathematics, and then connect it to spectral efficiency.

1. Why overlapping subchannels don’t cause interference in OFDM

In conventional FDM, channels are separated by guard bands so their spectra do not overlap. This wastes bandwidth.

OFDM removes guard bands by allowing overlapping spectra, but designs the subcarriers so that they do not interfere at the receiver. This is achieved through orthogonality.

2. Meaning of orthogonality (signal theory)

Two signals \( s_1(t) \) and \( s_2(t) \) are orthogonal over an interval \( T \) if their inner product is zero:

\[\langle s_1, s_2 \rangle = \int_0^T s_1(t)\, s_2^*(t)\, dt = 0\]

This is analogous to orthogonal vectors in linear algebra:

\[\mathbf{v}_1 \cdot \mathbf{v}_2 = 0\]

Key idea: Signals may overlap in frequency but still be orthogonal over time.

3. OFDM subcarrier model

Each OFDM subcarrier is a complex exponential:

\[s_k(t) = e^{j2\pi f_k t}, \quad 0 \le t \le T\]

  • \( f_k \): frequency of the \(k\)-th subcarrier
  • \( T \): OFDM symbol duration

The transmitted OFDM signal:

\[x(t) = \sum_{k=0}^{N-1} X_k e^{j2\pi f_k t}\]

  • \( X_k \): complex QAM/PSK symbol
  • \( N \): number of subcarriers

4. Orthogonality condition in OFDM

Two subcarriers \(k\) and \(m\) are orthogonal if:

\[\int_0^T e^{j2\pi f_k t} e^{-j2\pi f_m t} dt = 0, \quad k \neq m\]

Simplifying:

\[\int_0^T e^{j2\pi (f_k - f_m)t} dt\]

This equals zero if and only if:

\[f_k - f_m = \frac{n}{T}, \quad n \in \mathbb{Z}, n \neq 0\]

OFDM design rule

\[\boxed{\Delta f = \frac{1}{T}}\]

Subcarrier spacing equals the reciprocal of the symbol duration.

5. Why overlapping spectra remain orthogonal

Each subcarrier has a sinc-shaped spectrum:

\[S_k(f) = T \cdot \text{sinc}\big(T(f - f_k)\big)\]

Property:

\[\text{sinc}(n) = 0 \quad \text{for all integers } n \neq 0\]

  • Each subcarrier peak lies at the zero crossings of all others
  • Spectra overlap, but sampled interference is zero

This is spectral orthogonality, not spectral separation.

6. Receiver perspective (FFT interpretation)

Demodulation of subcarrier \(m\):

\[\hat{X}_m = \int_0^T x(t) e^{-j2\pi f_m t} dt\]

Substituting \(x(t)\):

\[\hat{X}_m = \sum_{k=0}^{N-1} X_k \int_0^T e^{j2\pi (f_k - f_m)t} dt\]

Using orthogonality:

\[\hat{X}_m = \begin{cases} X_m T, & k = m \\ 0, & k \neq m \end{cases}\]

\[\boxed{\text{No Inter-Carrier Interference (ICI)}}\]

7. Discrete-time (DFT/FFT) view

Transmitter

\[x[n] = \frac{1}{N} \sum_{k=0}^{N-1} X_k e^{j2\pi kn/N}\]

Receiver

\[X_k = \sum_{n=0}^{N-1} x[n] e^{-j2\pi kn/N}\]

Orthogonality:

\[\sum_{n=0}^{N-1} e^{j2\pi (k-m)n/N} = \begin{cases} N, & k = m \\ 0, & k \neq m \end{cases}\]

8. Spectral efficiency

\[\eta = \frac{\text{bits/s}}{\text{Hz}}\]

  • Overlapping subcarriers
  • No guard bands
  • Symbol rate per subcarrier = \(1/T\)
  • Total bandwidth ≈ \(N/T\)

\[\eta \approx \log_2(M) \quad \text{bits/s/Hz (M-QAM)}\]

9. What breaks orthogonality

  1. Time offset
  2. Frequency offset / Doppler
  3. Multipath delay spread

Solution: Cyclic Prefix (CP) preserves orthogonality by enforcing circular convolution.

10. Summary

Orthogonality in OFDM means that each subcarrier is mathematically invisible to all others over one symbol duration, despite occupying the same spectrum.
  • Not non-overlapping
  • Not independent
  • Linearly orthogonal basis functions

Orthogonality of Sine and Cosine: A Practical Example

Let’s explain this with a concrete, practical example, no abstraction, and with numbers you can visualize.

We will show exactly how sine and cosine cancel in practice and why the angular-frequency spacing

\[\Delta \omega = \frac{2\pi}{T}\]

makes them orthogonal.

1. What “orthogonal” means in practice

Two signals are orthogonal over a time interval \(T\) if:

\[\int_0^T x(t)\,y(t)\,dt = 0\]

Physically, this means:

  • Positive and negative areas cancel
  • The receiver sees zero correlation
  • One signal contributes no energy to the other

2. Choose a real, practical time interval

Let’s choose:

\[T = 1\ \text{ms}\]

This could represent:

  • An FFT window
  • An OFDM symbol
  • A DSP measurement interval

3. Compute the angular-frequency spacing

Using the rule:

\[\Delta \omega = \frac{2\pi}{T}\]

\[\Delta \omega = \frac{2\pi}{0.001} = 2000\pi\ \text{rad/s}\]

4. Define practical sine and cosine signals

Choose:

\[x(t) = \sin(\omega_1 t)\]

\[y(t) = \cos(\omega_2 t)\]

with angular frequencies spaced by \(\Delta\omega\):

\[\omega_1 = 2000\pi\ \text{rad/s}\]

\[\omega_2 = 4000\pi\ \text{rad/s}\]

These correspond to:

  • 1 kHz sine wave
  • 2 kHz cosine wave

5. Compute their inner product

Evaluate:

\[\int_0^{1\text{ ms}} \sin(2000\pi t)\cos(4000\pi t)\,dt\]

Using the identity:

\[\sin A \cos B = \frac{1}{2}\big[\sin(A+B) + \sin(A-B)\big]\]

We get:

\[\frac{1}{2} \int_0^{1\text{ ms}} \big[ \sin(6000\pi t) + \sin(-2000\pi t) \big] dt\]

Each sine term completes an integer number of half-periods over \(T\):

\[\int_0^T \sin\left(n\frac{2\pi}{T}t\right) dt = 0\]

Hence:

\[\boxed{ \int_0^{1\text{ ms}} \sin(2000\pi t)\cos(4000\pi t)\,dt = 0 }\]

6. What is happening physically?

  • The 1 kHz sine completes 1 full cycle
  • The 2 kHz cosine completes 2 full cycles
  • Positive and negative lobes perfectly balance

When you “multiply and average” (as correlators and FFTs do), the result is zero. This is orthogonality in action.

7. What if spacing is NOT \(2\pi/T\)?

  • 1 kHz sine
  • 1.5 kHz cosine

Angular spacing ≠ 2Ï€/T. Result:

  • Partial cycles
  • Incomplete cancellation
  • Integral ≠ 0 → interference

This is exactly what causes spectral leakage and ICI in FFT/OFDM systems.

8. Connection to FFT and OFDM

  • FFT window length = \(T\)
  • FFT bin spacing = 1/T (Hz)
  • Angular spacing = 2Ï€/T

Each bin corresponds to:

\[\omega_k = k\frac{2\pi}{T}\]

Therefore:

  • Sine and cosine basis functions are orthogonal
  • FFT perfectly separates frequencies
  • OFDM subcarriers do not interfere

9. Intuitive picture

Think in terms of phase rotation. Over time \(T\), phase advances by:

\[\Delta \phi = \omega T\]

When:

\[\omega = k\frac{2\pi}{T}\]

The phase completes an integer number of full rotations, forming a closed loop, and the average becomes zero.

10. Summary

Sine and cosine functions are orthogonal over a time interval \(T\) when their angular frequencies differ by 2Ï€/T, because this causes their phase evolution to close exactly over the interval, resulting in complete cancellation in correlation or FFT processing.

People are good at skipping over material they already know!

View Related Topics to







Contact Us

Name

Email *

Message *

Popular Posts

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

📘 Overview 📘 Amplitude Shift Keying (ASK) 📘 Frequency Shift Keying (FSK) 📘 Phase Shift Keying (PSK) 📘 Which of the modulation techniques—ASK, FSK, or PSK—can achieve higher bit rates? 🧮 MATLAB Codes 📘 Simulator for binary ASK, FSK, and PSK Modulation 📚 Further Reading 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. For 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. ...

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

📘 Overview of BER and SNR 🧮 Online Simulator for BER calculation 🧮 MATLAB Code for BER calculation 📚 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 compared to the total number of bits sent. BER = (number of bits received in error) / (total number of transmitted bits) What is Signal-to-Noise Ratio (SNR)? SNR is the ratio of signal power to noise powe...

Calculation of SNR from FFT bins in MATLAB

📘 Overview 🧮 MATLAB Code for Estimation of SNR from FFT bins 🧮 MATLAB Code for SNR from PSD using Kaiser Window 📚 Further Reading Here, you can find the SNR of a received signal from periodogram / FFT bins using the Kaiser operator. The beta (β) parameter characterizes the Kaiser window, which controls the trade-off between the main lobe width and the side lobe level. Steps Set up the sampling rate and time vector Compute the FFT and periodogram Calculate the frequency resolution and signal power Exclude the signal power from noise calculation Compute the noise power and SNR MATLAB Code for Estimation of SNR from FFT bins clc; clear; close all; % Parameters fs = 8000; f_tone = 1000; N = 8192; t = (0:N-1)/fs; % Generate signal + noise signal = sin(2*pi*f_tone*t); SNR_true_dB = 20; signal_power = mean(signal.^2); noise_power = signal_power / (10^(SNR_true_dB/10)); noisy_signal = signal + sqrt(noise_power) * randn(1, N); % Apply ...

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

📘 Overview & Theory 🧮 MATLAB Code for ASK 🧮 MATLAB Code for FSK 🧮 MATLAB Code for PSK 🧮 Simulator for binary ASK, FSK, and PSK Modulations 📚 Further Reading ASK, FSK & PSK HomePage MATLAB Code MATLAB Code for ASK Modulation and Demodulation % The code is written by SalimWireless.Com % Clear previous data and plots clc; clear all; close all; % Parameters Tb = 1; % Bit duration (s) fc = 10; % Carrier frequency (Hz) N_bits = 10; % Number of bits Fs = 100 * fc; % Sampling frequency (ensure at least 2*fc, more for better representation) Ts = 1/Fs; % Sampling interval samples_per_bit = Fs * Tb; % Number of samples per bit duration % Generate random binary data rng(10); % Set random seed for reproducibility binary_data = randi([0, 1], 1, N_bits); % Generate random binary data (0 or 1) % Initialize arrays for continuous signals t_overall = 0:Ts:(N_bits...

Online Simulator for ASK, FSK, and PSK

Try our new Digital Signal Processing Simulator!   Start Simulator for binary ASK Modulation Message Bits (e.g. 1,0,1,0) Carrier Frequency (Hz) Sampling Frequency (Hz) Run Simulation Simulator for binary FSK Modulation Input Bits (e.g. 1,0,1,0) Freq for '1' (Hz) Freq for '0' (Hz) Sampling Rate (Hz) Visualize FSK Signal Simulator for BPSK Modulation ...

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

📘 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 📚 Further Reading 📂 Other Topics on Constellation Diagrams of ASK, PSK, and FSK ... 🧮 Simulator for constellation diagrams of m-ary PSK 🧮 Simulator for constellation diagrams of m-ary QAM 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 of two signals: +√Eb​ ( On the y-axis, the phase shift of 90 degrees with respect to the x-axis, which is also termed phase offset ) or √Eb (on x-axis), where Eb​ is the energy per bit. These signals represent binary 0 and 1.  BPSK (Binary PSK) Modulation: Transmits one of two signals...

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

LDPC Encoding and Decoding Techniques

📘 Overview & Theory 🧮 LDPC Encoding Techniques 🧮 LDPC Decoding Techniques 📚 Further Reading '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 transmitted via very noisy channel. Applications requiring highly reliable information transport over bandwidth restrictions in the presence of noise are increasingly using LDPC codes. 1. LDPC Encoding Technique The proper form of H matrix is derived from the given matrix by doing multiple row operations as shown above. In the above, H is parity check matrix and G is generator matrix. If you consider matrix H as [-P' | I] then matrix G will b...