close all;clear all;clc;
% 香农编码matlab实现
p = [0.5 0.19 0.19 0.07 0.05] %输入概率
n = length(p);
y = fliplr(sort(p));
D = zeros(n,4);
D(:,1) = y';
for i = 2:nD(1,2) = 0;D(i,2) = D(i-1,1)+D(i-1,2);
end
for i = 1:nD(i,3) = -log2(D(i,1));D(i,4) = ceil(D(i,3));
end
D
A = D(:,2)';
B = D(:,4)';
for j=1:nC=binary1(A(j),B(j))
end
function [C] = binary1(A,B)
C=zeros(1,B);
temp = A;
for i=1:Btemp = temp*2;if temp >= 1temp = temp - 1;C(1,i) = 1;elseC(1,i) = 0;end
end
end

输出结果:

p =

    0.5000    0.1900    0.1900    0.0700    0.0500

D =

    0.5000         0       1.0000    1.0000
    0.1900    0.5000    2.3959    3.0000
    0.1900    0.6900    2.3959    3.0000
    0.0700    0.8800    3.8365    4.0000
    0.0500    0.9500    4.3219    5.0000

C =

     0

C =

     1     0     0

C =

     1     0     1

C =

     1     1     1     0

C =

     1     1     1     1     0

D中第一列表示输入概率,第二列表示累加概率,第四列表示对应输入概率的编码长度

C中按顺序对应D中相应输入概率的编码结果

香农编码的 matlab 实现相关推荐

  1. 信息论与编码|香农编码的Matlab实现

    1. 香农编码原理 (1)将信源消息符号按其出现的概率大小依次降序排列为: (2)对概率向上取整求整数码长K (3)为了编成唯一可译码,计算第i个消息的累加概率P (4)将累加概率转换成二进制数 (5 ...

  2. 实验三-香农编码的MATLAB实现

    信息论编码实验3~9连载,更多看专栏. 香农编码仿真实现 一.香农编码的原理 二.香农编码实例 三.程序及流程图 四.程序运行结果 五.程序自评价 一.香农编码的原理 香农码严格意义上来说不是最佳码, ...

  3. 香农编码用matlab实验报告,信息论与编码实验指导书

    实验一 绘制二进熵函数曲线(2个学时) 一.实验目的: 1. 掌握Excel 的数据填充.公式运算和图表制作 2. 掌握Matlab 绘图函数 3. 掌握.理解熵函数表达式及其性质 二.实验要求: 1 ...

  4. 香农编码与Huffman编码之间的对比

    目录 一.[上机目的] 二.[环境] 三.[上机原理] 四.[上机内容] 五.设计思路 5.1霍夫曼编码特点 5.2霍夫曼编码原理 5.3二进制哈夫曼编码过程 5.4计算结果 5.5霍夫曼编码的MAT ...

  5. 信息论与编码matlab实验报告,信息论实验报告(实验三、香农编码)

    <信息论实验报告(实验三.香农编码)>由会员分享,可在线阅读,更多相关<信息论实验报告(实验三.香农编码)(3页珍藏版)>请在人人文库网上搜索. 1.学生实验报告院别电子工程学 ...

  6. 计算信源熵和香农编码C语言,信息论与编码课程设计报告-统计信源熵与香农编码.pdf...

    信息论与编码课程设计报告 设计题目: 统计信源熵与香农编码 专业班级 电 信 12-06 学 号 学生姓名 指导教师 教师评分 2015 年 3 月 30 日 目 录 - 0 - 一.设计任务与要求 ...

  7. 香农编码二叉树c语言,shannon码的编码实验总结.docx

    shannon码的编码实验总结 本科生实验报告 实验课程信息理论与编码 学院名称信息科学与技术学院 专业名称 学生姓名 学生学号 指导教师 实验地点 实验成绩 二〇一六年九月----二〇一六年十一月 ...

  8. 信源编码的代码实现 (香农编码、费诺编码、哈夫曼编码、游程编码、算术编码)

    文章目录 香农编码 费诺编码 哈夫曼编码 C++版 C语言版 游程编码 算术编码 香农编码 (1) 将信源消息符号按其出现的概率大小依次排列 p1 ≥ p2 ≥ - ≥ pn (2) 确定满足下列不等 ...

  9. 香农编码的C++实现及求平均码长和编码效率

    香农编码C++分布实现 编码步骤 香农编码的步骤如下: (1)将信源符号按其出现概率从大到小排序: (2)计算出各概率对应的码字长度: (3)计算累加概率: (4)把各个累加概率由十进制转化为二进制, ...

最新文章

  1. 谈谈读“SEO实战密码”的一些感悟
  2. python2和python3关系_升级python2至python3解决依赖关系
  3. 业务订单号生成算法,每秒50W左右,不同机器保证不重复,包含日期可读性好...
  4. AT24C02的多字节数据读写
  5. mysql数据库通过二进制 -【恢复数据记录】
  6. 数据库 流量切分_私域流量之社群运营技巧,社群运营技巧解析
  7. Angular4学习笔记(六)- Input和Output
  8. pip/pip3更换国内源
  9. scikit-learn中随机森林使用详解
  10. js字符串replace替换多个_汇总几大python常见字符串处理函数与用法(建议收藏)...
  11. Ubuntu16.04几分钟自动断网问题
  12. struts启动过滤器异常_SpringCloud Gateway高阶之全局异常处理
  13. Linux Shell基础 Shell的输入重定向和输出重定向
  14. 微软正式发布Internet Explorer 7.0
  15. 数据库sql优化总结之1-百万级数据库优化方案+案例分析
  16. Linux关闭防火墙并设置开机启动/不启动
  17. 向往的生活之鸿蒙传承,《向往的生活5》播放量破6.43亿,张艺兴功劳大,《跑男》比不了...
  18. 2020哈工程计算机考研复试——网络线上自述
  19. VTM10.0代码学习10:EncGOP_compressGOP()
  20. 天龙八部TLBB系列 - 关于技能冷却和攻击范围数量的问题

热门文章

  1. python 下载文件-Python实现http文件下载
  2. python能做什么软件-初学python编程,有哪些不错的软件值得一用?
  3. 调研报告|在线语音识别改进之 RNN-T 训练
  4. ble开发 linux_嵌入式开发的必备知识点
  5. this.$router.push用query传参对象时需注意的地方
  6. Linux设置tab4个字符,在 Vim 中设置 Tab 为4个空格
  7. LeetCode 437. 路径总和 III
  8. java 过载_java – ExecutorService,避免任务队列过载的标准方式
  9. idea项目(git)版本回退
  10. 背景图片铺不满全屏时处理