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

📄 sumproduct_example.m

📁 density evolution for LDPC codes design and some related documents
💻 M
字号:
% =================================================================% sumproduct_example.m% (C) Tadashi Wadayama, 2002% =================================================================function sumproduct_example()% -----------------------------------% 晞崋僷儔儊乕僞丄専嵏峴楍偺撉傒崬傒% -----------------------------------filename = '6.3.spmat';			% 専嵏峴楍僼傽僀儖(spmat宍幃)fp = fopen(filename,'r');n = fscanf(fp,'%d',1);			% 晞崋挿m = fscanf(fp,'%d',1);			% 専嵏婰崋悢kmax = fscanf(fp,'%d',1);		% 峴廳傒偺嵟戝抣jmax = fscanf(fp,'%d',1);		% 楍廳傒偺嵟戝抣for j = 1:m  row_weight(j) = fscanf(fp,'%d',1);	% 奺峴偺峴廳傒end;for j = 1:n  column_weight(j) = fscanf(fp,'%d',1);% 奺楍偺楍廳傒end;counter = zeros(1,n);row_list = zeros(m,kmax);for i = 1:m  for j = 1:row_weight(i);    a = fscanf(fp,'%d',1);    row_list(i,j) = a;    counter(a) = counter(a) + 1;    column_list(a,counter(a)) = i;  endend;fprintf('n = %d, m = %d\n',n,m);fprintf('kmax = %d, jmax = %d\n',kmax,jmax);fprintf('row_list\n');disp(row_list);fprintf('column_list\n');disp(column_list);% -----------------------------------% 暘嶶偺弶婜愝掕偲懳悢栟搙斾偺寁嶼% -----------------------------------%捠怣楬偼AWGN捠怣楬傪壖掕rword = [1.620803,0.264281,-0.031637,-0.127654,0.746347,1.003543]; % 庴怣岅var = 0.794328;				% 暘嶶lambda = 2.0/var * rword;		% 懳悢栟搙斾% -----------------------------------% 懳悢椞堟sum-product暅崋朄% -----------------------------------alpha = zeros(m,n);beta = zeros(m,n);loop_max = 5;				% 嵟戝斀暅夞悢for loop_counter = 1: loop_max;% 峴張棟  for i = 1:m    for j = 1:row_weight(i);      sum = 0.0; prod = 1.0;      for k = 1:row_weight(i);	if k ~= j	  tmp = lambda(row_list(i,k)) + beta(i,row_list(i,k));	  sum = sum + gallager_f(abs(tmp));	  prod = prod * sign(tmp);	end;      end;      alpha(i,row_list(i,j)) = prod * gallager_f(sum);    end;  end;% 楍張棟  for i = 1:n    sum2 = 0.0;    for j = 1:column_weight(i);      sum = 0.0;      for k = 1:column_weight(i);	if k ~= j	  sum = sum +  alpha(column_list(i,k),i);	end;      end;      beta(column_list(i,j),i) = sum;      sum2 = sum2 + alpha(column_list(i,j),i);    end;    posterior(i) = lambda(i) + sum2;  end;  fprintf('----------------------------- 儖乕僾 = %d\n',loop_counter);  fprintf('奺價僢僩偺懳悢帠屻妋棪斾:\n');  disp(posterior);end;

⌨️ 快捷键说明

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