信息论实验二报告(2)
发布时间:2021-06-09
发布时间:2021-06-09
实验项目:霍夫曼编码、率失真函数的计算
实验项目性质:验证性实验
课程:《信息论与编码》
计划学时:4学时
一、实验目的
掌握使用计算机进行霍夫曼编码、计算率失真函数的方法。
二、实验内容
利用matlab语言编程实现霍夫曼编码、计算率失真函数。
三、实验原理
1.参照教材(焦瑞莉等编著《信息论基础教程》)第111页表4-8理解霍夫曼编码的过程
2.参照教材(焦瑞莉等编著《信息论基础教程》)第148页式(6-7)理解率失真函数的定义
四、实验方法与实验步骤
(一)参照教材第223页信源熵程序建立文件huffman.m
文件huffman.m的代码:
% huffman编码生成器 %
% 函数说明: %
% [W,L.q]=huffman(P)为huffman编码函数 %
% P为信源的概率矢量,W为编码返回的码字 %
% L为编码返回的平均码字长度,q为编码效率 %
% ***************************************%
function [W,L,q]=huffman(P)
if(length(find(P<=0))~=0)
error('Not a prob.vector.negative component'); % 判断是否符合概率分布条件 end
if(abs(sum(P)-1)>10e-10)
error('Not a ponent do not add up to 1') % 判断是否符合概率和为1
end
n=length(P); % 计算输入元素个数
p=P;
mark=zeros(n-1,n); % mark为n-1行、n列矩阵,用来记录每行最小两概率叠加后概率排列次序
% 1) 确定概率大小值的排列,得到mark矩阵。
下一篇:论伽利略思想对近代物理的贡献