| 
				 二元信道容量仿真 
 
			
			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');
 |