Can you help me on this code to identify Eb_N0_dB ? I would like to know also what ipHat is.
4 views (last 30 days)
Show older comments
The code is as below:
% Script for simulating binary phase shift keyed transmission and % reception and compare the simulated and theoretical bit error % probability clc;clear;close all
N = 10^8 % number of bits or symbols
rand('state',100); % initializing the rand() function
randn('state',200); % initializing the randn() function
% Transmitter
ip = rand(1,N)>0.5; % generating 0,1 with equal probability
s = 2*ip-1; % BPSK modulation 0 -> -1; 1 -> 1
n = 1/sqrt(2)*[randn(1,N) + j*randn(1,N)]; % white gaussian noise, 0dB variance
Eb_N0_dB = [-3:10]; % multiple Eb/N0 values
for ii = 1:length(Eb_N0_dB)
% Noise addition
y = s + 10^(-Eb_N0_dB(ii)/20)*n; % additive white gaussian noise
% receiver - hard decision decoding
ipHat = real(y)>0;
% counting the errors
nErr(ii) = size(find([ip- ipHat]),2);
end
simBer = nErr/N; % simulated ber
theoryBer = 0.5*erfc(sqrt(10.^(Eb_N0_dB/10))); % theoretical ber
% plot
close all
figure
semilogy(Eb_N0_dB,theoryBer,'b.');
hold on
%semilogy(Eb_N0_dB,simBer,'mx-');
grid on
legend('theory', 'simulation');
xlabel('SNR dB');
ylabel('BER Bit Error Rate');
title('Bit error probability curve for BPSK modulation');
0 Comments
Answers (1)
Image Analyst
on 2 Dec 2016
You can find "Eb_N0_dB" on this line. Use the control-F command if you don't see it.
Eb_N0_dB = [-3:10]; % multiple Eb/N0 values
ipHat is defined here:
ipHat = real(y)>0;
It is a boolean/logical variable that is "true" if y has a positive real component.
Granted, the comments in this code are horrible (because there are not enough of them), and you should scold the original author for their bad programming habits.
2 Comments
See Also
Categories
Find more on BPSK in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!