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

📄 lcs.m

📁 ldpc系统建模
💻 M
字号:
 
for SNR=6
    SNR
maxiter=50;
[m,n]=size(H);
%dv=3;    %vertical degree
rate=500/n;
sigma= sqrt(1/(2*rate*10^(SNR/10)));
ggg=0;
for xxx=1
    xxx
input=rand(1,100*150)>0.5;
    [m,n]=size(input);
b=zeros(1,n/2);
 for i=1:n/2
      a=num2str(input(2*i-1:i*2)');
      b(i)=bin2dec(a');
 end;
  a11=zeros(1,150*50);
  a21=zeros(1,150*50);
    for u=1:150
  [a1,a2]=sttc_encode_QPSK_8state_2transmit(input(((u-1)*100+1):((u-1)*100+100)));
   a11(((u-1)*50+1):((u-1)*50+50))=a1;
   a21(((u-1)*50+1):((u-1)*50+50))=a2;
    end;
    a12=zeros(1,150*100);
    b1=zeros(1,150*100);
    b1=dec2bin(a11);
  a22=zeros(1,150*100);
  b2=zeros(1,150*100);
  b2=dec2bin(a21);
  for i=1:150*50
      a12(((i-1)*2+1):((i-1)*2+2))=b1(i,:);
      a22(((i-1)*2+1):((i-1)*2+2))=b2(i,:);
  end;
    out1=zeros(1,30*1000);
    out2=zeros(1,30*1000);
    for i=1:30
    out1(((i-1)*1000+1):((i-1)*1000+1000))=ldpc_linetime_encode_3(a12(((i-1)*500+1):((i-1)*500+500))-48,H,inv_phi1,g); % encode 
    out2(((i-1)*1000+1):((i-1)*1000+1000))=ldpc_linetime_encode_3(a22(((i-1)*500+1):((i-1)*500+500))-48,H,inv_phi1,g);
    end;
    [Dem1,Dem2]=twoto22(out1,out2,SNR);
     symbol1=zeros(1,1000*30);
for l=1:500*30
symbol1(2*l-1)=real(-Dem1(l))/sqrt(2);
symbol1(2*l)=imag(-Dem1(l))/sqrt(2);
end;
 symbol2=zeros(1,1000*30);
for l=1:500*30
symbol2(2*l-1)=real(-Dem2(l))/sqrt(2);
symbol2(2*l)=imag(-Dem2(l))/sqrt(2);
end;
symbol3=zeros(1,1000*60);
symbol3=[symbol1 symbol2];
   f1=1./(1+exp(-2*symbol3/sigma^2));        % likelihood  counting probability
    f1 = (f1(:))';                      % make it a row vector
    f0=1-f1;
    f=zeros(2,1000*60);
    f(1,:)=f0;
    f(2,:)=f1;
    x_hat=zeros(1,60*500);
       for j=1:60
    [z_hat,success,t]=decode(f(:,((j-1)*1000+1):((j-1)*1000+1000)),H,maxiter);
    x_hat(((j-1)*500+1):((j-1)*500+500))=z_hat(1:500);
    end;
    a13=zeros(1,150*100);
    a23=zeros(1,150*100);
    a13=x_hat(1:150*100);
    a23=x_hat(15001:30000);
    a14=zeros(1,150*50);
    a24=zeros(1,150*50);
    for i=1:150*50
      a=num2str(a13(2*i-1:i*2)');
      aa=num2str(a23(2*i-1:i*2)');
      a14(i)=bin2dec(a');
      a24(i)=bin2dec(aa');
    end;
     fin_out=zeros(1,150*50);
    for i=1:150
      dataout=decode3_QPSK_8state_2r(a14(((i-1)*50+1):((i-1)*50+50)),a24(((i-1)*50+1):((i-1)*50+50)));
      fin_out(((i-1)*50+1):((i-1)*50+50))=transform_to_input(dataout);
    end;
    for u=1:150
     for f=1:50
      if fin_out(f+(u-1)*50)~=b(f+(u-1)*50)
          ggg=ggg+1;
          f
          break;
      end;
  end;
    end;
end;
    err33(SNR-5)=ggg/(150*xxx);
end;
    
    %snr=[4 4.5 5 5.5 6 6.5 6.7 6.8]
    
    
    
    
    
    

⌨️ 快捷键说明

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