资源简介
汉明码的编码译码的C语言实现程序.此程序是基于C语言对线性分组码中的汉明码的程序实现
代码片段和文件信息
# include “stdio.h“
# include “time.h“
# include “stdlib.h“
# define A 4000
# define M 4
# define N 7
/*****************************************************************************************************************/
// 该函数是初始化函数
// 作用:随机产生信源,并将信源存放到数组b中,初始化数组e,使它的初值是0
// 入口参数:bb(信源)ee(陪首集)
// 出口参数:k1(代表信源个数)
/*****************************************************************************************************************/
int init(int bb[A/M][M]int ee[A/M][N])
{
int i=0jk1;
printf(“\n 随机产生%d个二元(%d%d)汉明码的信源:“A/4NM);
srand( (unsigned)time( NULL ) );
for( i = 0; i < A/4; i++ )
for( j = 0; j < M; j++ )
{
bb[i][j]=rand()%2;
}
for(i=0;i for(j=0;j ee[i][j]=0;
k1=A/4;
return k1;
}
/*****************************************************************************************************************/
// 该函数是输出函数
// 作用:输出生成矩阵
// 入口参数:g(生成矩阵)
// 出口参数:没有
/*****************************************************************************************************************/
void print1(int g[M][N])
{
int ij;
printf(“\n 生成矩阵是:\n “);
for(i=0;i {
for(j=0;j printf(“%d “g[i][j]);
printf(“\n “);
}
}
/*****************************************************************************************************************/
// 该函数是输出函数
// 输出校验矩阵
// 入口参数:h(校验矩阵)
// 出口参数:没有
/*****************************************************************************************************************/
void print2(int h[N-M][N])
{
int ij;
printf(“\n 校验矩阵是:\n “);
for(i=0;i {
for(j=0;j printf(“%d “h[i][j]);
printf(“\n “);
}
}
/*****************************************************************************************************************/
// 该函数是求码字函数
// 作用:求出要传输的的码字
// 入口参数:n(信源个数)gg(生成矩阵)cc(信源生成的码字)bb(信源)
// 出口参数:没有
/*****************************************************************************************************************/
void SYard(int nint gg[M][N]int cc[M][N]int bb[A/M][M])
{
int ijkt;
for(i=0;i {
for(j=0;j {
t=0;
for(k=0;k t+=bb[i][k]*gg[k][j];
cc[i][j]=t%2; // %2是为了让它们之和小于2
}
}
}
/*****************************************************************************************************************/
// 该函数是模拟信道函数
// 作用:改变要传输的码字,
// 咐:码字经过该信道后,不产生错误的概率是70%产生一位错误的概率是21%,两位错误的概率是6%,三位错误的概率是3%
// 入口参数:n(信源个数)rr(接收到的码字)cc(发送的码字)
// 出口参数:q(产生一位随机错误的码字个数)
/*****************************************************************************************************************/
int Channel(int nint rr[A/M][N]int cc[A/M][N])
{
int aijka1a2a3q=0; // k代表经过信道后码字会错几位a1,a2,a3表示具体的错误位置
srand( (unsigned)time( NULL ) );
for(i=0;i {
a=r
- 上一篇:调节系统音量调节麦克风音量
- 下一篇:公园导游图代码数据结构
相关资源
- C语言嵌入式Modbus协议栈,支持主站和
- C语言封装的HttpClient接口
- C语言课设计算器
- C语言 学生兴趣管理系统
- c语言实现火车订票系统(控制台)源
- 模拟笔记本电脑(C语言实现)
- c语言实现竞技比赛打分系统
- KMP算法C语言程序
- Linux c语言 学生成绩管理系统
- 弹跳的小球(test.c)
- 林锐—高质量C编程
- 百度C++编码规范
- 基于c语言的通讯录系统
- C语言全套课件与教学资料-哈工大
- 计算机二级C语言真题.docx
- C语言实现 设备信息管理系统
- GBT 28169-2011 嵌入式软件 C语言编码规范
- C语言标准库函数大全.chm
- C语言常用代码(分章节)
- c语言课程设计:客房登记系统源码
- C语言常用算法源代码
- 吕鑫:VS2015之博大精深的0基础C语言视
- c语言文都讲义2020
- c语言课件56883
- C语言推箱子win控制台
- C语言程序设计50例.docx
- 烟花优化算法(c语言版)
- C语言程序设计教材习题参考答案.do
- 数据结构(C语言版)ppt课件,清华,
- c语言编程经典例题100例 word版
评论
共有 条评论