📄 arithscaledecod.m
字号:
function seq=arithscaledecod(tag,alpha,prob,lgt,mnm)
l=0;u=1;
Fx(1)=0;
for i=1:length(prob)
Fx(i+1)=Fx(i)+prob(i);
end
seq='';
k=ceil(log2(1/mnm));
k=2*k;
ln=length(tag);
if k>ln
k=ln;
end
while lgt>0
if l>=0 & u<0.5
tag(1)='';
tag(end+1)='0';
l=2*l;
u=2*u;
elseif l>=0.5 & u<1
tag(1)='';
tag(end+1)='0';
l=2*(l-0.5);
u=2*(u-0.5);
else
b=tag(1:k);
tg=bin2numb(b);
t=(tg-l)/(u-l);
for j=1:length(prob)
if t>=Fx(j) & t<Fx(j+1)
break
end
end
seq=[seq alpha(j)];
l1=l+(u-l)*Fx(j);
u=l+(u-l)*Fx(j+1);
l=l1;
lgt=lgt-1;
end
end
end
function d=bin2numb(b)
d=0;
for i=1:length(b)
bt=str2num(b(i));
d=d+bt*2^(-i);
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -