%主程序,可以更改信源字母表、信源序列和概率值,实现任意元的编码
clear all
close all
format long e;
symbol=['abcd'];
ps=[0.5 0.25 0.125 0.125];
inseq=('baacdabaa');
%输出十进制小数编码结果
codeword=arithencode(symbol,ps,inseq)
%十进制小数转换为二进制数
for i=1:length(inseq)
temp(i)=find(inseq(i)==symbol);
As(i)=ps(1,temp(i));
end
pro=prod(As);
innum=codeword;
N=ceil(abs(log2(1/pro))) %二进制小数应取的长度N
if (innum>1)|(N == 0) %判断输入的有效性
disp('error!');
return;
end
count=0;
tempnum=innum;
record=zeros(1,N);
while(N)
count=count+1; %长度小于N
if(count>N)
N=0;
end
tempnum=tempnum*2; %小数转换为二进制,乘2取整
if tempnum>1
record(count)=1;
tempnum=tempnum-1;
elseif(tempnum==1)
record(count)=1;
N=0; %stop loop
else
record(count)=0;
end
end
%输出二进制编码结果
codebinary=record
%输出解码结果
outseq=arithdecode(symbol,ps,codeword,length(inseq))
尽是远方
- 粉丝: 34
- 资源: 1万+
会员权益专享
最新资源
- 计算机毕设之01-计算机毕业设计辅导视频简介
- Android 7.0 源码framework jar包
- 海湾早期吸气报警调试软件
- 如何让右脑发达起来.pdf
- 很棒的毕业设计、课程设计、练手的java项目-员工工资管理系统(文档+视频+源码齐全).rar
- 很棒的毕业设计、课程设计、练手的java项目-学生选课系统(文档+视频+源码齐全).rar
- 很棒的毕业设计、课程设计、练手的java项目-学生选课成绩信息管理系统(ER图文档+视频+源码齐全).rar
- iris_tree.dot
- 很棒的毕业设计、课程设计、练手的java项目-学生信息管理(文档+视频+源码齐全).rar
- 很棒的毕业设计、课程设计、练手的java项目-图书管管理系统(视频+源码齐全).rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


