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

📄 array_ldpc.m

📁 Generates Alist format files for SFT LDPC codes
💻 M
字号:
function Array = Array_LDPC(p,j,k,output_file)
%Input Array(p,j,k) as defined in Fujita paper

invalid_parameters = 0;



if(isprime(p) && mod(p,2))                                   %checking to make sure "p" is prime and odd
    Sigma = Sigma_Array(p);
    Identity = eye(p);
else
    invalid_parameters = 1;
end


if (  (j<2) || (j > k) || (k >p))
    invalid_parameters = 1;
end

if invalid_parameters ~= 1
    %make Array code
    for q=1:j
        for r = 1:k
            if(q==1 || r == 1)
                Matrix = Identity;
            else
                Matrix = Sigma^((q-1)*(r-1));
            end
            
            for y=1:p
                for z = 1:p
                    row = (q-1)*p;
                    column = (r-1)*p;
                    Array(row + y,column + z) = Matrix(y,z);
                end
            end
        end
    end
    
    rank1 = rank(Array);
     %Put Array in A-list format
    [n_vector,m_vector,n_length,m_length] = MatrixToAlist(Array);
    
    [m,m_max] = size(m_vector);
    [n,n_max] = size(n_vector);
    
    %for i=1:rows
     %   m_size(1,i) = m_max;
     %end
    
    %for j=1:columns
     %   n_size(1,j) = n_max;
     %end
    
    fpointer = fopen(output_file,'w');
    fprintf(fpointer,'%d %d \n',n,m);
    fprintf(fpointer,'%d %d \n',n_max,m_max);
    
    for i=1:n
        fprintf(fpointer,'%d ',n_length(1,i));
    end
    fprintf(fpointer,'\n');
    
    for i=1:m
        fprintf(fpointer,'%d ',m_length(1,i));
    end
    fprintf(fpointer,'\n');
    
    %print n_vector
    
    for i = 1:n
        for j = 1:n_length(1,i)
            fprintf(fpointer,'%d ',n_vector(i,j));
        end
        fprintf(fpointer,'\n');
    end
    
    
    %print m_vector
    for i = 1:m
        for j = 1:m_length(1,i)
            fprintf(fpointer,'%d ',m_vector(i,j));
        end
        fprintf(fpointer,'\n');
    end
    
    fprintf(fpointer,'\n');
    
    
    fclose(fpointer);
    
    
    
    %dlmwrite('m_size.txt',m_size,' ',0,0);
    %dlmwrite('n_size.txt',n_size,' ',0,0);
    %dlmwrite('n_vector.txt',n_vector,' ',0,0);
    %dlmwrite('m_vector.txt',m_vector,' ',0,0);
    
else
    Array = -1;
end





⌨️ 快捷键说明

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