Matlab 有关 bpsk 调制解调的误码率仿真
bpsk 调制解调的误码率仿真
复制内容到剪贴板
代码:
%% bpsk simulation
clear all;
close all;
max_loop=1*10^2;
size=20; %% number of bits
x=[0:10];
for ebn0=0:10
totalerror=0;
for loop=1:max_loop
signal=randint(1,size); %signal generation
%bpsk modulation
modsignal=signal*2-1
% get Eb
eb=sum(modsignal.^2)/size;
%% getting noise power
noise_power=sqrt(0.5*eb*10.^(-ebn0/10));
%creating AWGN
noise=randn(1,size)*noise_power;
%% transmission
transignal=modsignal+noise;
%demodulation
demosignal=transignal>0;
%check error
noe=sum(abs(signal-demosignal));
%bit error rate
totalerror=totalerror+noe;
end
%calculate avg ber
ber1(ebn0+1)=totalerror/(size*max_loop);
%ideal error probability
pb1(ebn0+1)=0.5*erfc(sqrt(10.^(ebn0/10)));
fprintf('%d',ebn0);
end
%print ideal graph;
figure;
semilogy(x,pb1,'r');