how to plot ber vs receiver sensitivity for optical receiver using differnt modulation such as ook,bpsk,dpsk,ppm...
10 views (last 30 days)
Show older comments
i need to plot the graph using different modulation technique for ber vs receiver sensitivity using formula...
0 Comments
Answers (1)
AR
on 14 Aug 2025
To plot Bit Error Rate (BER) versus receiver sensitivity for different modulation schemes in MATLAB:
1. Choose the modulation schemes to compare, such as BPSK, QPSK, and 16-QAM.
2. Set up an SNR (Signal-to-Noise Ratio) range in dB for the analysis.
3. Map each SNR value to a receiver sensitivity value. For illustration, you can assume that 0 dB SNR corresponds to -80 dBm sensitivity, and shift the SNR range accordingly.
4. Use standard BER formulas for each modulation:
a) BPSK/QPSK: BER = 0.5 * erfc(sqrt(SNR))
b) 16-QAM (approximate): BER = (3/8) * erfc(sqrt(SNR/10))
5. Calculate BER values for each modulation scheme across the sensitivity range.
6. Plot BER versus receiver sensitivity on a semilogarithmic scale to compare the performance of each modulation format.
Below is an example MATLAB script that implements this process:
% Define SNR range (in dB)
SNR_dB = -10:1:20;
SNR = 10.^(SNR_dB/10); % Convert SNR from dB to linear scale
% Map SNR to receiver sensitivity (illustrative)
% Assume -80 dBm sensitivity at 0 dB SNR
sensitivity = SNR_dB - 80;
% Compute BER for each modulation scheme
BER_BPSK = 0.5 * erfc(sqrt(SNR)); % BPSK
BER_QPSK = BER_BPSK; % QPSK (same as BPSK)
BER_16QAM = (3/8) * erfc(sqrt(SNR/10)); % 16-QAM (approximate)
% Plot results
figure;
semilogy(sensitivity, BER_BPSK, 'b-o', 'LineWidth', 2); hold on;
semilogy(sensitivity, BER_QPSK, 'r-s', 'LineWidth', 2);
semilogy(sensitivity, BER_16QAM, 'g-^', 'LineWidth', 2);
xlabel('Receiver Sensitivity (dBm)');
ylabel('Bit Error Rate (BER)');
title('BER vs. Receiver Sensitivity for Different Modulation Schemes');
legend('BPSK', 'QPSK', '16-QAM');
grid on;
More modulation schemes can be added as needed by including their BER formulas.
To know more about the “erfc()” and “semilogy()” function, run the following commands respectively:
doc erfc
doc semilogy
Hope this is helpful!
0 Comments
See Also
Categories
Find more on QPSK in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!