二元霍夫曼编码用matlab,二元霍夫曼编码-信息论与编码实验报告.doc

这篇实验报告详细介绍了如何使用MATLAB进行二元霍夫曼编码的程序设计,遵循霍夫曼编码的步骤,包括概率最小的字母配码、信源缩减、编码过程,直至得出最终的霍夫曼码。报告中还包含了相关的MATLAB函数实现。
摘要由CSDN通过智能技术生成

计算机与信息工程学院综合性实验报告

专业:通信工程 年级/班级:2011级信息论与编码6节

根据霍夫曼编码的原理,用MATLAB设计进行霍夫曼编码的程序,并得出正确的结果。

实验仪器或设备

2、MATLAB r2013a。p1>p2>…>pq

2、取两个概率最小的字母分别配以0和1两个码元,并将这两个概率相加作为一个新字母的概率,从而得到只包含q-1个符号的新信源S1。

3、对重排后的缩减信源S1重新以递减次序排序,两个概率最小符号重复步骤(2)的过程。

4、不断继续上述过程,直到最后两个符号配以0和1为止。

5、从最后一级开始,向前返回得到各个信源符号所对应的码元序列,即相应的码字。

霍夫曼编码实现程序

function [outnum]=lml_huffman(a)

%主程序,输入一组概率,输出此组概率的霍夫曼编码

%a:一组概率值,如a=[0.2 0.3 0.1 0.4]等

%outnum:输出的霍夫曼码,以cell中的字符数组表示

if sum(a)~=1

warning('输入概率之和不为“1”,但程序仍将继续运行')

end

[cho,sequ,i,l]=probality(a);

global lmlcode %用于输出霍夫曼码,定义为cell型

global cellnum %用于编码的累加计算

cellnum=1;

lmlcode=cell(l,1);

j=

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值