24小时热门版块排行榜    

查看: 2419  |  回复: 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 的主题更新
☆ 无星级 ★ 一星级 ★★★ 三星级 ★★★★★ 五星级
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 哪位老哥知道今年的国自然具体哪一天放榜? +4 Ldrop2023 2026-08-13 4/200 2026-08-14 14:50 by Tide man
[基金申请] filecode +5 cratir 2026-08-14 9/450 2026-08-14 12:25 by 医学老男孩
[论文投稿] 职称评审,求友友推荐见刊最快的期刊 +5 工厂打螺丝 2026-08-08 5/250 2026-08-14 11:03 by 玖戈弋
[基金申请] filecode +15 documentary 2026-08-10 17/850 2026-08-14 10:08 by kissu88
[基金申请] FileCode能看出啥? +10 要乐观耀哥 2026-08-10 32/1600 2026-08-14 09:37 by 要乐观耀哥
[基金申请] 关于Filecode分析方法 +9 majunge000 2026-08-10 12/600 2026-08-13 23:20 by iwuli
[文学芳草园] 阿姨 +4 汪汪锅 2026-08-09 4/200 2026-08-13 19:43 by arzu_hma
[基金申请] 静等基金结果 +8 gjjjzhong 2026-08-10 21/1050 2026-08-13 17:56 by 且听虎啸
[基金申请] 不应该看fileCode +7 且听虎啸 2026-08-12 9/450 2026-08-13 14:27 by flydreamws
[基金申请] Filecode 又变了,巨变 +3 WH3796 2026-08-12 4/200 2026-08-13 14:13 by 小木虫6752397
[基金申请] 结合人工智能,周易传统文化,filecode打分制来了,3分以上希望很大。 +3 Tide man 2026-08-12 4/200 2026-08-13 08:35 by ZJTJZ
[基金申请] 2019年青年基金涵评意见,大家看看几个A,几个B? +11 Tide man 2026-08-11 11/550 2026-08-13 07:35 by 撸猫猫
[基金申请] 综述论文作为代表作会不会影响评审专家的印象分? +11 yufeiwaner 2026-08-09 13/650 2026-08-12 08:17 by yufeiwaner
[基金申请] 帮忙看看fileCode +7 wwncly 2026-08-10 13/650 2026-08-11 19:36 by 冰心玉壶晴
[基金申请] 什么时候出结果,有咨询渠道??? +3 Tide man 2026-08-11 3/150 2026-08-11 17:54 by kudofaye
[基金申请] 确定了,国自然21号放榜 +6 布布和一二 2026-08-10 7/350 2026-08-10 19:15 by 2000zf36392
[基金申请] 国自然结果 +4 Vierhys 2026-08-10 8/400 2026-08-10 15:06 by Vierhys
[基金申请] 据悉今年马上要出结果了 +7 瞬息宇宙 2026-08-10 8/400 2026-08-10 12:42 by Vivilian
[基金申请] 这样的filecode谁见过 +11 布布和一二 2026-08-08 22/1100 2026-08-10 11:10 by wmfsnow
[基金申请] 化学口download_prp&fileCode的固定段好像这几天一直没变,有变的大神么? +3 Tide man 2026-08-07 4/200 2026-08-07 22:39 by Tide man
信息提示
请填处理意见