clc;
clear all;
n=10;
N=2^n; % block length
p = 0.5;
rate =0.15:0.05:0.5;
[Vals,Inds] = get_bec_erasure_rates(n,0.5);
time_start = cputime;
ber=zeros(1,length(rate));
berr=zeros(1,length(rate));
tic
for m=1:length(rate)% rate = user_specified_rates;user_specified_rates = 0.5;
K(m) = round(rate(m)*N);
%frozen_positions = Inds(1:N-K(m));
%free_positions = sort(Inds(N-K(m)+1:N),'ascend');
for i=1:K(m)
ber(m)=ber(m)+Vals(i);%上限值是选取的K个Z(W)的总和
end
berr(m)=Vals(K(m));%下限值是选取Z(W)中的最大值
end
toc
total_time = cputime-time_start;
semilogy(rate,ber,'g');
%axis manual;
set(gca,'xtick',0.15:0.05:0.5);
%set(gca, 'YLim',[10^-4 1]);
grid on;
%set(gca,'ytick',-10:-2:0);
xlabel('Rate(birs)');
ylabel('Bounds on probability of block error');
%text(0.45,10^-8,'2^2^0');
hold on;
semilogy(rate,berr,'r--');
hold on;