信息论大作业

信息论大作业

ID:27827169

大小:241.38 KB

页数:7页

时间:2018-12-06

信息论大作业_第1页
信息论大作业_第2页
信息论大作业_第3页
信息论大作业_第4页
信息论大作业_第5页
资源描述:

《信息论大作业》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、信息论与编码理论学院:电子工程学院班级:021115班姓名:姚凡学号:02111448用预先规定的方法将文字、数字或其他对象编成数码,或将信息、数据转换成规定的电脉冲信号。编码在电子计算机、电视、遥控和通讯等方面广泛使用。其中霍夫曼、费诺编码有广泛的应用,通过本次实验,了解编码的具体过程,通过编程实现编码,利用matlab实现费诺编码。正文:霍夫曼(Huffman)编码算法是满足前缀条件的平均二进制码氏最短的编-源输出符号,而将较短的编码码字分配给较大概率的信源输出。算法是:在信源符号集合中,首先将两个最小概率的信源输

2、出合并为新的输出,其概率是两个相应输出符号概率Z和。这一过程重复下去,直到只剩下一个合并输出为止,这个最后的合并输出符号的概率为lo这样就得到了一张树图,从树根开始,将编码符号1和0分配在同一节点的任意两分支上,这一分配过程重复直到树叶。从树根到树叶途经支路上的编码最后就构成了一组异前置码,就是霍夫曼编码输出。程序代码:clear;P二input('请输入信源概率向量P二');N=length(P);forcomponent=l:1:Nif(P(component)<0)error('信源概率不能小于O');enden

3、dif((sum(P)-l)>0.0001)error(,信源概率之和必须为1');end%建立各概率符号的位置索引矩阵Index,利于编码后从树根进行回溯,从而得出对应的编码Q二PIndex二zeros(NT,N);%初始化Indexfori=l:N-l[Q,I」二sort(Q);Index(i,:)=[L(1:N~i+1),zeros(1,i_l)];G(i,:)=Q;Q二[Q(1)+Q(2),Q(3:N),1];%将Q中概率最小的两个元素合并,元素不足的地方补1end%根据以上建立的Index矩阵,进行冋溯,获取

4、信源编码fori=l:N-lChar(i,:)二blanks(N*N);%初始化一个由空格符组成的字符矩阵N*N,用于存放编码end%从码树的树根向树叶冋溯,即从G矩阵的最后一行按与Index中的索引位%置的对应关系向其第一行进行编码Char(N-1,N)=,0,;%G中的N-1行即最后一行第一个元素赋为0,存到Char%中N-1行的N列位置Char(N-l,2*N)二'1';%G屮的N-1行即最后一行第二个元素赋为1,存到Char%中N-1行的2*N列位置%以下从G的倒数第二行开始向而编码fori=2:N~1Char

5、(N~i,1:N~l)=Char(N~i+1,N*(find(Index(N~i+1,:)==1))-(N-2):N*(find(Index(N-i+1,:)==1)));%将Index后一行中索引为1的编码码字填入到当前行的第一个编码位置Char(N-i,N)='O';%然后在当前行的第一个编码位置末尾填入’0'Char(N-i,N+1:2*N-1)=Char(N-i,1:N-1);%将G后一行中索引为1的编码码字填入到当前行的第二个编码位置Char(N-i,2*N)二’1’;%然后在当前行的第二个编码位置末尾填入’

6、1'forj=l:i~l%内循环作用:将Index后一行屮索引不为1处的编码按照左右顺序填入当前行的第3个位置开始的地方,最后计算到Index的首行为止Char(N-i,(j+l)*N+l:(j+2)*N)二Char(N-i+l,N*(find仃ndex(N-i+l,:)二二j+l)-l)+l:N*find(Index(N-i+1,:)==j+l));endend%Char中第一行的编码结果就是所需的Huffman编码输出,通过Index中第一行索引将编码对应到相应概率的信源符号上。fori=l:NResult(i,1

7、:N)=Char(1,N*(find(Index(1,:)==i)-1)+1:find(Index(1,:)==i)*N);end%打印编码结果String二'信源概率及其对应的Huffman编码如卜'';disp(String);disp(P);disp(Result);运行结果:并在不同机器上运行程序,所得编码并不一致,也由此验证了霍夫曼编码不是唯一的。因为:信源符号合并中遇到最小概率相同的情况时可任意选择来做合并;在码树分配编码码字的吋候I和0的位置可以是任意的。费诺编码也是一种常见的信源编码方法。信源符号以概率

8、递减的次序排列进來,将排列好的信源符号划分为两人组,使第组的概率和近于相同,并各赋于一个二元码符号”0”和”1”•然后,将每一大组的信源符号再分成两组,使同一组的两个小组的概率和近于相同,并又分别赋予一个二元码符号•依次卜•去,直至每一个小组只剩下一个信源符号为止•这样,信源符号所对应的码符号序列则为编得的码字.香农-费诺编码的m

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。