BCH编译码--C语言实现


可实现BCH编码,采用C语言实现,简单易懂。
资源截图
代码片段和文件信息
#include
#include
#include
#include

using namespace std;

#define n 15                     //码长
#define k 5                     //信息位长度
#define t 7                     //纠错个数
double r=1.0*k/n;               //码率
int g[]={11101100101};    //生成多项式

#include“encode.h“              //编码函数,包括BPSK调制及AWGN信道
#include“decode.h“              //BCH解码函数

void main()
{
int Num=20000;
int u[k]={0};
int encode[n];
double awgn_data[n]bpsk_m[n];
int bpsk_de[n];
double EbN0[10]={12345678910};   //设置信噪比
double N0sigma;
double err_rate[10]={0};
int error;

srand((unsigned)time(NULL));

for (int i=0;i<10;i++)          
    {   
N0=pow(10-1*EbN0[i]/10)/r;           //信道高斯白噪声功率
        sigma=sqrt(N0/2);                     //噪声均方差
error=0;                              //初始化差错个数
for (int run=0;run {
for (int m=0;m u[m]=rand()%2;                //产生随机数
//cout< bch_encode(uencode);            //调用BCH编码函数
//cout< bpsk_mod(encodebpsk_m);         //调用BPSK调制函数
//cout< awgn(bpsk_mawgn_datasigma);    //调用AWGN信道
bpsk_demod(awgn_databpsk_de);   //调用BPSK解调函数
//cout<     decode(bpsk_de);                     //调用BCH译码函数
//cout<
for (int j=0;j if (encode[j]!=bpsk_de[j]) 
error++;                    
}
err_rate[i]=1.0*error/Num/n;
}

ofstream out(“ber_bch.txt“);                //将误码率存放在“ber_bch.txt”文件中并输出
for (i=0;i<10;i++)
{
    cout<<“BER=“<     out< }
out.close();
system(“pause“);

}


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件    5787648  2012-05-23 09:05  BCH_CBCH.sdf

     文件        877  2012-05-22 08:42  BCH_CBCH.sln

    ..A..H.     15872  2012-05-23 09:05  BCH_CBCH.suo

     文件       4013  2012-05-22 11:05  BCH_CBCH.vcxproj

     文件       1142  2012-05-22 11:05  BCH_CBCH.vcxproj.filters

     文件        143  2012-05-22 08:42  BCH_CBCH.vcxproj.user

     文件        102  2012-06-06 19:45  BCH_Cer.txt

     文件        103  2012-06-06 19:45  BCH_Cer_bch.txt

     文件      89088  2012-05-23 09:03  BCH_CDebugBCH.exe

     文件        406  2012-05-22 18:36  BCH_CDebugBCH.exe.embed.manifest

     文件        472  2012-05-22 18:51  BCH_CDebugBCH.exe.embed.manifest.res

     文件        381  2012-05-23 09:03  BCH_CDebugBCH.exe.intermediate.manifest

     文件     862704  2012-05-23 09:03  BCH_CDebugBCH.ilk

     文件         53  2012-05-23 09:03  BCH_CDebugBCH.lastbuildstate

     文件       2109  2012-05-23 09:03  BCH_CDebugBCH.log

     文件    1100800  2012-05-23 09:03  BCH_CDebugBCH.pdb

     文件        196  2012-05-22 18:36  BCH_CDebugBCH_manifest.rc

     文件       1142  2012-05-23 09:03  BCH_CDebugcl.command.1.tlog

     文件      18648  2012-05-23 09:03  BCH_CDebugCL.read.1.tlog

     文件        436  2012-05-23 09:03  BCH_CDebugCL.write.1.tlog

     文件          2  2012-05-23 09:03  BCH_CDebuglink-cvtres.read.1.tlog

     文件          2  2012-05-23 09:03  BCH_CDebuglink-cvtres.write.1.tlog

     文件          2  2012-05-23 09:03  BCH_CDebuglink.1272-cvtres.read.1.tlog

     文件          2  2012-05-23 09:03  BCH_CDebuglink.1272-cvtres.write.1.tlog

     文件          2  2012-05-23 09:03  BCH_CDebuglink.1272.read.1.tlog

     文件          2  2012-05-23 09:03  BCH_CDebuglink.1272.write.1.tlog

     文件          2  2012-05-23 09:03  BCH_CDebuglink.2780-cvtres.read.1.tlog

     文件          2  2012-05-23 09:03  BCH_CDebuglink.2780-cvtres.write.1.tlog

     文件          2  2012-05-23 09:03  BCH_CDebuglink.2780.read.1.tlog

     文件          2  2012-05-23 09:03  BCH_CDebuglink.2780.write.1.tlog

............此处省略58个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)