资源简介
######Matlab实现算术编码,代码功能:输入一个字符串,输出编码和编码所需位数################

代码片段和文件信息
clearclc;
format long g;
str1_1=[‘DIGITAL AUDIO TECHNOLOGY AND APPLICATION‘];
str1_2=[‘DIGITAL AUDIO TEC‘];
str1_3=[‘AILAILBABA‘];
str1=str1_3;
%字符
b=unique(str1);
%统计字符个数
for i=1:length(b)
a(i)=length(strfind(str1b(i)));
end
%排序
for i=1:length(a)-1
for j=i+1:length(a)
if(a(i) t1=a(i);
a(i)=a(j);
a(j)=t1;
t2=b(i);
b(i)=b(j);
b(j)=t2;
end
end
end
%求概率
for i=1:length(a)
frequency(i) = a(i)/sum(a);
end
%求范围
low(1)=0;
for i = 1:length(frequency)
if i==1
high(i)=frequency(i);
else
low(i)=frequency(i-1)+low(i-1);
high(i)=low(i)+frequency(i);
end
end
%编码
low_value=0; %初始化
high_value=1; %初始化
range=high_value-low_value; %初始化
for i = 1:length(str1) %遍历字符串中的每一个元素,使用for循环语句。
d=strfind(bstr1(i)); %找到字符串中的字符,在数组d中的角标
%算术编码
high_value = low_value+ range*high(d);
low_value = low_value+range*low(d);
range=high_value-low_value;
%编码后数据处理
if i==length(str1)
ave=(high_value+low_value)/2;
ave_str=num2str(avelength(str1)); %把数字转成字符串
low_value_str=num2str(low_valuelength(str1)); %把数字转成字符串
high_value_str=num2str(high_valuelength(str1)); %把数字转成字符串
%当ave_str与low_value_str对应位的元素不一样时
%截去ave_str不一样元素后面的字符
for ii= 3: length(low_value_str)
if low_value_str(ii) ~= high_value_str(ii)
ave_str((ii+1):end)=[];
break;
end
ii=ii+1;
end
end
end
%把ave_str值赋给codeword
codeword=ave_str
%计算codeword占用的位数
bits=-log2(range)
%编码后的高低范围
high_value
low_value
%ave
% range
% b 字符
% a 出现的次数
% frequency 出现的频率
% low 低位值
% high 高位值
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2051 2018-11-16 14:56 overflow.m
----------- --------- ---------- ----- ----
2051 1
- 上一篇:dijkstra算法代码
- 下一篇:边界提取,边界连接,Matlab
相关资源
- matlab_OFDM调制解调(来自剑桥大学)
- Matlab路面裂缝识别69319
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
评论
共有 条评论