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

  • 大小: 11KB
    文件類型: .c
    金幣: 1
    下載: 1 次
    發布日期: 2021-05-15
  • 語言: C/C++
  • 標簽: rs編碼??c語言??

資源簡介

利用c語言編寫的rs編解碼程序,里邊有大概的注釋。方便學習和研究,有一定的參考價值。里邊包含編碼和解碼,有需要可以自取。

資源截圖

代碼片段和文件信息

//rs?code
//m=8
?
#include?
#include?
#include?
?
#define?mm??8??????????/*?RS?code?over?GF(2**4)?-?change?to?suit?*/
#define?nn??255??????????/*?nn=2**mm?-1???length?of?codeword?*/
#define?tt??10???????????/*?number?of?errors?that?can?be?corrected?*/
#define?kk??235???????????/*?kk?=?nn-2*tt??*/
?
int?pp[mm+1]?=?{1?0?1?1?1?0?0?0?1};
int?alpha_to?[nn+1]?index_of?[nn+1]?gg?[nn-kk+1]?;
int?recd?[nn]?data?[kk]?bb?[nn-kk]?;
?
void?generate_gf()
/*?生成GF(2^m)空間?*/
{
register?int?i?mask?;
mask?=?1?;
alpha_to[mm]?=?0?;
for?(i=0;?i {
alpha_to[i]?=?mask?;
index_of[alpha_to[i]]?=?i?;
if?(pp[i]!=0)
alpha_to[mm]?^=?mask?;
mask?<<=?1?;
}
index_of[alpha_to[mm]]?=?mm?;
mask?>>=?1?;
for?(i=mm+1;?i {
if?(alpha_to[i-1]?>=?mask)
alpha_to[i]?=?alpha_to[mm]?^?((alpha_to[i-1]^mask)<<1)?;
else?
alpha_to[i]?=?alpha_to[i-1]<<1?;
index_of[alpha_to[i]]?=?i?;
}
index_of[0]?=?-1?;
//alpha_to[nn]?=?1;
for(i=0;i printf(“gf%d?is%d\n“ialpha_to[i]);
}
?
void?gen_poly()
/*?生成---生成多項式*/
{
register?int?ij?;
gg[0]?=?2?;????/*?primitive?element?alpha?=?2??for?GF(2**mm)??*/
gg[1]?=?1?;????/*?g(x)?=?(X+alpha)?initially?*/
for?(i=2;?i<=nn-kk;?i++)
????{
gg[i]?=?1?;
for?(j=i-1;?j>0;?j--)
if?(gg[j]?!=?0)??
gg[j]?=?gg[j-1]^?alpha_to[(index_of[gg[j]]+i)%nn];
else?
gg[j]?=?gg[j-1]?;
gg[0]?=?alpha_to[(index_of[gg[0]]+i)%nn]?;?????/*?gg[0]?can?never?be?zero?*/
???}
???//printf(“polynomial:\n“);
???//for(i=0;?i<=nn-kk;?i++)
//???printf(“%d??????“?gg[i]);
???//printf(“\n“);
???/*?convert?gg[]?to?index?form?for?quicker?encoding?*/
???for?(i=0;?i<=nn-kk;?i++)??
???gg[i]?=?index_of[gg[i]];
?
???//printf(“polynomial:\n“);
???//for(i=0;?i<=nn-kk;?i++)
//???printf(“%d??????“?gg[i]);
???//printf(“\n“);
}
?
void?encode_rs()
/*?編碼*/
{
register?int?ij?;
int?feedback?;
for?(i=0;?i for?(i=kk-1;?i>=0;?i--)
????{
//逐步的將下一步要減的,存入bb(i)
feedback?=?index_of[data[i]^bb[nn-kk-1]]?;
if(feedback?!=?-1)
????????{
for?(j=nn-kk-1;?j>0;?j--)
????????????if?(gg[j]?!=?-1)
bb[j]?=?bb[j-1]^alpha_to[(gg[j]+feedback)%nn]?; //plus?=?^
????????????else
bb[j]?=?bb[j-1]?;
bb[0]?=?alpha_to[(gg[0]+feedback)%nn]?;
????????}
else
????????{
for?(j=nn-kk-1;?j>0;?j--)
bb[j]?=?bb[j-1]?;
bb[0]?=?0?;
????????};
????};
}
?
void?decode_rs()
?{/*解碼*/
register?int?ijuq?;
int?elp[nn-kk+2][nn-kk]?d[nn-kk+2]?l[nn-kk+2]?u_lu[nn-kk+2]?s[nn-kk+1]?;
int?count=0?syn_error=0?root[tt]?loc[tt]?z[tt+1]?err[nn]?reg[tt+1]?;
/*?first?form?the?syndromes?*/
for(i=0;?i if(recd[i]?==?-1)
recd[i]?=?0;
else
recd[i]?=?index_of[recd[i]];
?
for?(i=1;?i<=nn-kk;?i++)
{
s[i]?=?0?;
for?(j=0;?j????????if?(recd[j]!=-1)
s[i]?^=?alpha_to[(recd[j]+i*j)%nn]?;??????/*?recd[j]?in?index?form?*

評論

共有 條評論