香农编码--信息论大作业
答案~信息论与编码练习

1、有一个二元对称信道,其信道矩阵如下图所示。
设该信道以1500个二元符号/秒的速度传输输入符号。
现有一消息序列共有14000个二元符号,并设在这消息中P(0)=P(1)=1/2。
问从信息传输的角度来考虑,10秒钟内能否将这消息序列无失真地传送完?解答:消息是一个二元序列,且为等概率分布,即P(0)=P(1)=1/2,故信源的熵为H(X)=1(bit/symbol)。
则该消息序列含有的信息量=14000(bit/symbol)。
下面计算该二元对称信道能传输的最大的信息传输速率: 信道传递矩阵为:信道容量(最大信息传输率)为:C=1-H(P)=1-H(0.98)≈0.8586bit/symbol得最大信息传输速率为:Rt ≈1500符号/秒× 0.8586比特/符号 ≈1287.9比特/秒 ≈1.288×103比特/秒此信道10秒钟内能无失真传输得最大信息量=10× Rt ≈ 1.288×104比特 可见,此信道10秒内能无失真传输得最大信息量小于这消息序列所含有的信息量,故从信息传输的角度来考虑,不可能在10秒钟内将这消息无失真的传送完。
2、若已知信道输入分布为等概率分布,且有如下两个信道,其转移概率矩阵分别为:试求这两个信道的信道容量,并问这两个信道是否有噪声?1100.980.020.020.98P ⎡⎤=⎢⎥⎣⎦111122221111222212111122221111222200000000000000000000000000000000P P ⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥==⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦11222211122222log 4(00)1/()log 42/log 8(000000)2/(),H bit symbol H X bit symbol C C H bit symbol H X C =-===>=-==1解答:(1)由信道1的信道矩阵可知为对称信道故C 有熵损失,有噪声。
信息论与编码试题与答案

1、平均自信息为表示信源的平均不确定度,也表示平均每个信源消息所提供的信息量。
平均互信息表示从Y获得的关于每个X的平均信息量,也表示发X前后Y的平均不确定性减少的量,还表示通信前后整个系统不确定性减少的量。
2、最大离散熵定理为:离散无记忆信源,等概率分布时熵最大。
3、最大熵值为。
4、通信系统模型如下:5、香农公式为为保证足够大的信道容量,可采用(1)用频带换信噪比;(2)用信噪比换频带。
6、只要,当N足够长时,一定存在一种无失真编码。
7、当R<C时,只要码长足够长,一定能找到一种编码方法和译码规则,使译码错误概率无穷小。
8、在认识论层次上研究信息的时候,必须同时考虑到形式、含义和效用三个方面的因素。
9、1948年,美国数学家香农发表了题为“通信的数学理论”的长篇论文,从而创立了信息论。
按照信息的性质,可以把信息分成语法信息、语义信息和语用信息。
按照信息的地位,可以把信息分成客观信息和主观信息。
人们研究信息论的目的是为了高效、可靠、安全地交换和利用各种各样的信息。
信息的可度量性是建立信息论的基础。
统计度量是信息度量最常用的方法。
熵是香农信息论最基本最重要的概念。
事物的不确定度是用时间统计发生概率的对数来描述的。
10、单符号离散信源一般用随机变量描述,而多符号离散信源一般用随机矢量描述。
11、一个随机事件发生某一结果后所带来的信息量称为自信息量,定义为其发生概率对数的负值。
12、自信息量的单位一般有 比特、奈特和哈特 。
13、必然事件的自信息是 0 。
14、不可能事件的自信息量是 ∞ 。
15、两个相互独立的随机变量的联合自信息量等于 两个自信息量之和 。
16、数据处理定理:当消息经过多级处理后,随着处理器数目的增多,输入消息与输出消息之间的平均互信息量 趋于变小 。
17、离散平稳无记忆信源X 的N 次扩展信源的熵等于离散信源X 的熵的 N 倍 。
18、离散平稳有记忆信源的极限熵,=∞H )/(lim 121-∞→N N N X X X X H 。
香农编码--信息论大作业

信息论与编码课程大作业题目:香农编码学生姓名:******学号:&**********专业班级:*******************2013 年 5 月10 日香农编码1.香农编码的原理/步骤香农第一定理指出了平均码长与信源之间的关系,同时也指出了可以通过编码使平均码长达到极限值,这是一个很重要的极限定理。
如何构造这种码?香农第一定理指出,选择每个码字的长度K i将满足式I(x i)≤K i<I p(x i)+1就可以得到这种码。
这种编码方法就是香农编码。
香农编码步骤如下:(1)将信源消息符按从大到小的顺序排列。
(2)计算p[i]累加概率;(3)确定满足自身要求的整数码长;(4)将累加概率变为二进制数;(5)取P[i]二进制数的小数点后Ki位即为该消息符号的二进制码字。
2. 用C语言实现#include <stdio.h>#include <math.h>#include <stdlib.h>#define max_CL 10 /*maxsize of length of code*/#define max_PN 6 /*输入序列的个数*/typedef float datatype;typedef struct SHNODE {datatype pb; /*第i个消息符号出现的概率*/datatype p_sum; /*第i个消息符号累加概率*/int kl; /*第i个消息符号对应的码长*/int code[max_CL]; /*第i个消息符号的码字*/struct SHNODE *next;}shnolist;datatype sym_arry[max_PN]; /*序列的概率*/void pb_scan(); /*得到序列概率*/void pb_sort(); /*序列概率排序*/void valuelist(shnolist *L); /*计算累加概率,码长,码字*/void codedisp(shnolist *L);void pb_scan(){int i;datatype sum=0;printf("input %d possible!\n",max_PN);for(i=0;i<max_PN;i++){ printf(">>");scanf("%f",&sym_arry[i]);sum=sum+sym_arry[i];}/*判断序列的概率之和是否等于1,在实现这块模块时,scanf()对float数的缺陷,故只要满足0.99<sum<1.0001出现的误差是允许的*/if(sum>1.0001||sum<0.99){ printf("sum=%f,sum must (<0.999<sum<1.0001)",sum);pb_scan();}}/*选择法排序*/void pb_sort(){int i,j,pos;datatype max;for(i=0;i<max_PN-1;i++){max=sym_arry[i];pos=i;for(j=i+1;j<max_PN;j++)if(sym_arry[j]>max){max=sym_arry[j];pos=j;}sym_arry[pos]=sym_arry[i];sym_arry[i]=max;}}void codedisp(shnolist *L){int i,j;shnolist *p;datatype hx=0,KL=0; /*hx存放序列的熵的结果,KL存放序列编码后的平均码字的结果*/p=L->next;printf("num\tgailv\tsum\t-lb(p(ai))\tlenth\tcode\n");printf("\n");for(i=0;i<max_PN;i++){printf("a%d\t%1.3f\t%1.3f\t%f\t%d\t",i,p->pb,p->p_sum,-3.332*log10(p->pb),p ->kl);j=0;for(j=0;j<p->kl;j++)printf("%d",p->code[j]);printf("\n");hx=hx-p->pb*3.332*log10(p->pb); /*计算消息序列的熵*/KL=KL+p->kl*p->pb; /*计算平均码字*/p=p->next;}printf("H(x)=%f\tKL=%f\nR=%fbit/code",hx,KL,hx/KL); /*计算编码效率*/ }shnolist *setnull(){ shnolist *head;head=(shnolist *)malloc(sizeof(shnolist));head->next=NULL;return(head);}shnolist *my_creat(datatype a[],int n){shnolist *head,*p,*r;int i;head=setnull();r=head;for(i=0;i<n;i++){ p=(shnolist *)malloc(sizeof(shnolist));p->pb=a[i];p->next=NULL;r->next=p;r=p;}return(head);}void valuelist(shnolist *L){shnolist *head,*p;int j=0;int i;datatype temp,s;head=L;p=head->next;temp=0;while(j<max_PN){p->p_sum=temp;temp=temp+p->pb;p->kl=-3.322*log10(p->pb)+1;/*编码,*/{s=p->p_sum;for(i=0;i<p->kl;i++)p->code[i]=0;for(i=0;i<p->kl;i++){p->code[i]=2*s;if(2*s>=1)s=2*s-1;else if(2*s==0)break;else s=2*s;}}j++;p=p->next;}}int main(void){shnolist *head;pb_scan();pb_sort();head=my_creat(sym_arry,max_PN); valuelist(head);codedisp(head);}3.运行结果及分析(本程序先定义了码字长度的最大值和信源概率的个数,然后有设定了概率的和的范围。
信息论与编码实验报告-Shannon编码

实验报告课程名称:信息论与编码姓名:系:专业:年级:学号:指导教师:职称:年月日实验三 Shannon 编码一、实验目的1、熟悉离散信源的特点;2、学习仿真离散信源的方法3、学习离散信源平均信息量的计算方法4、熟悉 Matlab 编程二、实验原理给定某个信源符号的概率分布,通过以下的步骤进行香农编码 1、信源符号按概率从大到小排列;12.......n p p p ≥≥≥2、确定满足下列不等式的整数码长i K 为()()1i i i lb p K lb p -≤<-+3、为了编成唯一可译码,计算第i 个消息的累加概率:4、将累加概率i P 变换成二进制数;5、取i P 二进制数的小数点后i K 位即为该消息符号的二进制码字。
三、实验内容1、写出计算自信息量的Matlab 程序2、写出计算离散信源平均信息量的Matlab 程序。
3、将程序在计算机上仿真实现,验证程序的正确性并完成习题。
四、实验环境Microsoft Windows 7 Matlab 6.5五、编码程序计算如下信源进行香农编码,并计算编码效率:⎥⎦⎤⎢⎣⎡=⎥⎦⎤⎢⎣⎡01.01.015.017.018.019.02.06543210a a a a a a a P X MATLAB 程序:(1) a=[0.2 0.18 0.19 0.15 0.17 0.1 0.01]; k=length(a);y=0; for i=1:k-111()i i k k P p a -==∑for n=i+1:kif (a(i)<a(n))t=a(i);a(i)=a(n);a(n)=t;endendends=zeros(k,1);b=zeros(k,1);for m=1:ks(m)=y;y=y+a(m);b(m)=ceil(-log2(a(m)));z=zeros(b(m),1);x=s(m);p=b2d10(x);for r=1:b(m)z(r)=p(r);enddisp('Êä³ö½á¹ûΪ£º')disp('³öʸÅÂÊ'),disp(a(m))disp('ÇóºÍ½á¹û'),disp(s(m))disp('±àÂëλÊý'),disp(b(m))disp('×îÖÕ±àÂë'),disp(z')end(2) function y=b2d10(x)for i=1:8temp=x.*2;if(temp<1)y(i)=0;x=temp;elsex=temp-1;y(i)=1;endend(3) p=[0.2 0.19 0.18 0.17 0.15 0.1 0.01]; sum=0;sum1=0;for i=1:7a(i)=-log2(p(i));K(i)=ceil(a(i));R(i)=p(i)*K(i);sum=sum+R(i);c(i)=a(i)*p(i);sum1=sum1+c(i);endK1=sum;H=sum1;Y=H/K1;disp('ƽ¾ùÐÅÏ¢Á¿'),disp(H)disp('ƽ¾ùÂ볤'),disp(K1)disp('±àÂëЧÂÊ'),disp(Y)六、实验结果输出结果为:出事概率0.2000,求和结果0,编码位数3,最终编码000出事概率0.1900,求和结果0.2000,编码位数3,最终编码001出事概率0.1800,求和结果0.3900,编码位数3,最终编码011出事概率0.1700,求和结果0.5700,编码位数3,最终编码100出事概率0.1500,求和结果0.7400,编码位数3,最终编码101出事概率0.1000,求和结果0.8900,编码位数4,最终编码1110出事概率0.0100,求和结果0.9900,编码位数7,最终编码1111110编码效率:平均信息量2.6087平均码长3.1400编码效率0.8308七、实验总结通过本次的实验,掌握了Shannon编码的实验原理以及编码过程。
信息论与编码试卷及答案

一、(11’)填空题(1)1948年,美国数学家香农发表了题为“通信的数学理论”的长篇论文,从而创立了信息论.(2)必然事件的自信息是0 。
(3)离散平稳无记忆信源X的N次扩展信源的熵等于离散信源X的熵的N倍。
(4)对于离散无记忆信源,当信源熵有最大值时,满足条件为__信源符号等概分布_。
(5)若一离散无记忆信源的信源熵H(X)等于2。
5,对信源进行等长的无失真二进制编码,则编码长度至少为 3 。
(6)对于香农编码、费诺编码和霍夫曼编码,编码方法惟一的是香农编码。
(7)已知某线性分组码的最小汉明距离为3,那么这组码最多能检测出_2_______个码元错误,最多能纠正___1__个码元错误。
(8)设有一离散无记忆平稳信道,其信道容量为C,只要待传送的信息传输率R__小于___C(大于、小于或者等于),则存在一种编码,当输入序列长度n足够大,使译码错误概率任意小。
(9)平均错误概率不仅与信道本身的统计特性有关,还与___译码规则____________和___编码方法___有关三、(5')居住在某地区的女孩中有25%是大学生,在女大学生中有75%是身高1。
6米以上的,而女孩中身高1。
6米以上的占总数的一半。
假如我们得知“身高1。
6米以上的某女孩是大学生”的消息,问获得多少信息量?解:设A表示“大学生"这一事件,B表示“身高1.60以上”这一事件,则P(A)=0。
25 p(B)=0。
5 p(B|A)=0.75 (2分)故 p(A|B)=p(AB)/p(B)=p(A)p(B|A)/p(B)=0.75*0。
25/0.5=0.375 (2分)I(A|B)=—log0.375=1。
42bit (1分)四、(5')证明:平均互信息量同信息熵之间满足I(X;Y)=H(X)+H(Y)—H(XY)证明:()()()()()()()()()()Y X H X H y x p y x p x p y x p x p y x p y x p Y X I X X Y j i j i Y i j i XYi j i j i -=⎥⎦⎤⎢⎣⎡---==∑∑∑∑∑∑log log log; (2分)同理()()()X Y H Y H Y X I -=; (1分) 则()()()Y X I Y H X Y H ;-= 因为()()()X Y H X H XY H += (1分) 故()()()()Y X I Y H X H XY H ;-+=即()()()()XY H Y H X H Y X I -+=; (1分)五、(18’)。
信息论与编码大作业

二
当前信息论发展日新月异,目前,世界正在谈论三种前沿科学,即生命科学、材料科学和信息科学。信息论是信息科学的理论基础,现在的人们虽然不通晓信息论,但是,在日常生活中的谈话、书信、报纸、书籍、电影、电话、电报、电视、电子计算机……都是信息传输和处理的方式。随着信息革命和信息科学的发展,信息技术(指通信、计算机和控制)的研究和使用,信息论研究范畴远远超出了通信及类似的学科,从一般认为“信息论即通信理论”的认识延伸到像生物学、生理学、人类学、物理学、化学、电子学、语言学、经济学和管理学等学科。人类社会正在走向一个以充分发挥人的创造力和创新精神,以智能、知识为核心的高度发展的信息社会。
左分支表示字符'0',右分支表示字符'1',则可以根结点到叶结点的路径上分支字符组成的串作为该叶结点的字符编码。因此可得到字符A、B、C、D的二进制前缀编码分别:0、10、110、111。假设每种字符在电文中出现的次数为Wi,编码长度为Li,电文中有n种字符,则电文编码总长为∑WiLi。若将此对应到二叉树上,Wi为叶结点的权,Li为根结点到叶结点的路径长度。那么,∑WiLi恰好为二叉树上带权路径长度。因此,设计电文总长最短的二进制前缀编码,就是以n种字符出现的频率作权,构造一棵霍夫曼树,此构造过程称为霍夫曼编码。
信息论部分习题及解答

2-1 同时掷两个正常的骰子,也就是各面呈现的概率都是1/6,求: (1)“3和5同时出现” 这事件的自信息量。
(2)“两个1同时出现” 这事件的自信息量。
(3)两个点数的各种组合(无序对)的熵或平均信息量。
(4)两个点数之和(即2,3,…,12构成的子集)的熵。
(5)两个点数中至少有一个是1的自信息。
解:(1)设X 为‘3和5同时出现’这一事件,则P (X )=1/18,因此 17.418log)(log)(22==-=x p X I (比特)(2)设‘两个1同时出现’这一事件为X ,则P (X )=1/36,因此 17.536log)(log)(22==-=x p X I (比特)(3 ) “两个相同点数出现”这一事件的概率为1/36,其他事件的概率为1/18,则 337.418log181536log366)(22=+=X H (比特/组合)(4)222222111111()[log 36log 18()log 12()log 936181836181811136111()log ]2()log 6 3.44(/)1818365181818H X =++++++++⨯+++=比特两个点数之和(5)两个点数至少有一个为1的概率为P (X )= 11/36 71.13611log)(2=-=X I (比特)2-6设有一离散无记忆信源,其概率空间为⎪⎪⎭⎫⎝⎛=====⎪⎪⎭⎫⎝⎛8/134/124/118/304321x x x x PX该信源发出的信息符号序列为(202 120 130 213 001 203 210 110 321 010 021 032 011 223 210),求:(1) 此信息的自信息量是多少?(2) 在此信息中平均每个符号携带的信息量是多少? 解:(1)由无记忆性,可得序列)(比特/18.87)3(6)2(12)1(13)0(14=+++=I I I I(2)符号)(比特/91.145/==I H 2-9在一个袋中放有5个黑球、10个白球,以摸一个球为一次实验,摸出的球不再放进去。
《信息论与编码》第三章部分习题参考答案

第三章习题参考答案第三章习题参考答案3-1解:(1)判断唯一可译码的方法:①先用克劳夫特不等式判定是否满足该不等式;②若满足再利用码树,看码字是否都位于叶子结点上。
如果在叶节点上则一定是唯一可译码,如果不在叶节点上则只能用唯一可译码的定义来判断是不是。
可译码的定义来判断是不是。
其中C1,C2,C3,C6都是唯一可译码。
都是唯一可译码。
对于码C2和C4都满足craft 不等式。
但是不满足码树的条件。
但是不满足码树的条件。
就只能就只能举例来判断。
举例来判断。
对C5:61319225218ki i ---==+´=>å,不满足该不等式。
所以C5不是唯一可译码。
译码。
(2)判断即时码方法:定义:即时码接收端收到一个完整的码字后,就能立即译码。
特点:码集任何一个码不能是其他码的前缀,即时码必定是唯一可译码, 唯一可译码不一定是即时码。
唯一可译码不一定是即时码。
其中C1,C3,C6都是即时码。
都是即时码。
对C2:“0”是“01”的前缀,……,所以C2不是即时码。
不是即时码。
(1) 由平均码长61()i i i K p x k ==å得1236 3 1111712(3456) 241681111712(3456) 2416811152334 24162K bitK bit K bitK bit==´+´+´+++==´+´+´+++==´+´+´´=62111223366()()log () 2 /()266.7%3()294.1%178()294.1%178()280.0%52i i i H U p u p u H U K H U K H U K H U K h h h h ==-=============å比特符号3-7解:(1)信源消息的概率分布呈等比级数,按香农编码方法,其码长集合为自然数数列1, 2, 3, ···, i, ·, i, ····;对应的编码分别为:0, 10, 110, ···, 111…110 ( i 110 ( i –– 1个1), ·1), ····。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信息论与编码课程大作业
题目:香农编码
学生姓名: ******
学号: &**********
专业班级: *******************
2013 年 5 月 10 日
香农编码
1.香农编码的原理/步骤
香农第一定理指出了平均码长与信源之间的关系,同时也指出了可以通过编码使平均码长达到极限值,这是一个很重要的极限定理。
如何构造这种码香农第一定理指出,
选择每个码字的长度K
i 将满足式 I(x
i
)≤K
i
<Ip(x
i
)+1就可以得到这种码。
这种编码方
法就是香农编码。
香农编码步骤如下:
(1)将信源消息符按从大到小的顺序排列。
(2)计算p[i]累加概率;
(3)确定满足自身要求的整数码长;
(4)将累加概率变为二进制数;
(5)取P[i]二进制数的小数点后Ki位即为该消息符号的二进制码字。
2. 用C语言实现
#include <>
#include <>
#include <>
#define max_CL 10 /*maxsize of length of code*/
#define max_PN 6 /*输入序列的个数*/
typedef float datatype;
typedef struct SHNODE {
datatype pb; /*第i个消息符号出现的概率*/
datatype p_sum; /*第i个消息符号累加概率*/
int kl; /*第i个消息符号对应的码长*/
int code[max_CL]; /*第i个消息符号的码字*/
struct SHNODE *next;
}shnolist;
datatype sym_arry[max_PN]; /*序列的概率*/
void pb_scan(); /*得到序列概率*/
void pb_sort(); /*序列概率排序*/
void valuelist(shnolist *L); /*计算累加概率,码长,码字*/ void codedisp(shnolist *L);
void pb_scan()
{
int i;
datatype sum=0;
printf("input %d possible!\n",max_PN);
for(i=0;i<max_PN;i++)
{ printf(">>");
scanf("%f",&sym_arry[i]);
sum=sum+sym_arry[i];
}
/*判断序列的概率之和是否等于1,在实现这块模块时,scanf()对float数的缺陷,故只要满足<sum<出现的误差是允许的*/
if(sum>||sum<
{ printf("sum=%f,sum must (<<sum<",sum);
pb_scan();
}
}
/*选择法排序*/
void pb_sort()
{
int i,j,pos;
datatype max;
for(i=0;i<max_PN-1;i++)
{
max=sym_arry[i];
pos=i;
for(j=i+1;j<max_PN;j++)
if(sym_arry[j]>max)
{
max=sym_arry[j];
pos=j;
}
sym_arry[pos]=sym_arry[i];
sym_arry[i]=max;
}
}
void codedisp(shnolist *L)
{
int i,j;
shnolist *p;
datatype hx=0,KL=0; /*hx存放序列的熵的结果,KL存放序列编码后的平均码字的结果*/
p=L->next;
printf("num\tgailv\tsum\t-lb(p(ai))\tlenth\tcode\n");
printf("\n");
for(i=0;i<max_PN;i++)
{
printf("a%d\t%\t%\t%f\t%d\t",i,p->pb,p->p_sum,*log10(p->pb),p->kl);
j=0;
for(j=0;j<p->kl;j++)
printf("%d",p->code[j]);
printf("\n");
hx=hx-p->pb**log10(p->pb); /*计算消息序列的熵*/
KL=KL+p->kl*p->pb; /*计算平均码字*/
p=p->next;
}
printf("H(x)=%f\tKL=%f\nR=%fbit/code",hx,KL,hx/KL); /*计算编码效率*/
}
shnolist *setnull()
{ shnolist *head;
head=(shnolist *)malloc(sizeof(shnolist)); head->next=NULL;
return(head);
}
shnolist *my_creat(datatype a[],int n)
{
shnolist *head,*p,*r;
int i;
head=setnull();
r=head;
for(i=0;i<n;i++)
{ p=(shnolist *)malloc(sizeof(shnolist)); p->pb=a[i];
p->next=NULL;
r->next=p;
r=p;
}
return(head);
}
void valuelist(shnolist *L)
{
shnolist *head,*p;
int j=0;
int i;
datatype temp,s;
head=L;
p=head->next;
temp=0;
while(j<max_PN)
{
p->p_sum=temp;
temp=temp+p->pb;
p->kl=*log10(p->pb)+1;
/*编码,*/
{
s=p->p_sum;
for(i=0;i<p->kl;i++)
p->code[i]=0;
for(i=0;i<p->kl;i++)
{
p->code[i]=2*s;
if(2*s>=1)
s=2*s-1;
else if(2*s==0)
break;
else s=2*s;
}
}
j++;
p=p->next;
}
}
int main(void)
{
shnolist *head;
pb_scan();
pb_sort();
head=my_creat(sym_arry,max_PN); valuelist(head);
codedisp(head);
}
3.运行结果及分析
(
本程序先定义了码字长度的最大值和信源概率的个数,然后有设定了概率的和的范围。
除此之外,程序采用多个函数求出每个概率的自信息量,采用结构化编程的思想将问题细分成多个模块,再利用数学方法求得累加概率对应的码字长度,在此基础上,
利用循环函数求得对应的码字长度。
这样就得到了所需的结果。
再利用循环依次表达出来即可。
4.心得体会
通过这次大作业,我觉得自己对C该好好学习了,还有一些基本知识,导致编写程序出现困难。
编码的原理虽然知道,但是操作出现困难。
对信息论的认识也得到加强和巩固。