香农编码c++实现_香农费诺编码例子

香农编码c++实现_香农费诺编码例子实验三香农编码信息论与编码实验报告院系:哈尔滨理工大学荣成校区专业:电子信息工程学号:姓名:日期:2015年6月16日香农编码信息论与编码第三次实验报告一、实验目的和任务?1、?理解信源编码的意义;?2、?熟悉?MATLAB程序设计;??3、?掌握香农编码的方法及计算机实现;??4、?对给定信源进行香农编码,并计算编码效率;?二、实验原理介绍?给定某个信源符号的概率分布,通过以下的步骤进行香…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

实验三香农编码

信息论与编码实验报告

院系: 哈尔滨理工大学荣成校区

专业: 电子信息工程

学号:

姓名:

日期: 2015年6月16日

香农编码

信息论与编码第三次实验报告

一、实验目的和任务?

1、?理解信源编码的意义;?

2、?熟悉?MATLAB程序设计;??

3、?掌握香农编码的方法及计算机实现;??

4、?对给定信源进行香农编码,并计算编码效率;?

二、实验原理介绍?

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

?1、信源符号按概率从大到小排列;?

???

2、确定满足下列不等式的整数码长为?

????

3、为了编成唯一可译码,计算第i个消息的累加概率:?

?

?4、将累加概率变换成二进制数;?

取二进制数的小数点后位即为该消息符号的二进制码字。

三、实验设备

计算机

Matlab2014

四、编码程序

N=input(‘N=’); %输入信源符号的个数

s=0; %对行的概率进行初始化

l=0; %对列的概率初始化

H=0; %对信息熵初始化

for i=1:N

p(i)=input(‘p=’);%输入信源符号概率分布矢量

p(i)<1; %输入概率小于1

s=s+p(i); %行概率求和

H=H+(-p(i)*log2(p(i)));%计算信源信息熵

end

if abs(s-1)>0 %若行概率和>1则报错

error(‘不符合概率分布’)

end

for i=1:N-1 %for循环按概率分布大小对信源排序

for j=i+1:N

if p(i)

m=p(j);

p(j)=p(i);

p(i)=m;

end

end

end

for i=1:N

a=-log2(p(i)); %确定满足不等式的整数a,并领a为第i个码字的长度

if mod(a,1)==0 %a对1取余后赋值给a

w=a;

else

w=fix(a+1); %计算各信源符号的码长

end

l=l+p(i)*w; %计算平均码长

end

r=l; %香农编码的信息率(这里L=1,m=2)

n=H/r; %计算编码效率

P(1)=0; %初始1列为0;

for i=2:N

P(i)=0; %初始1列为0;累加

for j=1:i-1

P(i)=P(i)+p(j); %从2列开始累加

end

end

%计算累加概率

for i=1:N

for j=1:w

W(i,j)=fix(P(i)*2); %对每次的P(i)取码字,长度与a相同

P(i)=P(i)*2-fix(P(i)*2); %将累加概率转化为L(i)位二进制码字

end

end

W %显示码字

r %显示平均码长

n %显示编码效率

H %显示信息熵H

实验结果

>> xiangnong

N=6

p=0.25

p=0.25

p=0.20

p=0.15

p=0.10

p=0.05

W =

0 0 0 0 0

0 1 0 0 0

1 0 0 0 0

1 0 1 1 0

1 1 0 1 1

1 1 1 1 0

r =

2.7000

n =

0.8975

H =

2.4232

六、实验心得

此次实验让我明白了做程序需要先进行需求分析,然后画出流程图,根据流程图把每部分模块完成,然后再进行调试和编辑,提高了我做

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/195272.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ROC曲线详解

    ROC曲线详解最近学习遇到这个概念,看了半天总算明白了这个曲线的意义。—————————————————————————————————分割线1ROC曲线的概念受试者工作特征曲线(receiveroperatingcharacteristiccurve,简称ROC曲线),又称为感受性曲线(sensitivitycurve)。得此名的原因在于曲线上各点反映着相同的感受性,它们都是对同一信号刺激的反应

    2022年5月17日
    62
  • 【游戏】光棍节程序员闯关秀过关攻略「建议收藏」

    【游戏】光棍节程序员闯关秀过关攻略「建议收藏」光棍节,与我无关,结果昨夜下了场雨,导致路面结冰,大侠的出行计划泡汤了,只好在家淘宝抢东西。结果网友发来一个光棍节程序员闯关秀游戏,让大侠一发不可收拾。。。游戏地址http://segmentfault.com/game/花了两个小时过了9关,最后一关没过去。欢迎大家补充。第一关:本关用右键查看URL就能得到地址,大侠用的GoogleChrome,查看元素,下面的也基本用这个浏

    2022年7月16日
    31
  • goland 2021.12激活码[最新免费获取]「建议收藏」

    (goland 2021.12激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月30日
    168
  • aria2 bt tracker_ar接入路由器产品文档

    aria2 bt tracker_ar接入路由器产品文档vi/root/trackers-list-aria2.sh内容如下:#!/bin/bash#/usr/sbin/servicearia2stoplist=`wget-qO-https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_all.txt|awkNF|sed”:a;N;s/…

    2022年9月28日
    6
  • -2147467259数据库操作错误!

    -2147467259数据库操作错误!没事说搭建个asp的网站,下载了个aspcms源码系统。搭建出现的主要问题是:登录后台的时候提示:-2147467259数据库操作错误!怎么解决?搜索了一下,有些说得是那么个意思,可是我的电脑环境也有些特殊情况。(比如:文件夹属性中没有“安全”选项卡)下面整理下:-21474672

    2022年7月13日
    16
  • 技术文章收集_技术博客

    技术文章收集_技术博客http://www.mianwww.com/html/category/company-list/ibmIT公司面试手册http://www.miansou.com/news.html面试经验搜索http://www.ucdchina.com/专业UED设计网站http://blog.zhaojie.me/老赵新博客地址htt…

    2022年9月30日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号