24小时热门版块排行榜    

Znn3bq.jpeg
查看: 2385  |  回复: 0

source03

银虫 (正式写手)


[资源] BCH编码说明

声明:本文参考了http://blog.csdn.net/shimeng/archive/2010/04/10/5471525.aspx BCH码小述而作,在此要向该作者表示感谢。
图片没能转载到此,请大家到我的博客里看吧。
http://source03.blog.163.com/blo ... 222201121322718365/

BCH属于循环码,是一种常用的纠错编码,其编码可以有两种方式实现:串行形式和并行形式。串行形式是利用生成多项式和相关寄存器来实现,具有占用资源少的优点,但速度比较慢(要n个时钟周期)。并行形式是利用生成矩阵和一些逻辑门(主要是异或门)来实现,属组合逻辑电路,占用资源多,速度快。

一、串行形式的编码实现

         设循环码的生成多项式为g(x),待编码的消息多项式为u(x),g(x)和u(x)的次数分别是r和k-1,则C(x)=u(x)·xn-k+u(x)·xn-k|modg(x)为编码后的多项式,用此方法编得的码字为系统码。

    下面给出电路实现,直接将u(x)移位n-k次即得到u(x)·xn-k,为得到C(x)的第二项,要用到除法器,是将u(x)移位n-k次后除g(x),取其余数。

    下图是g(x)= X8+X7+X6+X4+1,实现BCH(15,7)的编码电路图。





电路工作过程分两步:

1.       两个开关都向上,输入数据一路经SW2输出,组成编码的信息位,另一路与h的输出相异或后经SW1反馈到相应寄存器单元,这主要完成(u(x)·xn-k)/g(x)),完成这个过程需要k(7)个时钟周期;

2.       两个开关都向下,输入数据与h的输出通路断开,除法运算完成,每来一个脉冲把u(x)·xn-k)mod g(x)的结果依次输出,余数由h输出后经SW2输出成为编码的校验位。完成这个过程需要n-k(8)个时钟周期。



C语言实现如下:

/****************************************************

实现BCH(15,7)的编码输出

*****************************************************/

#include

#define           N            15

#define           K            7

int info[K];

int Encode[N];



void BCHencode()

{  

    int i;

    int a = 0, b = 0, c = 0, d = 0, e = 0,f = 0,g = 0,h = 0,j = 0;

    for(i=0; i
        if(i
           {

         Encode = info;

                    j = h^info;      //x8

                    h = g^j;              //x7

                    g = f^j;               //x6

                    f = e;

                    e = d^j;              //x4

                    d = c;

                    c = b;

                    b = a;

                    a = j;                            //1

        }

           else

           {

                    Encode = h;

                    h = g;

                    g = f;

                    f = e;

                    e = d;

                    d = c;

                    c = b;

                    b = a;

                    a = 0;

        }

    }

}



main()

{

int Num = 0,count;

int Din = 0x37;                            //十六进制形式,最大值为7F

int Edin = Din;


//把十六进制转换为二进制

for(Num = 0;Num
{

           if(Din%2)

                    info[K-1-Num] = 1;

           else

                    info[K-1-Num] = 0;

           Din = Din >>1;

}



BCHencode();



printf("The Data:%x \n encode is:",Edin);

for(count = 0;count
{

           if((N-count)%4==0)

           {

                    printf("\t";

           }

                    

printf("%d",Encode[count]);

}

printf("\n";



}

在VC上运行结果如下:




二、并行形式的编码实现

           对于并行形式的编码有

C=UG

         U—1行(N-k)列的数组,即输入数值的二进制排列形式

         G—生成矩阵

生成矩阵G= ,是(n-k)×n阶矩阵。

在文献[2]中给出了具体的实现方法。





参考文献:

[1]       沈连丰.信息论与编码[M].科学出版社,2004.

[2]       赵华,殷奎喜.(15,7)BCH编译码器的VHDL设计.现代电子技术,2004.
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

智能机器人

Robot (super robot)

我们都爱小木虫

相关版块跳转 我要订阅楼主 source03 的主题更新
☆ 无星级 ★ 一星级 ★★★ 三星级 ★★★★★ 五星级
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[有机交流] 如何实现卤原子转化 +3 BT20230424 2026-05-15 7/350 2026-05-19 19:23 by bencaidai
[考博] 云南大学材料与能源学院解琳课题组钙钛矿博士招生 +3 光伏爱好者 2026-05-17 5/250 2026-05-19 19:13 by 光伏爱好者
[文学芳草园] 献血感触 +6 呀呀好傻 2026-05-19 6/300 2026-05-19 17:23 by kopsia
[基金申请] 评审有感 +10 popular289 2026-05-18 16/800 2026-05-19 14:46 by popular289
[考博] 找博士生导师 +6 小代想上岸 2026-05-15 7/350 2026-05-19 10:22 by free_fisher
[教师之家] 上海大学实验技术岗位非升即走 +10 嘻嘻哈哈乐呵呵 2026-05-15 11/550 2026-05-19 10:03 by 嘻嘻哈哈乐呵呵
[基金申请] 别被青基扩招骗了!26年科研内卷才刚刚开始 +3 国自然国社科中 2026-05-14 4/200 2026-05-19 08:48 by archvillain
[考博] 26/27博士推荐 +4 1木头人13949 2026-05-13 4/200 2026-05-19 08:29 by zhyzzh
[基金申请] 面上本子正文33页,违规吗?会被低分嘛? +8 1234567wang 2026-05-17 10/500 2026-05-18 18:52 by zzahkj
[基金申请] 国自然上会要求 +5 无名者登山 2026-05-18 9/450 2026-05-18 17:50 by BlakeReary
[基金申请] 重磅!青年科学基金项目(C类)资助增幅预计超过50% +7 水和泥不是水泥 2026-05-13 10/500 2026-05-18 07:50 by 水和泥不是水泥
[硕博家园] 我在等一个没有答案的答案 +3 Love_MH 2026-05-17 3/150 2026-05-18 02:22 by 竹林孤影
[文学芳草园] 半夜喝咖啡 +3 myrtle 2026-05-15 5/250 2026-05-18 01:03 by 小沈2018
[考博] 光量子物理方向 博士招生 1人(2026.09) +3 sandyworld 2026-05-15 4/200 2026-05-17 14:38 by sandyworld
[有机交流] 求助2,4-二氯-5-嘧啶甲醛的合成方法 20+3 光吃不拉 2026-05-14 6/300 2026-05-16 19:46 by Equinoxhua
[有机交流] 求有机合成大神指点三硫酸乙烯酯(CAS:2793408-99-6)的合成路线 30+3 Leekmid 2026-05-13 10/500 2026-05-16 16:37 by czyzsu
[硕博家园] 申请博士 +3 呃?呃 2026-05-15 3/150 2026-05-16 11:01 by a4742549
[文学芳草园] 风把牡丹吹跑了 +5 myrtle 2026-05-12 9/450 2026-05-15 15:27 by myrtle
[考博] 26应届毕业生考博求助 +3 wo一定上岸 2026-05-13 3/150 2026-05-14 21:47 by 明海天涯
[考博] 材料类只有一篇综述能申博么 +4 乐逍遥谷 2026-05-13 4/200 2026-05-14 12:05 by zhyzzh
信息提示
请填处理意见