信息论大作业(2)

2018-12-29 19:16

break; end end

for i=1:n%生成B第2列的元素 if i<=k

encoding(i,2)=0; else

encoding(i,2)=1; end end

%生成第一次编码的结果 CODE=encoding(:,2)'; CODE=sym(CODE);

%生成第3列及以后几列的各元素 j=3;

while (j~=0) p=1;

while(p<=n)

x=encoding(p,j-1); for q=p:n if x==-1 break; else

if encoding(q,j-1)==x y=1; continue; else

y=0; break; end end end if y==1

q=q+1; end

if q==p|q-p==1

encoding(p,j)=-1; else

if q-p==2

encoding(p,j)=0;

CODE(p)=[char(CODE(p)),'0']; encoding(q-1,j)=1;

CODE(q-1)=[char(CODE(q-1)),'1']; else

a=sum(encoding(p:q-1,1))/2; for k=p:q-2

if abs(sum(encoding(p:k,1))-a)<=abs(sum(encoding(p:k+1,1))-a); break; end end

for i=p:q-1 if i<=k

encoding(i,j)=0;

CODE(i)=[char(CODE(i)),'0']; else

encoding(i,j)=1;

CODE(i)=[char(CODE(i)),'1']; end end end end p=q; end

C=encoding(:,j); D=find(C==-1); [e,f]=size(D); if e==n j=0; else

j=j+1; end end

encoding A CODE for i=1:n

[u,v]=size(char(CODE(i))); L(i)=v; end

avlen=sum(L.*A)

运行结果:

input the A:[0.3,0.1,0.2,0.3,0.1]

encoding =

0.3000 0 0 -1.0000 -1.0000

0.3000 0 1.0000 -1.0000 -1.0000 0.2000 1.0000 0 -1.0000 -1.0000 0.1000 1.0000 1.0000 0 -1.0000 0.1000 1.0000 1.0000 1.0000 -1.0000 A =

0.3000 0.3000 0.2000 0.1000 0.1000

CODE =

[ 00, 01, 10, 110, 111]

avlen =

2.2000

对于这次的大作业做的大体上没有什么差错,可是我感觉过于简洁。这次作业,使我对信息论2种编码有了更多的了解。同样,我感觉自己存在了太多的不足。对于课本知识,我未能够有全局的了解。对于接下来的考试,也未能有十足的把握。这使我更加的抓紧时间好好复习信息论的知识。感谢老师的平时的辛苦的教学,学生在此表示深深的感谢。


信息论大作业(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:新课标人教版小学语文二年级下册各单元、期中、期末试卷2011

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: