参考书《数据压缩导论(第4版)》  Page 100

 5、给定如表4-9所示的概率模型,求出序列a1a1a3a2a3a1 的实值标签。

 

    由题意知   P(a1)=0.2  P(a2)=0.3  P(a3)=0.5;

             据X(ai)=i,所以X(a1)=1,X(a2)=2,X(a3)=3,即序列a1a1a3a2a3a1为113231;

             又据概率密度可知累积密度,即Fx(0)=0, Fx(1)=P(a0)+ P(a1)=0.2, 

             Fx(2)=P(a1)+ P(a2)=0.5, Fx(3)=P(a1)+ P(a2)+P(a3)=1;

             因为u(n)=l(n-1)+(u(n-1)-l(n-1))*Fx(xn)

                l(n)=l(n-1)+(u(n-1)-l(n-1))*Fx(xn-1)

             所以

             (1)当出现该序列第一个元素a1时:

               u1=l0+(u0-l0)*Fx(1)=0.2;

               l1=l0+(u0-l0)*Fx(0)=0;   

            (2)出现该序列第二个元素a1 :

               u2=l1+(u1-l1)*Fx(1)=0.04;

                l2=l1+(u1-l1)*Fx(0)=0;   

            (3)出现该序列第三个元素a3 :

               u3=l2+(u2-l2)*Fx(3)=0.04;

              l3=l2+(u2-l2)*Fx(2)=0.02;

            (4) 出现该序列第四个元素a2 :

              u4=l3+(u3-l3)*Fx(2)=0.03;

             l4=l3+(u3-l3)*Fx(1)=0.024;

            (5)出现该序列第五个元素a3 :

              u5=l4+(u4-l4)*Fx(3)=0.03;

             l5=l4+(u4-l4)*Fx(2)=0.027;

            (6) 出现该序列第六个元素a1 :

              u6=l5+(u5-l5)*Fx(1)=0.0276;

             l6=l5+(u5-l5)*Fx(0)=0.027;

           所以该序列a1a1a3a2a3a1的实值标签T(a1a1a3a2a3a1)=u6+l6/2=0.0273

 

6、对于表4-9所示的概率模型,对于一个标签为0.63215699的长度为10的序列进行解码。

    :依题意得:

             Fx(0)=0,

                 Fx(1)=P(a0)+ P(a1)=0.2, 

                 Fx(2)=P(a1)+ P(a2)=0.5,

                 Fx(3)=P(a1)+ P(a2)+P(a3)=1;

            所以据已知条件,可以编写如下程序:

            

            

           程序输出结果为:

           

          所以编程实现得标签为0.63215699的长度为10的序列,解码为3221213223.

posted on 2015-09-16 12:02  张静lh  阅读(151)  评论(0编辑  收藏  举报