91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 5KB
    文件類型: .m
    金幣: 1
    下載: 0 次
    發布日期: 2021-05-10
  • 語言: Matlab
  • 標簽: 校驗矩陣??LDPC??

資源簡介

ldpc的編碼方法采用matlab構造校驗矩陣,程序比較長,但是看起來一目了然,希望對大家有用

資源截圖

代碼片段和文件信息

%function?[H]=genH(rowscols)
rows=12;
cols=24;
row_flag(1:rows)=0;
parity_check=zeros(rowscols);

%add?bits_per_col?1‘s?to?each?column?with?the?only?constraint?being?that?the?1‘s?should?be
%placed?in?distinct?rows
%%%%%%%%使每列隨機產生3個1即列重為3%%%%%%%%%%%%%
bits_per_col=3;
for?i=1:cols
???a=randperm(rows);
???for?j=1:bits_per_col
??????parity_check(a(j)i)=1;
??????row_flag(a(j))=row_flag(a(j))+1;
???end
end

%計算每行1的最多個數
max_ones_per_row=ceil(cols*bits_per_col/rows);

%add?1‘s?to?rows?having?no?1(a?redundant?row)?or?only?one?1(that?bit?in?the?codeword?becomes
%zero?irrespective?of?the?input)
for?i=1:rows
???if?row_flag(i)==0????%如果該行沒有1,則隨機添加兩個1
?????for?k=1:2
????????j=unidrnd(cols);
????????while?parity_check(ij)==1
????????????j=unidrnd(cols);
????????end
????????parity_check(ij)=1;????????%在找到的新位置上置1
????????row_flag(i)=row_flag(i)+1;??%行重加1
??????end
???end
???if?row_flag(i)==1????%如果該行只有1個1,則隨機再添加1個1
??????j=unidrnd(cols);
??????while?parity_check(ij)==1
?????????j=unidrnd(cols);
??????end
??????parity_check(ij)=1;
??????row_flag(i)=row_flag(i)+1;
???end
end

%try?to?distribute?the?ones?so?that?the?number?of?ones?per?row?is?as?uniform?as?possible
%嘗試在列上分散1的位置,使得每行1的個數均衡(相近或相一致)
for?i=1:rows
???j=1;
???a=randperm(cols);
???while?row_flag(i)>max_ones_per_row;??%如果該行行重大于允許的最大行重,則進行處理
??????if?parity_check(ia(j))==1?%隨機選擇某一該行上為1的列來處理,將該列該行上的1分散到其他的行
?????????%隨機查找該列上適合放置1(行重小于允許的最大行重,且該位置上為0)的行
?????????newrow=unidrnd(rows);
?????????k=0;
?????????while?(row_flag(newrow)>=max_ones_per_row?|?parity_check(newrowa(j))==1)?&?k????????????newrow=unidrnd(rows);
????????????k=k+1;
?????????end
?????????if?parity_check(newrowa(j))==0
????????????%將待處理行上的1轉放到找到的行上
????????????parity_check(newrowa(j))=1;
????????????row_flag(newrow)=row_flag(newrow)+1;
????????????parity_check(ia(j))=0;
????????????row_flag(i)=row_flag(i)-1;
?????????end
??????end%if?test
??????j=j+1;
???end%while?loop
end%for?loop

%try?to?eliminate?cycles?of?length?4?in?the?factor?graph
%嘗試刪除4環
for?loop=1:10
???chkfinish=1;
???for?r=1:rows
??????ones_position=find(parity_check(r:)==1);
??????on

評論

共有 條評論