香农编码的 matlab 实现
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 实现相关推荐
- 信息论与编码|香农编码的Matlab实现
1. 香农编码原理 (1)将信源消息符号按其出现的概率大小依次降序排列为: (2)对概率向上取整求整数码长K (3)为了编成唯一可译码,计算第i个消息的累加概率P (4)将累加概率转换成二进制数 (5 ...
- 实验三-香农编码的MATLAB实现
信息论编码实验3~9连载,更多看专栏. 香农编码仿真实现 一.香农编码的原理 二.香农编码实例 三.程序及流程图 四.程序运行结果 五.程序自评价 一.香农编码的原理 香农码严格意义上来说不是最佳码, ...
- 香农编码用matlab实验报告,信息论与编码实验指导书
实验一 绘制二进熵函数曲线(2个学时) 一.实验目的: 1. 掌握Excel 的数据填充.公式运算和图表制作 2. 掌握Matlab 绘图函数 3. 掌握.理解熵函数表达式及其性质 二.实验要求: 1 ...
- 香农编码与Huffman编码之间的对比
目录 一.[上机目的] 二.[环境] 三.[上机原理] 四.[上机内容] 五.设计思路 5.1霍夫曼编码特点 5.2霍夫曼编码原理 5.3二进制哈夫曼编码过程 5.4计算结果 5.5霍夫曼编码的MAT ...
- 信息论与编码matlab实验报告,信息论实验报告(实验三、香农编码)
<信息论实验报告(实验三.香农编码)>由会员分享,可在线阅读,更多相关<信息论实验报告(实验三.香农编码)(3页珍藏版)>请在人人文库网上搜索. 1.学生实验报告院别电子工程学 ...
- 计算信源熵和香农编码C语言,信息论与编码课程设计报告-统计信源熵与香农编码.pdf...
信息论与编码课程设计报告 设计题目: 统计信源熵与香农编码 专业班级 电 信 12-06 学 号 学生姓名 指导教师 教师评分 2015 年 3 月 30 日 目 录 - 0 - 一.设计任务与要求 ...
- 香农编码二叉树c语言,shannon码的编码实验总结.docx
shannon码的编码实验总结 本科生实验报告 实验课程信息理论与编码 学院名称信息科学与技术学院 专业名称 学生姓名 学生学号 指导教师 实验地点 实验成绩 二〇一六年九月----二〇一六年十一月 ...
- 信源编码的代码实现 (香农编码、费诺编码、哈夫曼编码、游程编码、算术编码)
文章目录 香农编码 费诺编码 哈夫曼编码 C++版 C语言版 游程编码 算术编码 香农编码 (1) 将信源消息符号按其出现的概率大小依次排列 p1 ≥ p2 ≥ - ≥ pn (2) 确定满足下列不等 ...
- 香农编码的C++实现及求平均码长和编码效率
香农编码C++分布实现 编码步骤 香农编码的步骤如下: (1)将信源符号按其出现概率从大到小排序: (2)计算出各概率对应的码字长度: (3)计算累加概率: (4)把各个累加概率由十进制转化为二进制, ...
最新文章
- 谈谈读“SEO实战密码”的一些感悟
- python2和python3关系_升级python2至python3解决依赖关系
- 业务订单号生成算法,每秒50W左右,不同机器保证不重复,包含日期可读性好...
- AT24C02的多字节数据读写
- mysql数据库通过二进制 -【恢复数据记录】
- 数据库 流量切分_私域流量之社群运营技巧,社群运营技巧解析
- Angular4学习笔记(六)- Input和Output
- pip/pip3更换国内源
- scikit-learn中随机森林使用详解
- js字符串replace替换多个_汇总几大python常见字符串处理函数与用法(建议收藏)...
- Ubuntu16.04几分钟自动断网问题
- struts启动过滤器异常_SpringCloud Gateway高阶之全局异常处理
- Linux Shell基础 Shell的输入重定向和输出重定向
- 微软正式发布Internet Explorer 7.0
- 数据库sql优化总结之1-百万级数据库优化方案+案例分析
- Linux关闭防火墙并设置开机启动/不启动
- 向往的生活之鸿蒙传承,《向往的生活5》播放量破6.43亿,张艺兴功劳大,《跑男》比不了...
- 2020哈工程计算机考研复试——网络线上自述
- VTM10.0代码学习10:EncGOP_compressGOP()
- 天龙八部TLBB系列 - 关于技能冷却和攻击范围数量的问题
热门文章
- python 下载文件-Python实现http文件下载
- python能做什么软件-初学python编程,有哪些不错的软件值得一用?
- 调研报告|在线语音识别改进之 RNN-T 训练
- ble开发 linux_嵌入式开发的必备知识点
- this.$router.push用query传参对象时需注意的地方
- Linux设置tab4个字符,在 Vim 中设置 Tab 为4个空格
- LeetCode 437. 路径总和 III
- java 过载_java – ExecutorService,避免任务队列过载的标准方式
- idea项目(git)版本回退
- 背景图片铺不满全屏时处理