Basic OFDM with No Cyclic Prefix
OFDM simultaneously transmits closely spaced orthogonal subcarrier signals of overlapping sinusoids. Transmission data is first coded and modulated, typically into QAM symbols. These symbols are loaded into equally spaced frequency bins and then an inverse fast Fourier transform (IFFT) is applied to transform the signal into orthogonal overlapping sinusoids (subcarriers) in the time domain. Because the individual subcarriers are narrowband and experience flat fading, the receiver side equalization requires just one tap per subcarrier.
Create a simple OFDM system, using the single-carrier 16QAM signal as the OFDM modulator input. A stem plot shows that all frequency bins contain data.
bps = 4; % Bits per symbol M = 2^bps; % 16QAM nFFT = 128; % Number of FFT bins txsymbols = randi([0 M-1],nFFT,1); txgrid = qammod(txsymbols,M,UnitAveragePower=true); txout = ifft(txgrid,nFFT); stem(1:nFFT,real(txout))
Filter the transmission data through an AWGN channel with minimal noise. OFDM reception reverses the transmission processing. Apply an FFT and QAM demodulation, and then confirm that the received symbols match the transmitted symbols.
rxin = awgn(txout,40); rxgrid = fft(rxin,nFFT); rxsymbols = qamdemod(rxgrid,M,UnitAveragePower=true); if isequal(txsymbols,rxsymbols) disp("Recovered symbols match the transmitted symbols.") else disp("Recovered symbols do not match transmitted symbols.") end
Recovered symbols match the transmitted symbols.
All bins of the IFFT are filled with data for this transmission. In practical systems, edge bins are often left empty to serve as guard bands, and some bins can be used to send specific pilot signals. The combination of guard band and pilot signals helps with synchronization and equalization.