香农编码--信息论大作业

香农编码--信息论大作业
香农编码--信息论大作业

香农编码--信息论大作业-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

信息论与编码课程大作业

题目:香农编码

学生姓名: ******

学号: &**********

专业班级: *******************

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

#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

{ printf(">>");

scanf("%f",&sym_arry[i]);

sum=sum+sym_arry[i];

}

/*判断序列的概率之和是否等于1,在实现这块模块时,scanf()对float数的缺陷,故只要满足0.99

if(sum>1.0001||sum<0.99)

{ printf("sum=%f,sum must (<0.999

pb_scan();

}

}

/*选择法排序*/

void pb_sort()

{

int i,j,pos;

datatype max;

for(i=0;i

{

max=sym_arry[i];

pos=i;

for(j=i+1;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

{

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;jkl;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

{ 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

{

p->p_sum=temp;

temp=temp+p->pb;

p->kl=-3.322*log10(p->pb)+1;

/*编码,*/

{

s=p->p_sum;

for(i=0;ikl;i++)

p->code[i]=0;

for(i=0;ikl;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.运行结果及分析

信息论与编码理论习题答案

信息论与编码理论习题 答案 LG GROUP system office room 【LGA16H-LGYY-LGUA8Q8-LGA162】

第二章 信息量和熵 八元编码系统,码长为3,第一个符号用于同步,每秒1000个码字,求它的信息速 率。 解:同步信息均相同,不含信息,因此 每个码字的信息量为 2?8log =2?3=6 bit 因此,信息速率为 6?1000=6000 bit/s 掷一对无偏骰子,告诉你得到的总的点数为:(a) 7; (b) 12。问各得到多少信息 量。 解:(1) 可能的组合为 {1,6},{2,5},{3,4},{4,3},{5,2},{6,1} )(a p =366=6 1 得到的信息量 =) (1 log a p =6log = bit (2) 可能的唯一,为 {6,6} )(b p =361 得到的信息量=) (1 log b p =36log = bit 经过充分洗牌后的一副扑克(52张),问: (a) 任何一种特定的排列所给出的信息量是多少? (b) 若从中抽取13张牌,所给出的点数都不相同时得到多少信息量? 解:(a) )(a p =! 521 信息量=) (1 log a p =!52log = bit (b) ? ??????花色任选种点数任意排列 13413!13 )(b p =13 52134!13A ?=1352 13 4C 信息量=1313 52 4log log -C = bit 随机掷3颗骰子,X 表示第一颗骰子的结果,Y 表示第一和第二颗骰子的点数之和, Z 表示3颗骰子的点数之和,试求)|(Y Z H 、)|(Y X H 、),|(Y X Z H 、 )|,(Y Z X H 、)|(X Z H 。

信息论与编码实验报告.

本科生实验报告 实验课程信息论与编码 学院名称信息科学与技术学院 专业名称通信工程 学生姓名 学生学号 指导教师谢振东 实验地点6C601 实验成绩 二〇一五年十一月二〇一五年十一月

实验一:香农(Shannon )编码 一、实验目的 掌握通过计算机实现香农编码的方法。 二、实验要求 对于给定的信源的概率分布,按照香农编码的方法进行计算机实现。 三、实验基本原理 给定某个信源符号的概率分布,通过以下的步骤进行香农编码 1、将信源消息符号按其出现的概率大小排列 )()()(21n x p x p x p ≥≥≥ 2、确定满足下列不等式的整数码长K i ; 1)(l o g )(l o g 22+-<≤-i i i x p K x p 3、为了编成唯一可译码,计算第i 个消息的累加概率 ∑ -== 1 1 )(i k k i x p p 4、将累加概率P i 变换成二进制数。 5、取P i 二进制数的小数点后K i 位即为该消息符号的二进制码。 四、源程序: #include #include #include #include #include using namespace std; int main() { int N; cout<<"请输入信源符号个数:";cin>>N; cout<<"请输入各符号的概率:"<

int i,j; for(i=0;i

信息论与编码习题参考答案(全)

信息论与编码习题参考答案 第一章 单符号离散信源 同时掷一对均匀的子,试求: (1)“2和6同时出现”这一事件的自信息量; (2)“两个5同时出现”这一事件的自信息量; (3)两个点数的各种组合的熵; (4)两个点数之和的熵; (5)“两个点数中至少有一个是1”的自信息量。 解: bit P a I N n P bit P a I N n P c c N 17.536log log )(36 1 )2(17.418log log )(362)1(36 662221111 616==-=∴====-=∴== =?==样本空间: * (3)信源空间: bit x H 32.436log 36 16236log 36215)(=??+?? =∴

bit x H 71.3636 log 366536log 3610 436log 368336log 366236log 36436log 362)(=??+?+?+??= ∴++ (5) bit P a I N n P 17.111 36 log log )(3611333==-=∴== ? 如有6行、8列的棋型方格,若有两个质点A 和B ,分别以等概落入任一方格内,且它们的坐标分别为(Xa ,Ya ), (Xb ,Yb ),但A ,B 不能同时落入同一方格内。 (1) 若仅有质点A ,求A 落入任一方格的平均信息量; (2) 若已知A 已落入,求B 落入的平均信息量; (3) 若A ,B 是可辨认的,求A ,B 落入的平均信息量。 解: ! bit a P a P a a P a I a P A i 58.548log )(log )()(H 48log )(log )(481 )(:)1(48 1 i i i i i ==-=∴=-=∴= ∑=落入任一格的概率 bit b P b P b b P b I b P A i 55.547log )(log )()(H 47 log )(log )(47 1 )(:B ,)2(48 1i i i i i ==-=∴=-=∴=∑=落入任一格的概率是落入任一格的情况下在已知 bit AB P AB P AB H AB P AB I AB P AB i i i i i i i 14.11)4748log()(log )()() (log )(47 1 481)()3(47481 =?=-=-=∴?=∑?=是同时落入某两格的概率 从大量统计资料知道,男性中红绿色盲的发病率为7%,女性发病率为%.如果你问一位男士:“你是否是红绿色盲”他的回答可能是:“是”,也可能“不是”。问这两个回答中各含有多少信息量平均每个回答中各含有多少信息量如果你问一位女士,则她的答案中含有多少平均信息量 解:

信息论与编码大作业

广西科技大学 大作业 课程名称:信息论与编码 题目:信道编码对通信系统性能的影响学院:电气与信息工程学院 专业:电子信息工程 班级: 学号: 成绩: 姓名: 电话号码:

信道编码对通信系统性能的影响 [摘要] 简述信道编码理论,详细说明分组码的编译原理、实现方法及检错纠错能力,用MATLAB仿真有无信道编码条件下对通信系统性能的影响及信道编码在不同信道下对通信系统性能的影响,如AWGN信道和深衰落信道。 [关键词] 信道编码、分组码、MATLAB仿真、性能 一、引言 提高信息传输的有效性和可靠性始终是通信技术所追求的目标,而信道编码能够显著的提升信息传输的可靠性。1948年,信息论的奠基人C.E.Shannon在他的开创性论文“通信的数学理论”中,提出了著名的有噪信道编码定理.他指出:对任何信道,只要信息传输速率R不大于信道容量C, 就一定存在这样的编码方法:在采用最大似然译码时,其误码率可以任意小.该定理在理论上给出了对给定信道通过编码所能达到的编码增益的上限,并指出了为达到理论极限应采用的译码方法.在信道编码定理中,香农提出了实现最佳编码的三个基本条件:(1 )采用随机编译码方式;(2 )编码长度L→∞ , 即分组的码组长度无限;(3)译码采用最佳的最大似然译码算法。 二、信道编码理论 1、信道编码的概念与目的 进行信道编码是为了提高信号传输的可靠性,改善通信系统的传输质量,研究信道编码的目标是寻找具体构造编码的理论与方法。从原理上,构造信道码的基本思路是根据一定的规律在待发送的信息码元中人为的加入一定的多余码元,以引入最小的多余度为代价来换取最好的抗干扰性能。信道编码是通过信道编码器和译码器实现的用于提高信道可靠性的理论和方法,是信息论的内容之一。信道编码大致分为两类:①信道编码定理,从理论上解决理想编码器、译码器的存在性问题,也就是解决信道能传送的最大信息率的可能性和超过这个最大值时的传输问题。②构造性的编码方法以及这些方法能达到的性能界限。编码定理的证明,从离散信道发展到连续信道,从无记忆信道到有记忆信道,从单用户信道到多用户信道,从证明差错概率可接近于零到以指数规律逼近于零,正在不断完善。编码方法,在离散信道中一般用代数码形式,其类型有较大发展,各种界限也不断有人提出,但尚未达到编码定理所启示的限度。在连续信道中常采用正交函数系来代表消息,这在极限情况下可达到编码定理的限度,不是所有信道的编码定理都已被证明。 2、信道编码的分类

信息论与编码习题与答案第四章

4-1 设有一个二元等该率信源{}1,0∈X ,2/110==p p ,通过一个二进制对称信道(BSC )。其失真函数ij d 与信道转移概率ij p 分别定义为 j i j i d ij =≠???=,0,1 ,j i j i p ij =≠? ??-=,1,εε 试求失真矩阵d 和平均失真D 。 解:由题意得, 失真矩阵为d ??????=0110d ,信道转移概率矩阵为P ?? ????--=εεεε11)(i j 平均失真为ε εεεε=?-+?+?+?-= =∑0)1(211211210)1(21),()()(,j i d i j p i p D j i 4-3 设输入符号与输出符号X 和Y 均取值于{0,1,2,3},且输入符号的概率分布为P(X=i)=1/4,i=0,1,2,3,设失真矩阵为 ????? ???????=0111101111011110d 求)(),(,,max min max min D R D R D D 以及相应的编码器转移概率矩阵。 解:由题意,得 0min =D 则symbol bit X H R D R /24log )()0()(2min ==== 这时信源无失真,0→0,1→1,2→2,3→3,相应的编码器转移概率矩阵为

????? ???????=1000 010*********)j (i P ∑===30 3,2,1,0max ),()(min i j j i d i p D ,,14 1141041141141141141041min{?+?+?+??+?+?+?= }04 1141141141141041141141?+?+?+??+?+?+?, 43}43,43,43,43min{== 则0)(max =D R 此时输出概率分布可有多种,其中一种为:p(0)=1,p(1)=p(2)=p(3)=0 则相应的编码器转移概率矩阵为????? ???????=0001000100010001)(i j P

信息论与编码第三章曹雪虹知识题目解析

第三章 3.1 设二元对称信道的传递矩阵为?????? ????32313132 (1) 若P(0) = 3/4, P(1) = 1/4,求H(X), H(X/Y), H(Y/X)和I(X;Y); (2) 求该信道的信道容量及其达到信道容量时的输入概率分布; 解: 1) symbol bit Y X H X H Y X I symbol bit X Y H Y H X H Y X H X Y H Y H Y X H X H Y X I symbol bit y p Y H x y p x p x y p x p y x p y x p y p x y p x p x y p x p y x p y x p y p symbol bit x y p x y p x p X Y H symbol bit x p X H j j i j i j i j i i i / 062.0749.0811.0)/()();(/ 749.0918.0980.0811.0)/()()()/() /()()/()();(/ 980.0)4167.0log 4167.05833.0log 5833.0()()(4167 .03 2 413143)/()()/()()()()(5833.031 413243)/()()/()()()()(/ 918.0 10 log )3 2 lg 324131lg 314131lg 314332lg 3243( ) /(log )/()()/(/ 811.0)41 log 4143log 43()()(222221212221221211112111222=-==-==+-=+-=-=-==?+?-=-==?+?=+=+==?+?= +=+==??+?+?+?-=-==?+?-=-=∑∑∑∑ 2) 2221122 max (;)log log 2(lg lg )log 100.082 /3333 mi C I X Y m H bit symbol ==-=++?=其最佳输入分布为1 ()2 i p x = 3-2某信源发送端有2个符号,i x ,i =1,2;()i p x a =,每秒发出一个符号。接受端有3

信息论与编码实验报告材料

实验报告 课程名称:信息论与编码姓名: 系:专 业:年 级:学 号:指导教 师:职 称:

年月日 目录 实验一信源熵值的计算 (1) 实验二Huffman 信源编码. (5) 实验三Shannon 编码 (9) 实验四信道容量的迭代算法 (12) 实验五率失真函数 (15) 实验六差错控制方法 (20) 实验七汉明编码 (22)

实验一信源熵值的计算 、实验目的 1 进一步熟悉信源熵值的计算 2 熟悉Matlab 编程 、实验原理 熵(平均自信息)的计算公式 q q 1 H(x) p i log2 p i log2 p i i 1 p i i 1 MATLAB实现:HX sum( x.* log2( x));或者h h x(i)* log 2 (x(i )) 流程:第一步:打开一个名为“ nan311”的TXT文档,读入一篇英文文章存入一个数组temp,为了程序准确性将所读内容转存到另一个数组S,计算该数组中每个字母与空格的出现次数( 遇到小写字母都将其转化为大写字母进行计数) ,每出现一次该字符的计数器+1;第二步:计算信源总大小计算出每个字母和空格出现的概率;最后,通过统计数据和信息熵公式计算出所求信源熵值(本程序中单位为奈特nat )。 程序流程图: 三、实验内容 1、写出计算自信息量的Matlab 程序 2、已知:信源符号为英文字母(不区分大小写)和空格输入:一篇英文的信源文档。输出:给出该信源文档的中各个字母与空格的概率分布,以及该信源的熵。 四、实验环境 Microsoft Windows 7

五、编码程序 #include"stdio.h" #include #include #define N 1000 int main(void) { char s[N]; int i,n=0; float num[27]={0}; double result=0,p[27]={0}; FILE *f; char *temp=new char[485]; f=fopen("nan311.txt","r"); while (!feof(f)) { fread(temp,1, 486, f);} fclose(f); s[0]=*temp; for(i=0;i='a'&&s[i]<='z') num[s[i]-97]++; else if(s[i]>='A'&&s[i]<='Z') num[s[i]-65]++; } printf(" 文档中各个字母出现的频率:\n"); for(i=0;i<26;i++) { p[i]=num[i]/strlen(s); printf("%3c:%f\t",i+65,p[i]); n++; if(n==3) { printf("\n"); n=0; } } p[26]=num[26]/strlen(s); printf(" 空格:%f\t",p[26]);

(完整版)信息论与编码概念总结

第一章 1.通信系统的基本模型: 2.信息论研究内容:信源熵,信道容量,信息率失真函数,信源编码,信道编码,密码体制的安全性测度等等 第二章 1.自信息量:一个随机事件发生某一结果所带的信息量。 2.平均互信息量:两个离散随机事件集合X 和Y ,若其任意两件的互信息量为 I (Xi;Yj ),则其联合概率加权的统计平均值,称为两集合的平均互信息量,用I (X;Y )表示 3.熵功率:与一个连续信源具有相同熵的高斯信源的平均功率定义为熵功率。如果熵功率等于信源平均功率,表示信源没有剩余;熵功率和信源的平均功率相差越大,说明信源的剩余越大。所以信源平均功率和熵功率之差称为连续信源的剩余度。信源熵的相对率(信源效率):实际熵与最大熵的比值 信源冗余度: 0H H ∞=ηη ζ-=1

意义:针对最大熵而言,无用信息在其中所占的比例。 3.极限熵: 平均符号熵的N 取极限值,即原始信源不断发符号,符号间的统计关系延伸到无穷。 4. 5.离散信源和连续信源的最大熵定理。 离散无记忆信源,等概率分布时熵最大。 连续信源,峰值功率受限时,均匀分布的熵最大。 平均功率受限时,高斯分布的熵最大。 均值受限时,指数分布的熵最大 6.限平均功率的连续信源的最大熵功率: 称为平均符号熵。 定义:即无记忆有记忆N X H H X H N X H X NH X H X H X H N N N N N N )() ()()()()()(=≤∴≤≤

若一个连续信源输出信号的平均功率被限定为p ,则其输出信号幅度的概率密度分布是高斯分布时,信源有最大的熵,其值为 1log 22 ep π.对于N 维连续平稳信源来说,若其输出的N 维随机序列的协方差矩阵C 被限定,则N 维随机矢量为正态分布时信源 的熵最大,也就是N 维高斯信源的熵最大,其值为1log ||log 222N C e π+ 7.离散信源的无失真定长编码定理: 离散信源无失真编码的基本原理 原理图 说明: (1) 信源发出的消息:是多符号离散信源消息,长度为L,可以用L 次扩展信 源表示为: X L =(X 1X 2……X L ) 其中,每一位X i 都取自同一个原始信源符号集合(n 种符号): X={x 1,x 2,…x n } 则最多可以对应n L 条消息。 (2)信源编码后,编成的码序列长度为k,可以用k 次扩展信宿符号表示为: Y k =(Y 1Y 2……Y k ) 称为码字/码组 其中,每一位Y i 都取自同一个原始信宿符号集合: Y={y 1,y 2,…y m } 又叫信道基本符号集合(称为码元,且是m 进制的) 则最多可编成m k 个码序列,对应m k 条消息 定长编码:信源消息编成的码字长度k 是固定的。对应的编码定理称为定长信源编码定理。 变长编码:信源消息编成的码字长度k 是可变的。 8.离散信源的最佳变长编码定理 最佳变长编码定理:若信源有n 条消息,第i 条消息出现的概率为p i ,且 p 1>=p 2>=…>=p n ,且第i 条消息对应的码长为k i ,并有k 1<=k 2<=…<=k n

信息论与编码课程大作业信道容量的迭代算法

信息论与编码课程大作业 题目:信道容量的迭代算法 学生姓名: 学号:2010020200 专业班级:10电子信息工程 2013 年5 月18 日

信道容量的迭代算法 1信道容量的迭代算法的步骤 一、用了matlab 实现DMC 容量迭代的算法如下: 第一步:首先要初始化信源分布:.0deta 10,1,0,1 ) (>>=?==,选置,,k r i r P k i 即选取一个精度,本次中我选deta=0.000001。 第二步:}{,) ()()() (k ij i ji k i ji k i k ij t p p p p t 得到反向转移概率矩阵根据式子∑= 。 第三步: ()()()()(){} 111] log exp[] log exp[+++== ∑∑∑k i k i j ij k ji j ij k ji k i p P t p t p p 计算由式。 第四步: () ()() ()()()。 C t p t P I C k r i s j k ij ji k k k 10011log exp log ,+==++????? ???????????==∑∑计算由式 第五步: 若 a C C C k k k det ) 1() ()1(>-++,则执行k=k+1,然后转第二步。直至转移条件不成立,接着 执行下面的程序。 第六步:输出迭代次数k 和()1+k C 和1+k P ,程序终止。 2. Matlab 实现 clear; r=input('输入信源个数:'); s=input('输入信宿个数:'); deta=input('输入信道容量的精度: '); Q=rand(r,s); %形成r 行s 列随机矩阵Q

《信息论与编码》习题解答-第三章

第三章 信道容量-习题答案 3.1 设二元对称信道的传递矩阵为? ? ? ???3/23/13/13/2 (1) 若P(0) = 3/4, P(1) = 1/4,求H(X), H(X/Y), H(Y/X)和I(X;Y); (2) 求该信道的信道容量及其达到信道容量时的输入概率分布; 解: 1) symbol bit Y X H X H Y X I symbol bit X Y H Y H X H Y X H X Y H Y H Y X H X H Y X I symbol bit y p Y H x y p x p x y p x p y x p y x p y p x y p x p x y p x p y x p y x p y p symbol bit x y p x y p x p X Y H symbol bit x p X H j j i j i j i j i i i / 062.0749.0811.0)/()();(/ 749.0918.0980.0811.0)/()()()/() /()()/()();(/ 980.0)4167.0log 4167.05833.0log 5833.0()()(4167 .03 2 413143)/()()/()()()()(5833.031 413243)/()()/()()()()(/ 918.0 10 log )3 2 lg 324131lg 314131lg 314332lg 3243( ) /(log )/()()/(/ 811.0)41 log 4143log 43()()(222221212221221211112111222=-==-==+-=+-=-=-==?+?-=-==?+?=+=+==?+?= +=+==??+?+?+?-=-==?+?-=-=∑∑∑∑ 2) 2 1 )(/ 082.010log )3 2 lg 3231lg 31(2log log );(max 222= =?++=-==i mi x p symbol bit H m Y X I C 3.2 解: (1)αα-==1)(,)(21x p x p ??????=4/14/12/102/12/1P ,?? ? ???---=4/)1(4/)1(2/)1(02/12/1)(αααααj i y x P 4/)1()(,4/14/)(,2/1)(321αα-=+==y p y p y p 接收端的不确定度: ))1(41 log()1(41)4141log()4141()2log(21)(αααα---++-=Y H )1log(41)1log(4123αααα---++-= (2)

信息论与编码第五章答案

设信源1 234567()0.20.190.180.170.150.10.01X a a a a a a a p X ????=???? ???? (1) 求信源熵H(X); (2) 编二进制香农码; (3) 计算平均码长和编码效率. 解: (1) 7 21222222()()log () 0.2log 0.20.19log 0.19 0.18log 0.180.17log 0.170.15log 0.150.1log 0.10.01log 0.012.609/i i i H X p a p a bit symbol ==-=-?-?-?-?-?-?-?=∑ (2) (3) 7 1 ()0.230.1930.1830.1730.153 0.140.0173.141 ()()/ 2.609 3.14183.1% i i i K k p x H X H X K R η===?+?+?+?+?+?+?====÷=∑ 对习题的信源编二进制费诺码,计算编码效率. 解:

a i p(a i )编码码字k i a1 0002 a2 1 00103 a310113 a4 1 0102 a5 1 01103 a6 1 011104 a7111114 对信源编二进制和三进制哈夫 曼码,计算各自的平均码长和编码效率. 解: 二进制哈夫曼码: x i p(x i)编码码字k i s61 s50 s41 s30 s21 x10102 x21112 x300003

x410013 x500103 s11 x6001104 x7101114 三进制哈夫曼码: x i p(x i)编码码字k i s31 s20 s11 x1221 x20002 x31012 x42022 x50102 x61112 x72122

信息论与编码第一章答案

第一章信息论与基础 1.1信息与消息的概念有何区别? 信息存在于任何事物之中,有物质的地方就有信息,信息本身是看不见、摸不着的,它必须依附于一定的物质形式。一切物质都有可能成为信息的载体,信息充满着整个物质世界。信息是物质和能量在空间和时间中分布的不均匀程度。信息是表征事物的状态和运动形式。 在通信系统中其传输的形式是消息。但消息传递过程的一个最基本、最普遍却又十分引人注意的特点是:收信者在收到消息以前是不知道具体内容的;在收到消息之前,收信者无法判断发送者将发来描述何种事物运动状态的具体消息;再者,即使收到消息,由于信道干扰的存在,也不能断定得到的消息是否正确和可靠。 在通信系统中形式上传输的是消息,但实质上传输的是信息。消息只是表达信息的工具,载荷信息的载体。显然在通信中被利用的(亦即携带信息的)实际客体是不重要的,而重要的是信息。 信息载荷在消息之中,同一信息可以由不同形式的消息来载荷;同一个消息可能包含非常丰富的信息,也可能只包含很少的信息。可见,信息与消息既有区别又有联系的。 1.2 简述信息传输系统五个组成部分的作用。 信源:产生消息和消息序列的源。消息是随机发生的,也就是说在未收到这些消息之前不可能确切地知道它们的内容。信源研究主要内容是消息的统计特性和信源产生信息的速率。 信宿:信息传送过程中的接受者,亦即接受消息的人和物。 编码器:将信源发出的消息变换成适于信道传送的信号的设备。它包含下述三个部分:(1)信源编码器:在一定的准则下,信源编码器对信源输出的消息进行适当的变换和处理,其目的在于提高信息传输的效率。(2)纠错编码器:纠错编码器是对信源编码器的输出进行变换,用以提高对于信道干扰的抗击能力,也就是说提高信息传输的可靠性。(3)调制器:调制器是将纠错编码器的输出变换适合于信道传输要求的信号形式。纠错编码器和调制器的组合又称为信道编码器。 信道:把载荷消息的信号从发射端传到接受端的媒质或通道,包括收发设备在内的物理设施。信道除了传送信号外,还存储信号的作用。 译码器:编码的逆变换。它要从受干扰的信号中最大限度地提取出有关信源输出消息的信息,并尽可能地复现信源的输出。 1.3 同时掷一对骰子,要得知面朝上点数之和,描述这一信源的数学 模型。 解:设该信源符号集合为X

信息论与编码实验报告

实验一 绘制二进熵函数曲线(2个学时) 一、实验目的: 1. 掌握Excel 的数据填充、公式运算和图表制作 2. 掌握Matlab 绘图函数 3. 掌握、理解熵函数表达式及其性质 二、实验要求: 1. 提前预习实验,认真阅读实验原理以及相应的参考书。 2. 在实验报告中给出二进制熵函数曲线图 三、实验原理: 1. Excel 的图表功能 2. 信源熵的概念及性质 ()()[] ()[]())(1)(1 .log )( .) ( 1log 1log ) (log )()(10 , 110)(21Q H P H Q P H b n X H a p H p p p p x p x p X H p p p x x X P X i i i λλλλ-+≥-+≤=--+-=-=≤≤? ?????-===??????∑ 单位为 比特/符号 或 比特/符号序列。 当某一符号xi 的概率p(xi)为零时,p(xi)log p(xi) 在熵公式中无意义,为此规定这时的 p(xi)log p(xi) 也为零。当信源X 中只含有一个符号x 时,必有p(x)=1,此时信源熵H (X )为零。 四、实验内容: 用Excel 和Matlab 软件制作二进熵函数曲线。根据曲线说明信源熵的物理意义。 (一) Excel 具体步骤如下: 1、启动Excel 应用程序。 2、准备一组数据p 。在Excel 的一个工作表的A 列(或其它列)输入一组p ,取步长为0.01,从0至100产生101个p (利用Excel 填充功能)。

3、取定对数底c,在B列计算H(x) ,注意对p=0与p=1两处,在B列对应位置直接输入0。Excel中提供了三种对数函数LN(x),LOG10(x)和LOG(x,c),其中LN(x)是求自然对数,LOG10(x)是求以10为底的对数,LOG(x,c)表示求对数。选用c=2,则应用函数LOG(x,2)。 在单元格B2中输入公式:=-A2*LOG(A2,2)-(1-A2)*LOG(1-A2,2) 双击B2的填充柄,即可完成H(p)的计算。 4、使用Excel的图表向导,图表类型选“XY散点图”,子图表类型选“无数据点平滑散点图”,数据区域用计算出的H(p)数据所在列范围,即$B$1:$B$101。在“系列”中输入X值(即p值)范围,即$A$1:$A$101。在X轴输入标题概率,在Y轴输入标题信源熵。 (二)用matlab软件绘制二源信源熵函数曲线 p = 0.0001:0.0001:0.9999; h = -p.*log2(p)-(1-p).*log2(1-p); plot(p,h) 五、实验结果

信息论与编码(曹雪虹_张宗橙)第二、三章答案

2-1.解:该一阶马尔可夫信源,由转移概率构成的转移矩阵为: 对应的状态图如右图所示。设各符号稳定概率为:1p ,2p ,3p 则可得方程组: 1p = 211p +312p +313p 2p =211p +323p 3p =3 22p 1p +2p +3p =1 解得各符号稳态概率为: 1p = 2510,2p =259,3p =25 6 2-2.解:该马尔可夫信源的符号条件概率矩阵为: 状态转移概率矩阵为: 对应的状态图如右图所示。

设各状态的稳态分布概率为1W ,2W ,3W ,4W ,则可得方程组为: 1W =0.81W +0.53W 2W =0.21W +0.53W 3W =0.52W +0.24W 4W =0.52W +0.84W 1W +2W +3W +4W =1 解得稳定分布的概率为: 1W = 145,2W =142,3W =142,4W =14 5 2-3.解:(1)“3和5同时出现”事件的概率为: p(3,5)= 18 1 故其自信息量为: I(3,5)=-㏒2 18 1 =4.17bit (2)“两个1同时出现”事件的概率为: p(1,1)= 36 1 故其自信息量为: I(1,1)=- ㏒2 36 1 =5.17bit (3)两个点数的各种组合构成的信源,其概率空间为: 则该信源熵为: H(x 1)=6× 36 1 lb36+15×181lb18=4.337bit/事件 (4)两个点数之和构成的信源,其概率空间为:

则该信源的熵为: H(x 2)=2× 361 lb36+2×181lb18+2×121lb12+2×91lb9+2×365lb 536+6 1lb6 =3.274bit/事件 (5)两个点数中至少有一个是1的概率为: p(1)= 36 11 故其自信息量为: I(1)= -㏒2 36 11 =1.7105bit 2-7.解:(1)离散无记忆信源的每个符号的自信息量为 I(x 1)= -㏒2 83 =1.415bit I(x 2)= -㏒241 =2bit I(x 3)= -㏒241 =2bit I(x 4)= -㏒28 1 =3bit (2)由于信源发出消息符号序列有12个2,14个0,13个1,6个3,故该消息符 号序列的自信息量为: I(x)= -㏒2( 8 3)14 (41)25 (81)6 =87.81bit 平均每个符号携带的信息量为: L H (x)= 45 ) (x I =1.95bit/符号 2-10 解:用1x 表示第一次摸出的球为黑色,用2x 表示第一次摸出的球为白色,用1y 表示第二次摸出的球为黑色,用2y 表示第二次摸出的球为白色,则 (1)一次实验包含的不确定度为: H(X)=-p(1x )lbp(1x )-p(2x )lbp(2x )=- 13lb 13-23lb 2 3 =0.92 bit (2)第一次实验X 摸出的球是黑色,第二次实验Y 给出的不确定度: H(Y|1x )=-p(1y |1x )lb p(1y |1x )-p(2y |1x )lb p(2y |1x ) = - 27lb 27-57lb 57 = 0.86 bit (3)第一次实验X 摸出的球是白色,第二次实验Y 给出的不确定度:

香农编码--信息论大作业

信息论与编码课程大作业 题目:香农编码 学生姓名: ****** 学号: &********** 专业班级: ******************* 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>"); scanf("%f",&sym_arry[i]); sum=sum+sym_arry[i]; }

信息论与编码第三章曹雪虹习题答案

没文化,真可怕!!! 第三章 3.1 设二元对称信道的传递矩阵为? ?????????32313132 (1) 若P(0) = 3/4, P(1) = 1/4,求H(X), H(X/Y), H(Y/X)和I(X;Y); (2) 求该信道的信道容量及其达到信道容量时的输入概率分布; 解: 1) symbol bit Y X H X H Y X I symbol bit X Y H Y H X H Y X H X Y H Y H Y X H X H Y X I symbol bit y p Y H x y p x p x y p x p y x p y x p y p x y p x p x y p x p y x p y x p y p symbol bit x y p x y p x p X Y H symbol bit x p X H j j i j i j i j i i i / 062.0749.0811.0)/()();(/ 749.0918.0980.0811.0)/()()()/() /()()/()();(/ 980.0)4167.0log 4167.05833.0log 5833.0()()(4167 .03 2 413143)/()()/()()()()(5833.031 413243)/()()/()()()()(/ 918.0 10 log )3 2 lg 324131lg 314131lg 314332lg 3243( ) /(log )/()()/(/ 811.0)41 log 4143log 43()()(222221212221221211112111222=-==-==+-=+-=-=-==?+?-=-==?+?=+=+==?+?= +=+==??+?+?+?-=-==?+?-=-=∑∑∑∑ 2) 2221122 max (;)log log 2(lg lg )log 100.082 /3333 mi C I X Y m H bit symbol ==-=++?=其最佳输入分布为1 ()2 i p x = 3-2某信源发送端有2个符号,i x ,i =1,2;()i p x a =,每秒发出一个符号。接受端有3 种符号i y ,j =1,2,3,转移概率矩阵为1/21/201/21/41/4P ?? =???? 。 (1) 计算接受端的平均不确定度;

信息论与编码习题参考答案(全)

信息论与编码习题参考答案 第一章 单符号离散信源 同时掷一对均匀的子,试求: (1)“2和6同时出现”这一事件的自信息量; (2)“两个5同时出现”这一事件的自信息量; (3)两个点数的各种组合的熵; (4)两个点数之和的熵; (5)“两个点数中至少有一个是1”的自信息量。 解: bit P a I N n P bit P a I N n P c c N 17.536log log )(361 )2(17.418log log )(362)1(36 662221111 616==-=∴====-=∴== =?==样本空间: (3)信源空间:

bit x H 32.436log 36 16236log 36215)(=??+?? =∴ (4)信源空间: bit x H 71.3636 log 366536log 3610 436log 368336log 366236log 36436log 362)(=??+?+?+??= ∴++ (5) bit P a I N n P 17.111 36 log log )(3611333==-=∴== 如有6行、8列的棋型方格,若有两个质点A 和B ,分别以等概落入任一方格内,且它们的坐标分别为(Xa ,Ya ), (Xb ,Yb ),但A ,B 不能同时落入同一方格内。 (1) 若仅有质点A ,求A 落入任一方格的平均信息量; (2) 若已知A 已落入,求B 落入的平均信息量; (3) 若A ,B 是可辨认的,求A ,B 落入的平均信息量。 解: bit a P a P a a P a I a P A i 58.548log )(log )()(H 48log )(log )(481 )(:)1(48 1 i i i i i ==-=∴=-=∴= ∑=落入任一格的概率Θ bit b P b P b b P b I b P A i 55.547log )(log )()(H 47 log )(log )(47 1 )(:B ,)2(48 1i i i i i ==-=∴=-=∴=∑=落入任一格的概率是落入任一格的情况下在已知Θ

相关文档
最新文档