资源简介
######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
- dijkstra算法代码
- 图像融合代码matlab
- 33节点牛顿法潮流计算matlab
- 基于贝叶斯小波去噪matlab
-
基于MATLAB_Simuli
nk环境下的PID参数整 - matlab 新型CMAC控制器设计
- 基于DDE通信的MATLAB与组态王之间的数
- n特征选取matlab实现原程序
- 基于Matlab的APF仿真模型229060
- Jacobi法求特征值的matlab程序
- matlab 3D机器人仿真
- 用matlab的实现调制解调方式
- 抗积分饱和PID控制算法PDF+MATLAB源程序
- cv水平集及改进算法MATLAB程序
- MATLAB 遍历算法
- 余弦信号通过巴特沃斯低通、高通、
- matlab2012a与vs2010混合编程求矩阵的逆
- 用MATLAB编写的图像的金字塔分解
- mtlab灰色系统建模MGM1,n模型
- 字符串+数据混合文件txt等的matlab读取
- 灰色预测模型通用matlab代码
- 最新matlab仿真leach协议和另一种改进算
-
基于Simuli
nk的Kalman滤波器仿真 matl - FCMClust(模糊c均值聚类算法MATLAB实现
- stft和逆stft变换的Matlab代码
- Polyphase scaler算法该算法采用Lanczos2算
- OFDM峰均比经典算法matlab程序.rar
- 灭点法摄像机标定
- QPSK with matlab code and pi/4 DQPSK
评论
共有 条评论