⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 arithscaledecod.m

📁 一个详尽的算术编码的matlab仿真程序。
💻 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 + -