电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

实现香农编码、费诺编码杨兴勃0808060121VIP免费

实现香农编码、费诺编码杨兴勃0808060121_第1页
1/14
实现香农编码、费诺编码杨兴勃0808060121_第2页
2/14
实现香农编码、费诺编码杨兴勃0808060121_第3页
3/14
百度文库1 《信息论课程设计》———实现香农编码、费诺编码信计 0801 班杨兴勃 0808060121 百度文库2 目录百度文库3 香农编码一、课题描述:对于给定的信源的概率分布,按照香农编码的方法进行计算机实现。二、课程设计目的:(1)进一步熟悉香农编码算法;(2)掌握程序设计和调试技术中数值的进制转换、数值愈字符串之间的转换等技术。三、课程设计要求:(1)输入:信源符号个数q 、信源的概率分布P ;(2)输出:每一个信源符号对应的香农编码码字。四、算法分析:2.1、数据结构分别用数组p、q、 k 存放输入的概率,累加概率、码字长度;2.2 、算法基本原理给定某个信源符号的概率分布,通过以下的步骤进行香农编码:1)信源符号按概率从大到小排列;2)对信源符号求累加和,表达式: P i=Pi-1 +p(x i) ;3)求自信息量,确定码字长度。自信息量I(xi)=-log(p(xi)); 码字长度取大于等于自信息量的最小整数;4)将累加和用二进制表示,并取小数点后码字的长度的码。百度文库4 五、香农编码流程图:六、程序设计代码:#include #include #include #include 开始输入符号个数N和相应概率X[i] 按概率由大到小排序按公式求码长求出对应位的概率累加和按乘 2 取余法则, 将累加概率转换为二进制结合求得的对应码长, 将二进制的累加概率取对应长度的作为相应码字输出信源、概率、累加概率、 码长和码字结束百度文库5 using namespace std; void bubble(double *p,int n)//排序{ for(int i=0;i=-log(p[i])/log(2) ) k[i]=j; } double I=-log(p[i])/log(2); int temp=int(I); if(I-temp==0) k[i]=temp; else k[i]=temp+1; } } void code(int *k,double *pa,string *str,int n)//求编码{ for(int i=0;i=1) { str[i]+="1"; s=s-1; } e...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

实现香农编码、费诺编码杨兴勃0808060121

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部