资源简介
汉明码的编码译码的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语言编程常见问题解答.pdf
- 操作系统c语言模拟文件管理系统844
- C语言开发实战宝典
- C++中头文件与源文件的作用详解
- C语言代码高亮html输出工具
- 猜数字游戏 c语言代码
- C语言课程设计
- 数字电位器C语言程序
- CCS FFT c语言算法
- 使用C语言编写的病房管理系统
- 通信过程中的RS编译码程序(c语言)
- 计算机二级C语言上机填空,改错,编
- 用回溯法解决八皇后问题C语言实现
- 简易教务管理系统c语言开发文档
- 操作系统课设 读写者问题 c语言实现
- 小波变换算法 c语言版
- C流程图生成器,用C语言代码 生成C语
- 3des加密算法C语言实现
- 简单的C语言点对点聊天程序
- 单片机c语言源程序(51定时器 八个按
- 个人日常财务管理系统(C语言)
- c语言电子商务系统
- 小甲鱼C语言课件 源代码
- 将图片转换为C语言数组的程序
- C语言实现的一个内存泄漏检测程序
- DES加密算法C语言实现
- LINUX下命令行界面的C语言细胞游戏
- 用单片机控制蜂鸣器播放旋律程序(
- 学校超市选址问题(数据结构C语言版
- 电子时钟 有C语言程序,PROTEUS仿真图
评论
共有 条评论