二元信道容量仿真
Nsnr = 100;
SNRvec=linspace(-14,10,Nsnr)';
Nx = 30000;
x = linspace(-15,15,Nx)';
dx = x(2)-x(1);
Ix = ones(Nx,1);
Ixy = zeros(Nsnr,1);
EbNo = zeros(Nsnr,1);
for i=1:Nsnr
i;
var = 10^(-0.1*SNRvec(i));
g0 = 1/sqrt(2*pi*var);
fyp1 = g0*exp((-(x-Ix).^2)/(2*var));
fym1 = g0*exp((-(x+Ix).^2)/(2*var));
fy= 0.5*(fyp1+fym1);
jp1 = find(fyp1>1e-10);
jm1 = find(fym1>1e-10);
Ixyp1 = dx*sum(fyp1(jp1).*log2(fyp1(jp1)./fy(jp1)));
Ixym1 = dx*sum(fym1(jm1).*log2(fym1(jm1)./fy(jm1)));
Ixy(i) = 0.5*Ixyp1+0.5*Ixym1;
end
figure(1);subplot(111);
plot(SNRvec,Ixy);grid on;xlabel('SNR (dB)');
ylabel('Ixy');
|