⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ldpc_test_2.asv

📁 20072010.rar:tubor,LDPC,convolution的部分代码
💻 ASV
字号:
clear all;
clc
M=500;
N=600;
t=3;
q=2;
seed=123;
r=1-(M/N);
[H]=ldpc_generate(M,N,t,q,seed);
[h,G]=ldpc_h2g(H);

%X=[sign(randn(1,size(G,1)))+1)/2;

nn=0;
t0=0;
%  i=0; %add
%  EbN0_db=[2];
%  EbN0_no_db=10.^(EbN0_db./10);
%  err=zeros(1,length(EbN0_no_db));%add
%  err_awgn=zeros(1,length(EbN0_no_db));
%  for kk=1:length(EbN0_db)
for SNR=-8:0.5:-4
    fprintf('snr=%g\n',SNR);
%     EbN0_no_db=10^(SNR/10);
    sigma_t=1/(2.*10^(SNR/10));
    sigma_awgn = sqrt(sigma_t);  
    %sigma = 1; 
    frame_num=50;
    loops=0;
    nn=nn+1;
    while(loops<frame_num)%add
                                % AWGN noise deviation
         x = (sign(randn(1,size(G,1)))+1)/2; % random bits
         y = mod(x*G,2);                     % encoding 
         z_m=qpsk_modul(y);
%          z = 2*y-1;                          % BPSK modulation
          r=z_m + sigma_awgn*(randn(1,0.5*size(G,2))+i*randn(1,0.5*size(G,2)));     % AWGN transmission
         z=ydqpsk(r);
%          zr=(sign(z)+1)/2;
%          err_awgn(kk)=err_awgn(kk)+length(find(x~=zr(size(G,2)+1-size(G,1):size(G,2))))
         f1=1./(1+exp(-2*z/sigma_awgn^2));        % likelihoods
         f1 = (f1(:))';                      % make it a row vector
         f0=1-f1;
         [QQ,z_hat, success, k] = ldpc_decode(f1,h,2);
         x_hat = z_hat(size(G,2)+1-size(G,1):size(G,2));
         x_hat = x_hat'; 
         t0=t0+length(find(x~=x_hat));
        loops=loops+1;
    end%add
    ber(nn)=t0./(length(x)*frame_num);
     ber_snr=ber(nn);
     fprintf('ber=%g\n',ber_snr);
     t0=0;
 end
 x_line=[-8:0.5:-4];
     semilogy(x_line,ber_snr,'-bo')
%  berch=err_awgn/((frame_num)*(N-M))
%   berldpc=err/((frame_num)*(N-M))%add
%  semilogy(EbN0_db,berch,'-bo')
%  hold on
%  semilogy(EbN0_db,berldpc,'-bo')
%  grid on
%  xlabel('EbN0(dB)')
%  ylabel('BER')
%  legend('berchannel','berldpc')
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -