zoukankan      html  css  js  c++  java
  • matlab实现算术编解码 分类: 图像处理 2014-06-01 23:01 357人阅读 评论(0) 收藏

    利用Matlab实现算术编解码过程,程序如下:
    
    clc,clear all;
    symbol=['abc'];         
    pr=[0.4 0.4 0.2];        %各字符出现的概率
    temp=[0.0 0.4 0.8 1.0];
    orignal=temp;
    in=input('input a string of abc:');
    n=length(in);
    %编码
    for i=1:n
        width=temp(4)-temp(1);
        w=temp(1);
        switch in(i)
            case 'a'
                m=1;
            case 'b'
                m=2;
            case 'c'
                m=3;
            otherwise
                error('do not input other character');
        end
        temp(1)=w+orignal(m)*width;
        temp(4)=w+orignal(m+1)*width;
        left=temp(1);
        right=temp(4);
        fprintf('left=%.6f',left);
        fprintf('    ');
        fprintf('right=%.6f
    ',right);
    end
    encode=(temp(1)+temp(4))/2
    %解码
    decode=['0'];
    for i=1:n
        fprintf('tmp=%.6f
    ',encode);
        if(encode>=orignal(1)& encode<orignal(2))
            decode(i)='a';
            t=1;
        elseif(encode>=orignal(2)& encode<orignal(3))
            decode(i)='b';
            t=2;
        else
            decode(i)='c';
            t=3;
        end
        encode=(encode-orignal(t));
        encode=encode/pr(t);
    end
    decode

    结果:


    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    阅读《构建之法(第三版)》提出的问题
    职位部门管理系统
    JSON
    hashcode()和equals()方法
    JSF和Facelets的生命周期
    认识applet
    认识ajax
    hello1.java分析
    vue中的防抖和节流
    vue项目搭建
  • 原文地址:https://www.cnblogs.com/luo-peng/p/4646265.html
Copyright © 2011-2022 走看看