h_to_alist.m

来自「Generates Alist format files for SFT LDP」· M 代码 · 共 101 行

M
101
字号
function H_to_Alist(H,m,output_file)
%QC_LDPC(m,a,b) as defined in Fujita paper
%order(a) = j and order(b) = k






    
    Identity = eye(m);
    sigma = circshift(Identity,[0 -1]);
    
 
    r = size(H);
    
    for i=1:r(1,1)
        for j =1:r(1,2)
            if j==1
                Array = sigma^H(i,j);
            else
                Array = [Array sigma^H(i,j)];
            end
        end
        if i == 1
            H1 = Array;
        else
            H1 = [H1;Array];
        end
    end
 

    rank1 = rank(H1)
    v = size(H1);
    k = v(1,2)-rank1
    rate = (v(1,2)- rank1)/v(1,2)
    
    
   
    %Put Array in A-list format
    [n_vector,m_vector,n_length,m_length] = MatrixToAlist(H1);
    
    [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);



    







⌨️ 快捷键说明

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