李宏伟,董文博,薛一洋,舒雨欣,戴宏杰,陈建宇——给定信源的概率分布,按照香农编码的方法进行计算机实现

一、题目分析

      对于给定的信源的概率分布,按照香农编码的方法进行计算机实现

二、算法分析

2.1、算法基本原理

         给定某个信源符号的概率分布,通过以下的步骤进行香农编码:

         1)信源符号从小到大排列:

         2)对信源符号求累加和,表达式:Pi=Pi-1+p(xi)

         3)求自信息量,确定码字长度。自信息量I(xi)=-log(p(xi));码字长度取大于等于自信息量的最小整数:

         4)将累加和用二进制表示,并取小数点后码字的长度的码。

         简明流程图:

2.2、主要函数设计及分析

        1)paixu()函数

              本函数的功能主要是对用户输入的各个符号对应的概率进行降序排列,以便于计算累加概率和编码。

 2)length()函数

       本函数的功能主要是求每个符号概率对应码字的长度。

 3)  mazi()函数

      本函数的功能主要是将累加概率转换为二进制,从而根据码长计算出相应的码字,在这里用到对浮点数转换为二进制的算法。

 三、测试结果

        测试数据为;0.20 0.19 0.17 0.15 0.10 0.01 0.18

四、分析与探讨

       只是在对概率取对数并向上取整时遇到一定的困难,经过思考,利用上述的模拟手工出发圆满的解决了这一难题,使得程序能够得以完成。

五、源代码

小组成员:李宏伟(P02114192)董文博(P02114214)薛一洋(P02114228)舒雨欣(X92114046)戴宏杰(P02114203)陈建宇(P02114240)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值