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

📄 lt_encode.m

📁 自己做的数字喷泉码(信道编码)生成过程。
💻 M
字号:
% [X,n,g] = LT_encode(k,ml,A)
% [X,n,g] = LT_encode(k,ml,A,X,n,g)
function [X,n,g,c_deg,v_deg,c_node,v_node] = LT_encode(k,ml,A,rate,varargin)
nbIn = nargin;
if nbIn ~= 4 && nbIn ~= 7
    fprintf('参数个数不匹配,%d\n',nbIn);
end;
c=floor(k*rate);
delta=0.05;
if nbIn == 4
    n=floor(k*rate);
    [d,mul] = RobustSoliton(k,c,delta,n);
    %d = IdealSoliton(k,n);
    %d = YangSoliton(k,n);
    for j=1:n
        % 对长度为k的input symbols产生m个[1..k]之间的Ideal Soliton度分布
        %d = IdealSoliton(k,1);
        % 在[1..k]之间以度d(d个‘1')为先条件的均匀分布
        r=uniformInt(0,k,d(j));
        x=zeros(1,k);
        x(r)=1;
        g(:,j)=x';
    end;
    %y=sort(sum(g)); %一定要产生一个degree==1的 output symbol
    %if y(1) > 1
    %    d=1;
    %    r=uniformInt(0,k,d);
    %    x=zeros(1,k);
    %    x(r)=1;
    %    n=n+1;
    %    g(:,n)=x';
    %end;        
    %  保证所有input symbol被覆盖(covered)
    %rw = sort(sum(g'));            
    %while rw(1)==0
    %        d = RobustSoliton(k,c,delta,1);
            %d = RobustSoliton(k,c,delta,1);
    %        r=uniformInt(0,k,d);
    %        x=zeros(1,k);
    %        x(r)=1;
    %        n=n+1;
    %        g(:,n)=x';   
    %        rw = sort(sum(g'));  
    %end;    
    [c_deg,v_deg,c_node,v_node]=updateGraphic(k,n,g);
    for i=1:n   % 根据XOR关系矩阵g进行编码
        x=zeros(1,ml);
        for j=1:v_deg(i)
            c = v_node(i,j);
            x = mod(x+A(c,:),2);
        end;
        X(i,:)=x;
    end;
elseif nbIn == 7
    X=varargin{1};
    n=varargin{2};
    g=varargin{3};
    [d,mul] = RobustSoliton(k,c,delta,3);
    %d = IdealSoliton(k,3);
    %d = YangSoliton(k,3);
    for i=1:3
        r=uniformInt(0,k,d(i));
        x=zeros(1,k);
        x(r)=1;
        n=n+1;
        g(:,n)=x';  
    end;
    [c_deg,v_deg,c_node,v_node]=updateGraphic(k,n,g);
    for i=1:n   % 根据XOR关系矩阵g进行编码
        x=zeros(1,ml);
        for j=1:v_deg(i)
            c = v_node(i,j);
            x = mod(x+A(c,:),2);
        end;
        X(i,:)=x;
    end; 
end;

⌨️ 快捷键说明

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