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

  • 大小: 12KB
    文件類型: .c
    金幣: 1
    下載: 0 次
    發布日期: 2023-12-04
  • 語言: 其他
  • 標簽: BCH碼??

資源簡介

BCH碼 編碼譯碼 能編譯!!!! 能運行

資源截圖

代碼片段和文件信息

/************************************************************************/
/*
日期:2014-05-17?17:17:58
程序功能:BCH編碼和譯碼的算法實現
Author:鄭巒、李軍
開發環境:Microsoft?Visual++?6.0,windows?XP
????????????????????????????????????????????????????????????????????????*/
/************************************************************************/

#include?
#include?
#include?
#include?

//定義全局變量
int?????????????m?n?length?k?t?d;
int?????????????p[21];
int?????????????alpha_to[1048576]?index_of[1048576]?g[548576];
int?????????????recd[1048576]?data[1048576]?bb[548576];
int?????????????numerr?errpos[1024]?decerror?=?0;



/*
?*?read_p()的功能:
?*1:?????輸入多項式p(x)的階層m用于計算伽羅瓦域GF(2**m).用于得到預先計算的p(x)的系數
?*2:?????輸入碼長
?*/
void?read_p()

{
int i?ninf;

printf(“\n確定多項式p(x)階層m的值,?其BCH碼的長度區間為:\n“);
printf(“????2**(m-1)-1?????do?{
???printf(“輸入m??(m在2和20之間取值):?“);
???scanf(“%d“?&m);
????}?while?(?!(m>1)?||?!(m<21)?);

?//計算出輸入多項式p(x)
for?(i=1;?i p[i]?=?0;
p[0]?=?p[m]?=?1;
if?(m?==?2) p[1]?=?1;
else?if?(m?==?3) p[1]?=?1;
else?if?(m?==?4) p[1]?=?1;
else?if?(m?==?5) p[2]?=?1;
else?if?(m?==?6) p[1]?=?1;
else?if?(m?==?7) p[1]?=?1;
else?if?(m?==?8) p[4]?=?p[5]?=?p[6]?=?1;
else?if?(m?==?9) p[4]?=?1;
else?if?(m?==?10) p[3]?=?1;
else?if?(m?==?11) p[2]?=?1;
else?if?(m?==?12) p[3]?=?p[4]?=?p[7]?=?1;
else?if?(m?==?13) p[1]?=?p[3]?=?p[4]?=?1;
else?if?(m?==?14) p[1]?=?p[11]?=?p[12]?=?1;
else?if?(m?==?15) p[1]?=?1;
else?if?(m?==?16) p[2]?=?p[3]?=?p[5]?=?1;
else?if?(m?==?17) p[3]?=?1;
else?if?(m?==?18) p[7]?=?1;
else?if?(m?==?19) p[1]?=?p[5]?=?p[6]?=?1;
else?if?(m?==?20) p[3]?=?1;
printf(“p(x)?=?“);
????n?=?1;
for?(i?=?0;?i?<=?m;?i++)?{
????????n?*=?2;
printf(“%1d“?p[i]);???????//輸出多項式p(x)
????????}
printf(“\n“);
n?=?n?/?2?-?1;
ninf?=?(n?+?1)?/?2?-?1;
do??{
printf(“輸入BCH碼的碼長?(%d? scanf(“%d“?&length);
}?while?(?!((length?<=?n)&&(length>ninf))?);
}



/*
?*?generate_gf()功能:
?*?生成域GF(2?*?*m)的不可約多項式p(X)系數p[0].?.?p[m].??
?*?查找表:
?*???從指數到多項式形式;?j=alpha^i;
?*???從多項式到指數形式:alpha^i]?=?i;
?*?α=2?是?GF(2**m)的原始數據
?*/
void?generate_gf()
{
register?int??i?mask;?????//定義mask(掩碼)

mask?=?1;
alpha_to[m]?=?0;
for?(i?=?0;?i? alpha_to[i]?=?mask;
index_of[alpha_to[i]]?=?i;
if?(p[i]?!=?0)
alpha_to[m]?^=?mask;
mask?<<=?1;
}
index_of[alpha_to[m]]?=?m;
mask?>>=?1;
for?(i?=?m?+?1;?i? if?(alpha_to[i?-?1]?>=?mask)
??alpha_to[i]?=?alpha_to[m]?^?((alpha_to[i?-?1]?^?mask)?< else
??alpha_to[i]?=?alpha_to[i?-?1]?< index_of[alpha_to[i]]?=?i;
}
index_of[0]?=?-1;
}


/*
?*?計算二進制BCH碼的生成多項式.?
?*?首先生成周期數組和階層?2**m?-?1?cycle[][]?=??(i?2*i?4*i?...?2^l*i).?
?*?然后確定哪些周期集合包含的?(d-1)
?*?連續整數?{1..(d-1)}.?本原產生式產生了。
?*?為線性形

評論

共有 條評論