Skip to main content

OFDM Waveform with MATLAB Code (with Simulator)

 

In OFDM (Orthogonal Frequency Division Multiplexing), we transmit multiple orthogonal subcarriers simultaneously. Since the subcarriers are orthogonal, they do not interfere with each other, which is one of the main advantages of OFDM. Practically, OFDM converts a wideband signal into multiple narrowband orthogonal subcarriers.

For typical wireless communication, if the signal bandwidth (or symbol duration) exceeds the coherence bandwidth of the channel, the signal experiences frequency-selective fading. Fading distorts the signal, making it difficult to recover the original information. By using OFDM, we transmit the same wideband signal across multiple orthogonal narrowband subcarriers, reducing the effect of fading.

For example, if we want to transmit a signal of bandwidth 1024 kHz, we can divide it into N = 8 subcarriers. Each subcarrier is then spaced by:

Δf = Total Bandwidth N = 1024 8 kHz = 128 kHz

Let N be the number of subcarriers. The subcarrier frequencies are centered around zero and range from:

fk = k Δf, k = -N2, , N2-1

So for our example, the subcarrier frequencies are:

fk = { -512, -384, -256, -128, 0, 128, 256, 384 } kHz

By using OFDM with these orthogonal subcarriers, the communication system becomes robust to frequency-selective fading, and the overall wideband signal can be transmitted and recovered smoothly.

MATLAB Code for Theoretical OFDM Sinc Spectra (Orthogonal)

clc;
clear;
close all;
% Parameters
N = 8;
fs = 1024; % Sampling frequency
T = N/fs;
delta_f = fs/N;
f = linspace(-fs/2, fs/2, 1024);
figure;
hold on;
grid on;
for k = -N/2:N/2-1
fk = k * delta_f;
S = T * sinc(T*(f - fk));
plot(f, abs(S),'LineWidth',1.5);
end
xlabel('Frequency (Hz)');
ylabel('Magnitude');
title('Theoretical OFDM Sinc Spectra (Orthogonal)');
 

 

 

MATLAB Code for Simulated OFDM Spectrum (Orthogonal Case)

clc;
clear;
close all;
% ===============================
% PARAMETERS
% ===============================
N = 8; % Number of subcarriers
fs = 1000; % Sampling frequency (Hz)
Nfft = 1024; % FFT size for smooth spectrum
Ts = 1/fs;
T = N/fs; % OFDM symbol duration (IMPORTANT)
delta_f = fs/N; % Subcarrier spacing (Fs/N)
fprintf('Subcarrier spacing = %.2f Hz\n', delta_f);
% ===============================
% TRANSMITTER
% ===============================
% Generate random QPSK data
data = randi([0 3],1,N);
symbols = exp(1j*pi/2*data); % QPSK mapping
% IFFT (Discrete OFDM generation)
ofdm_time = ifft(symbols, N);
% Time axis
t = (0:N-1)*Ts;
% ===============================
% SPECTRUM VISUALIZATION
% ===============================
OFDM_spectrum = fftshift(fft(ofdm_time, Nfft));
f_axis = linspace(-fs/2, fs/2, Nfft);
figure;
subplot(3,1,1)
stem(0:N-1, abs(symbols),'filled')
title('Transmitted QPSK Symbols (Frequency Domain)')
xlabel('Subcarrier Index')
ylabel('Magnitude')
grid on;
subplot(3,1,2)
plot(f_axis, abs(OFDM_spectrum)/max(abs(OFDM_spectrum)))
title('OFDM Spectrum (Orthogonal Case)')
xlabel('Frequency (Hz)')
ylabel('Normalized Magnitude')
grid on;
% ===============================
% RECEIVER (NO ICI)
% ===============================
received_symbols = fft(ofdm_time, N);
subplot(3,1,3)
stem(0:N-1, abs(received_symbols),'r','filled')
title('Recovered Symbols (Perfect Orthogonality)')
xlabel('Subcarrier Index')
ylabel('Magnitude')
grid on;
% ===============================
% PART 2: INTRODUCE FREQUENCY OFFSET (ICI)
% ===============================
freq_offset = 20; % 20 Hz frequency offset
ofdm_offset = ofdm_time .* exp(1j*2*pi*freq_offset*t);
received_ici = fft(ofdm_offset, N);
figure;
subplot(2,1,1)
stem(0:N-1, abs(received_symbols),'filled')
title('Recovered Symbols (No ICI)')
xlabel('Subcarrier Index')
ylabel('Magnitude')
grid on;
subplot(2,1,2)
stem(0:N-1, abs(received_ici),'r','filled')
title('Recovered Symbols With Frequency Offset (ICI Present)')
xlabel('Subcarrier Index')
ylabel('Magnitude')
grid on;
 

 


Online Simulator (PSD of OFDM)


Mathematical Representation of OFDM Waveform





This plot shows the power distribution of an OFDM signal in frequency domain. The central flat region corresponds to the 64 subcarriers each spaced 15 kHz apart, giving a total bandwidth of 64 X 15 = 960 kHz. Read more...


Further Reading



Contact Us

Name

Email *

Message *

Popular Posts

RMS Delay Spread, Excess Delay Spread and Multi-path ...(with MATLAB + Simulator)

📘 Overview of Delay Spread and Multi-path 🧮 Excess Delay spread 🧮 Power delay Profile 🧮 RMS Delay Spread 📚 Further Reading 📂 Other Topics on RMS Delay Spread, Excess Delay ... 🧮 Multipath Components or MPCs 🧮 Online Simulator for Calculating RMS Delay Spread 🧮 Why is there significant multipath in the case of very high frequencies? 🧮 Why RMS Delay Spread is essential for wireless communication? 🧮 Why the Power Delay Profile is essential? 🧮 MATLAB Codes for Calculating Different Types of delay Spreads Delay Spread, Excess Delay Spread, and Multipath (MPCs) The fundamental distinction between wireless and wired connections is that in wireless connections signal reaches at receiver thru multipath signal propagation rather than directed transmission like co-axial cable. Wireless Communication has no set communication path between the transmitter and the receiver. The line...

Online Simulator for ASK, FSK, and PSK Signal Generation

Interactive Digital Signal Processing (DSP) Tutorial and Simulator for ASK, FSK, and BPSK modulation techniques. Try our new Digital Signal Processing Simulator!   •   Interactive ASK, FSK, and BPSK tools updated for 2025. Start Now Digital Modulation Visualizer: ASK, FSK, & BPSK Simulator Learn and visualize binary modulation techniques (ASK, FSK, BPSK) in real-time with adjustable carrier and sampling parameters. Perfect for DSP students and engineers. 📡 ASK Simulator 📶 FSK Simulator 🎚️ BPSK Simulator 📚 More Topics ASK Modulator FSK Modulator BPSK Modulator More Topics 1. ASK (Amplitude Shift Keying) Simulat...

Hybrid Beamforming | Page 1

Beamforming Techniques Hybrid Beamforming... Page 1 | Page 2 | Hybrid Beamforming: Hybrid beam formation was developed to address some of the limitations of digital pre-coding approaches. Every antenna element is connected to an RF chain in digital pre-coding (beam forming) method. We also know that each RF chain is in charge of providing a separate data stream between the transmitter and the receiver. We know that a larger number of independent data streams leads to higher data rates. It has a spatial multiplexing feature for MIMO. As a result, we may assume that switching from MIMO to massive MIMO will benefit us more in terms of spatial multiplexing in massive MIMO, where each antenna is coupled to a single RF chain. We'll proceed with a definition of hybrid beam forming. Overview of hybrid beam forming with example: Unlike digital beam forming, more than one antenna element is connected to a single RF chain in hybr...

Amplitude Shift Keying (ASK) Modulation & Demodulation (with Simulation)

Amplitude Shift Keying (ASK): Signal Analysis and Characterization Theoretical Overview: Amplitude Shift Keying (ASK) represents a primary digital modulation technique wherein information is encoded through discrete variations in the carrier signal's instantaneous amplitude. In a Binary ASK (BASK) framework, the modulation process maps binary data onto two distinct amplitude levels. Specifically, the binary '1' (mark) is conveyed by a sinusoidal carrier with amplitude A c and frequency f c over a bit interval T b , while the binary '0' (space) is represented by a null signal state. This particular signaling method is widely recognized as On-Off Keying (OOK) . It is technically realized by gating a carrier oscillator with a unipolar baseband sequence, effectively performing a product modulation that shifts the baseband spectrum to the carrier frequency. ASK Transmitter Architecture: ...

Frequency Shift Keying (FSK) Modulation & Demodulation (with Simulation)

Frequency Shift Keying (FSK) Theoretical Foundations: Frequency Shift Keying (FSK) is a discrete frequency modulation scheme wherein the digital information is encoded via instantaneous shifts in the carrier signal's frequency. The fundamental implementation is Binary FSK (BFSK), which maps binary data onto two distinct, discrete spectral states. A binary '1' (the "mark" state) is represented by a carrier frequency \( f_1 \), while a binary '0' (the "space" state) corresponds to frequency \( f_2 \). Each symbol is sustained for a bit interval denoted by \( T_b \). FSK Transmitter Characterization: The mathematical model for the modulated BFSK output \( s(t) \) is defined as: \[ s(t) = \begin{cases} A_c \cos(2\pi f_1 t), & \text{for } m = 1 \\ A_c \cos(2\pi f_2 t), & \text{for } m = 0 \end{cases} \] ...

UGC NET Electronic Science Previous Year Question Papers with Solutions

Home / Engineering & Other Exams / UGC NET 2026 PYQ ⬇️ Download Papers and Solutions 📋 Exam Pattern 💡 Preparation Tips ❓ FAQs 📊 Exam Highlights: Electronic Science (88) Feature Details Junior Research Fellowship (JRF) ₹37,000 + HRA per month Eligibility M.Sc/M.Tech in Electronics (55%) Validity of Certificate JRF (3 Years) | Lectureship (Lifetime) 📥 Download UGC NET Electronics PDFs Complete collection of previous year question papers, answer keys and explanations for Subject Code 88. Start Downloading 📂 View All Question Papers June 2025 - Question Paper Download PDF June 2025 - Solved Paper + Explanation ...

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 📈 Q-function 📚 Resources BASK Modulation Transmits one of two signals: 0 or $\sqrt{E_b}$, representing binary 0 and 1. Simple but sensitive to noise. BFSK Modulation Transmits one of two signals: $\sqrt{E_b}$ on the Y-axis or $\sqrt{E_b}$ on the X-axis. These are orthogonal signals. BPSK Modulation Transmits $+\sqrt{E_b}$ or $-\sqrt{E_b}$ (antipodal signaling). Most efficient binary scheme. ...

Coherence Bandwidth and Coherence Time (with MATLAB + Simulator)

🧮 Coherence Bandwidth 🧮 Coherence Time 🧮 MATLAB Code s 📚 Further Reading For Doppler Delay or Multi-path Delay Coherence time T coh ∝ 1 / v max (For slow fading, coherence time T coh is greater than the signaling interval.) Coherence bandwidth W coh ∝ 1 / τ max (For frequency-flat fading, coherence bandwidth W coh is greater than the signaling bandwidth.) Where: T coh = coherence time W coh = coherence bandwidth v max = maximum Doppler frequency (or maximum Doppler shift) τ max = maximum excess delay (maximum time delay spread) Notes: The notation v max −1 and τ max −1 indicate inverse proportionality. Doppler spread refers to the range of frequency shifts caused by relative motion, determining T coh . Delay spread (or multipath delay spread) determines W coh . Frequency-flat fading occurs when W coh is greater than the signaling bandwidth. Coherence Bandwidth Coherence bandwidth is...