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

📄 main.m

📁 这是一个关于在无线光通信中
💻 M
字号:
clear all
tic
ebno = 14;
%rows=128;cols=256;
k = 256;
maximum_blockerror=500;
blockerrors=0;
biterrors=0;
block=0;
%s=round(rand(1, cols-rows));

%产生H矩阵
%H = genH(rows,cols);

%使用H矩阵进行LDPC编码
%[u,P,rearranged_cols]=ldpc_encode(s,H);
%bits = u;
%numbits = length(bits);
%numbits=10000;
%bits=round(rand(1, numbits));
%amp=1;
%tx_waveform=bpsk(u,amp);
while(blockerrors<maximum_blockerror) 
    %s = zeros(1,rows);
    s = zeros(1,k);
    %[u,P,rearranged_cols] = ldpc_encode(s,H);
    %bits = u;
    bits = s;
    numbits=length(bits);
    
    [PPMseqOUT]=PPMencode(numbits,bits);
%r_PPMseq=abs(awgn(PPMseqOUT,SNR));
    Eb = (1/length(PPMseqOUT))*sum(PPMseqOUT.^2);
    EbNo = 10.^(ebno./10);
    No = Eb./EbNo;
    nstdv = sqrt(No./2);
    noise = nstdv.*randn(1,length(PPMseqOUT));
    r_PPMseq = PPMseqOUT*0.3981 + noise;
    %[rxbits] = PPM_hard_decode(r_PPMseq,numbits)
    [rxbits llr]=PPM_soft_decode(r_PPMseq,numbits);
%WB=sum(abs(rxbits-bits));
%BER=WB/numbits;
%[rxbits llr]=PPM_soft_decode(r_PPMseq,numbits);
%scale(1:length(u))=1;  %No fading.

%LDPC译码
   %[uhat,vhat]=ldpc_decode(llr,H,rearranged_cols)
   %errmax=find(s~=uhat);
   %nerr=length(errmax);
    %Errors=zeros(1,length(uhat));
    %Errors(find(s~=uhat))=1;
    Errors=zeros(1,length(rxbits));
    Errors(find(s~=rxbits))=1;
    if sum(Errors)~=0
            blockerrors=blockerrors+1;
   end
        
   biterrors=biterrors+sum(Errors);
   block=block+1;
end
 %BER=biterrors/(block*rows);
 BER=biterrors/(block*k);
 toc

⌨️ 快捷键说明

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