云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 香农费诺埃利斯编码的MATLAB语言实现

香农费诺埃利斯编码的MATLAB语言实现

  • 62 次阅读
  • 3 次下载
  • 2025/5/24 22:38:28

《信息处理与编码》结课大作业

学号:班级:姓名:成绩:

香农—费诺—埃利斯码的MATLAB语言实现

1. 编码原理:香农—费诺—埃利斯码不是分组码,它根据信源符号的积累概率分配码字,不是最佳码,但它的编码和译码效率都很高。步骤1、求修正累计概率。2、转换成二进制小数形式。3、求码长。4、截取码字。 2. 编码如下:

clc; clear;

A=[0.4,0.3,0.1,0.09,0.07,0.04]; A=fliplr(sort(A));%降序排列 [m,n]=size(A); for i=1:n

B(i,1)=A(i);%生成B的第1列 end

%生成B第2列的元素 a=sum(B(:,1))/2; for k=1:n-1

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

end end

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

B(i,2)=0; else

B(i,2)=1; end end

%生成第一次编码的结果 END=B(:,2)';

END=sym(END);

%生成第3列及以后几列的各元素 j=3; while (j~=0) p=1;

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

if B(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 B(p,j)=-1; else

if q-p==2 B(p,j)=0;

END(p)=[char(END(p)),'0']; B(q-1,j)=1;

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

a=sum(B(p:q-1,1))/2;

for k=p:q-2

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

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

B(i,j)=0;

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

B(i,j)=1;

END(i)=[char(END(i)),'1']; end end end end p=q; end C=B(:,j);

D=find(C==-1); [e,f]=size(D);

if e==n j=0; else

j=j+1; end end B A

END for i=1:n

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

avlen=sum(L.*A)

运行结果如图1所示:

图1 运行结果

3.码表

如表1所示:

表1 香农—费诺—埃利斯码码表

符号 U1 U2 U3 U4 U5 U6 概率 0.4 0.1 0.3 0.09 0.07 0.04 F(u1) 0.4 0.5 0.8 0.89 0.96 1.0 F 0.2 0.45 0.65 0.845 0.925 0.98 二进制F 0.1 0.10 0.110 0.1110 0.11110 0.11111 码长 1 2 3 4 5 5 码字 0 10 110 1110 11110 11111 试验总结:

经过本次作业,不仅对费诺编码理论及其重点内容进行了复习,掌握了费诺编码原理的同时也锻炼了编程水平,同时也对matlab的程序设计及一些只是进行了稳固,对信息编码有了更深的了解并产生了浓厚的兴趣, 为以后的学习中出现的可能问题做好了准备,锻炼了自己的动手能力和设计能力,掌握了一种科技

工具,丰富了自己的学习生活。

搜索更多关于: 香农费诺埃利斯编码的MATLAB语言实现 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

《信息处理与编码》结课大作业 学号:班级:姓名:成绩: 香农—费诺—埃利斯码的MATLAB语言实现 1. 编码原理:香农—费诺—埃利斯码不是分组码,它根据信源符号的积累概率分配码字,不是最佳码,但它的编码和译码效率都很高。步骤1、求修正累计概率。2、转换成二进制小数形式。3、求码长。4、截取码字。 2. 编码如下: clc; clear; A=[0.4,0.3,0.1,0.09,0.07,0.04]; A=fliplr(sort(A));%降序排列 [m,n]=size(A); for i=1:n B(i,1)=A(i);%生成B的第1

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com