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

📄 ldpc_test.m

📁 20072010.rar:tubor,LDPC,convolution的部分代码
💻 M
字号:
clear all;
clc
M=100;
N=200;
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;

n=1;
%  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)
     
     t0=0;
    sigma_t=1/(2*r*EbN0_no_db);
    sigma = sqrt(sigma_t);  
    %sigma = 1; 
    frame_num=100;
    loops=0;
    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*(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^2));        % likelihoods
         f1 = (f1(:))';                      % make it a row vector
         f0=1-f1;
         [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(n)=t0./(length(x)*frame_num);
    n=n+1;
 end
 
%  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 + -