哈夫曼编解码实验汇总.ppt
文本预览下载声明
郑州轻工业学院电子信息工程 哈夫曼编解码实验 教师:闫艳霞 地点:西三楼405 联系电话哈夫曼编解码实验 一、实验目的 掌握哈夫曼编码的原理与步骤 练习matlab哈夫曼编解码函数的调用 二、实验原理 见实验指导书。 哈夫曼编解码实验 三、实验内容 (1)手工哈夫曼编码(字典) 信源1: 信源2: (2)调用matlab哈夫曼编码函数编码 信源概率空间同上,信源序列长度为100。 哈夫曼编解码实验 四、函数的使用方法 (1)randsrc函数 功能:产生一个随机字符串。 使用方法:randsrc(m,n,[symbols;p]) 该函数表示产生一个m行n列的一个矩阵,且该 矩阵中的符号为symbols符号空间中的符号,各符 号的概率分布满足概率空间p。 哈夫曼编解码实验 四、函数的使用方法 如1,out=randsrc(2,3,[3 4;0.8 0.2]) 则:out= out= out= 哈夫曼编解码实验 四、函数的使用方法 即产生一个1行100列的矩阵,且矩阵中的符号为symbols符号空间中的符号,各符号的概率分布满足概率空间P。 如2: symbols=[1:6]; p=[0.5 0.125 0.125 0.125 0.0625 0.0625]; actualsig=randsrc(1,100,[symbols;p]); 程序运行结果: actualsig=1 1 2 3 2 1 4 6 5 3 1 2 6 4 5 6 1 2 3…… 哈夫曼编解码实验 四、函数的使用方法 (2)huffmandict函数 功能:生成哈夫曼字典 使用方法: [dict,avglen]=huffmandict(symbols,p) 该函数表示按照symbols中的字符和p中的概率 生成一个字典dict,并将字典的中字符串的平均长 度返回到avglen。 哈夫曼编解码实验 symbols=[1:6] p=[0.5 0.125 0.125 0.125 0.0625 0.0625] [dict,avglen]=huffmandict(symbols,p) dict= 例如: avglen=2.1250 哈夫曼编解码实验 temp=dict; for i=1:length(temp) ;length(temp):字典的行数 temp{i,2}=num2str(temp{i,2}) end temp 则程序运行结果: temp = 若要想看字典中的内容,可加以下程序: 哈夫曼编解码实验 程序运行结果 temp = dict= temp=dict; for i=1:length(temp) ;length(temp):字典的行数 temp{i,2}=num2str(temp{i,2}) end temp 哈夫曼编解码实验 四、函数的使用方法 (3)huffmanenco函数 功能:进行哈夫曼编码 使用方法:comp=huffmanenco(actualsig,dict) 表示将actualsig序列按照dict字典进行哈夫曼编码。 例如: symbols=[1:6] p=[0.5 0.125 0.125 0.125 0.0625 0.0625] [dict,avglen]=huffmandict(symbols,p) actualsig=randsrc(1,100;[symbols;p]) comp=huffmanenco(actualsig,dict) 哈夫曼编解码实验 四、函数的使用方法 (4)huffmandeco函数 功能:进行哈夫曼解码 使用方法:dsig=huffmandeco(comp,dict) 表示将将comp码字按照dict字典进行哈夫曼解码。
显示全部