您好,欢迎来到年旅网。
搜索
您的当前位置:首页实验 Huffman编码(含matlab代码)

实验 Huffman编码(含matlab代码)

来源:年旅网
实验二 Huffman编码

一 二

实验目的

1 通过本实验实现信源编码——Huffman编码 2 编写M文件实现,掌握Huffman编码方法 实验要求

1 了解matlab中M文件的编辑、调试过程 2 编写程序实现Huffman编码算法 三 实验步骤

1 输入Huffman编码程序

2 运行程序,按照提示输入相应信息,并记录输入信息,及运行结果。 注:观察结果方法:data(1).Code

显示a1的编码,同理显示data(2).Code,a2的编码结果。 3 思考:该程序编出的Huffman码是否是最小码方差的码?为什么? 四 报告要求

实验一:(题目) 一 实验目的要求 二 实验运行结果记录 三 写出给定程序的流程图,及每条语句的注释 四 自己编写的改进程序,及运行结果记录 五 实验小结

五 附Huffman编码程序

clear

N=input('请输入信源符号的个数:')

;

for i=1:N

%data(1).name=input('请输入各信源符号的名称:'); data(i).p=input('请输入各信源符号发生的概率:'); end

for i=1:N

pp(i)=data(i).p;

data(i).imap=i; %各符号在编码过程中的指针 data(i).Code=''; %各符号的编码结果 end

for j = 1:N % N——信源符号的个数

for i = 1:N - j if (pp(i) > pp(i + 1))

fT = pp(i); pp(i) = pp(i + 1); pp(i + 1) = fT; for k = 1:N if data(k).imap == i

data(k).imap = i + 1;

elseif data(k).imap == i + 1 data(k).imap = i; end end end end

end p=pp;

%%%%%%%%%%%%%%%%%%%%% %// 计算哈夫曼编码表 %// 开始编码 for i=1:N-1

for k = 1:N if data(k).imap== i

data(k).Code = strcat('1',data(k).Code); elseif (data(k).imap== i + 1) data(k).Code = strcat('0',data(k).Code); end end

p(i + 1) = p(i + 1)+p(i); for k = 1:N

if (data(k).imap == i) data(k).imap = i + 1; end end

for j = i + 1:N-1 if p(j) >p(j + 1)

fT =p(j);

p(j) = p(j + 1); p(j + 1) = fT;

for k = 1:N if (data(k).imap == j)

data(k).imap = j + 1;

elseif (data(k).imap == j + 1) data(k).imap = j; end end end end end

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务