Ofdm Sim
Ofdm Sim
CODE:
clear; clc;
% Parameters
N = 64; cp_len = 16; num_symbols = 10; mod_order = 4; num_frames = 1000;
snr_range = 0:2:20; mod_type = 'psk';
% Modula on
mod_fn = @(data) pskmod(data, mod_order);
demod_fn = @(data) pskdemod(data, mod_order);
if strcmpi(mod_type, 'qam')
mod_fn = @(data) qammod(data, mod_order, 'UnitAveragePower', true);
demod_fn = @(data) qamdemod(data, mod_order, 'UnitAveragePower', true);
end
% Plot
figure;
semilogy(snr_range, fer, 'b-o', 'LineWidth', 2); hold on;
if mod_order == 4, semilogy(snr_range, ber, 'r--s', 'LineWidth', 2); end
grid on;
xlabel('SNR (dB)'); ylabel('Error Rate');
tle(['OFDM Performance: ', num2str(mod_order), '-', upper(mod_type)]);
legend('FER', 'BER');
OUTPUT: