信息论编码c语言,北京科技大学信息论与编码实验报告C语言版精选.docx

北京科技大学信息论与编码实验报告C语言版精选

《信息论与编码》实验报告姓名:***学号:***班级:***指导教师:**2017年6月B.1信道容量的迭代算法【实验目的】(1)熟悉和理解信道容量的迭代算法;(2)利用C编程语言实现该算法的功能;(3)掌握上机调试程序和键盘输入数据得出结果的方法;【实验要求】1)已知:信源符号个数r、信宿符号个数s、信道转移概率矩阵P=(Pji)r*s;2)输入:任意的一个信道转移概率矩阵。信源符号个数、信宿符号个数和每个具体的转移概率在运行时从键盘输入;3)输出:最佳信源分布P’*,信道容量C。【程序流程图】输入PllogΦjiΦIJ C 否 是输出终止【运行结果】B.2唯一可译码的判断代码【实验目的】(1)熟悉和理解唯一可译码的判决规则;(2)利用C编程语言实现该算法的功能;(3)掌握上机调试程序和键盘输入数据得出结果的方法;【实验要求】(1)已知:信源符号个数r、码字集合C;(2)输入:任意的一个码,码字个数和每个具体的码字在运行时从键盘输入;(3)输出:判决(是唯一可译码/不是唯一可译码)【程序流程图】输入信源符号个数r,码字集合C 判断是否为奇异码 是判断前缀,有无后缀 否 否 是构造后缀集合F 是F是否存在元素为C中码字 输出不是唯一可译F与C是否有相同前缀 否 是输出是唯一可译 否结束【运行结果】B.3 Huffman编码【实验目的】(1)熟悉和理解Huffman编码的意义和过程;(2)利用C编程语言实现该算法的功能;(3)掌握上机调试程序和键盘输入数据得出结果的方法;【实验要求】(1)已知:信源符号个数q,信源符号S0,S1,……Sq-1,信源概率分布P0,P1……Pq-1;(2)输入:信源符号个数r,信源的概率分布P;(3)输出:每个信源符号对应的Huffman编码的码字。【程序流程图】开始从主函数中获取各个字符及其权值,再调用Huffman函数定义哈夫曼树节点和哈弗曼编码表类型并用typedef声明类型初始化哈夫曼树查找权值最小的两个节点x1、x2定义节点n+i为x1和x2节点的父节点、其权值为二者之和P是根节点?循环n次定义c为当前要求码字的节点,p指向要求的编码表P节点的左孩子为c?码字加1TFTF输出第i个符号码字结束码字加0P指向向根节点移动每执行一次,输出一个符号的码字,一共执行n次【运行结果】B.4 LZW编码【实验目的】(1)熟悉和理解LZW编码的意义和过程;(2)利用C编程语言实现该算法的功能;(3)掌握上机调试程序和键盘输入数据得出结果的方法;【实验要求】(1)已知:待压缩的数据文件;(2)输入:本程序将从标准输入中读入待压缩的数据;(3)输出:将压缩结果输出到标准输出上去。【程序流程图】【运行结果】B.5香农编码【实验目的】(1)熟悉和理解香农编码的意义和过程;(2)利用C编程语言实现该算法的功能;(3)掌握上机调试程序和键盘输入数据得出结果的方法;【实验要求】(1)输入:信源符号个数q,信源符号S0,S1,……Sq-1,信源的概率分布P0,P1……Pq-1,;(2)输出:信源符号与码字的对应关系表(编码表)。【程序流程图】开始输入符号个数N和相应概率X[i]按概率由大到小排序按公式求码长求出对应位的概率累加和按乘2取余法则,将累加概率转换为二进制结合求得的对应码长,将二进制的累加概率取对应长度的作为相应码字输出信源、概率、累加概率、码长和码字结束【运行结果】【实验心得】本次信息论上机课我使用VC6.0软件,使用C语言分别实现了信道容量的迭代算法,唯一可译码判决规则,哈夫曼编码,LZW编码和香农编码的算法程序,并且予以调试和运行,在调试无错误后,使用键盘输入相应的符号个数以及概率矩阵,得到了的结果与自己理论计算的结果完全相同,验证了自己所学习的理论知识,同时使用的相应的算法语句能够得到多次有效的运用,能够在以后的学习生活中得到再次应用。 本次实验中遇到的问题主要是程序的出错调试问题,在VC6.0软件中运行时,部分程序会出现错误,我通过查阅相关资料,根据软件报错提醒的错误位置和内容,修改了相应的个别语句,多次尝试后运行成功,使用键盘输入数据时,要根据运行框里面的提示一步步输入数据,得到相应的结果,并且与理论值对比,得出结论。 本次实验我不仅更加熟悉了这五种编码方法的原理,方法和过程,而且提高了自己利用算法来实现编码功能的能力,也增加了对《信息论与编码》这门课程的兴趣,可以说收获颇多。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值