西工大研究生 信息论与编码部分答案

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1. 简述Shannon 的信源编码定理及信道编码定理。[10分] 答:熵:H ,信道容量:C ,传信率:R 。

信源编码:当R>H 时,一定存在某种信源编码方式使信息能够完全传送;否则,当R<=H 时,是不可能的。

信道编码:当R=C 时,是不可能的。

2. 简述差错控制编码的基本原理。为何软判决译码比硬判决译码可以得到较高的编码增益?[10分]

差错控制编码的定理是发送方对准备传输的数据进行抗干扰编码,即按某种算法附加上一定的冗余位,构成一个码字后再发送。接收方收到数据后进行校验,即检查信息为和附加冗余位之间的关系,以检查传输过程中是否有差错发生。

硬判决译码,即在译码前对接收量进行二电平量化后再进行判决译码。种种量化方式比较粗糙,将丢失较多有用信息。而软判决译码的量化电平数Q>2,(常取Q>8),量化越精细,损失也就越小,故将获得较硬判决译码更大的编码增益。

3. 一个数据传输信道,带宽为1MHz,信噪比为50dB,计算在这个信道上能实现的最大信息传输率。为什么信息传输率是受限的?

[10分] 16.7Mbps

信息传输率受限是因为信道带宽限制,以及信道中的噪声干扰。

4. 设一个[7,4]码的生成阵为

试求该码的全部码字、一致校验矩阵以及最小汉明距离。[20分]

信息位有四位,应有16种组合——信息组

0000 0001 0010 0011

0100 0101 0110 0111

1000 1001 1010 1011

1100 1101 1110 1111

C={C| c=mG}

⎥⎥⎥⎥⎦

⎤⎢⎢⎢⎢⎣⎡=0001110001001101001011000111G

全部码字:

0000000 0001110 0010011 0011101

0100101 0101011 0110110 0111000

1000111 1001001 1010100 1011010

1100010 1101100 1110001 11111111

一致校验矩阵

G=[I A]

H=[AT I]

最小汉明距离:

第4,5,6列的和为0,所以最小汉明距离为:3

5.循环冗余校验(CRC)的生成多项式为CRC-16: x16+x15+x2+1,试画出其编译码电路。若用MATLAB软件实现,信息序列为500bit的随机序列,给出其主要软件和编码结果。(译码时仅考虑检错)[20分] dec2bin(2009201211)

1110111110000011111101000111011

编码电路:

移位脉冲cp在前1-k个节拍内,k1,k2打向“1”,各信息元直接经k1输出,成为前k个码元;在k+1~n个节拍内,k1,k2打向“2”,使移位寄存器中各校验元依次输出,形成一个长为n的码字。

译码电路:

当寄存器为全零时,表示无错,输出c的前k个码字,即为正确的信息吗。

%发送端对信息进行编码

Ip=[1 1 1 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0 1 0 0 0 1 1 1 0 1 1]

msg=[ip,randint(1,469)]

generator=[1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1];

c=[1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0];

multip=conv(c,msg);

[divid,remainder]=deconv(multip,generator);

remainder=mod(remainder(end-15:end),2);

code=[msg,remainder];

%接收端对信息进行校验

[divid,remainder]=deconv(code,generator);

remainder=mod(remainder(end-15:end),2);

if isequal(remainder,[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]);

msgbox(['crc[',num2str(code(end-16:end)),'] 校验正确!']);

else

msgbox(['crc[',num2str(remainder),'] 校验错误!']);

end

clc

clear

id=[1 1 1 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0 1 0 0 0 1 1 1 1 0 0]

msg=[id,randint(1,469)]

poly=[1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1];

[M N]=size(poly)

mseg=[msg zeros(1,N-1)]

[q r]=deconv(mseg,poly)

r=abs(r)

for i=1:length(r)

a=r(i);

if ( mod(a,2)== 0 )

r(i)=0;

else

r(i)=1;

end

end

crc=r(length(msg)+1:end)

frame = bitor(mseg,r)

[divid,remainder]=deconv(frame,poly);

remainder=mod(remainder(end-15:end),2);

if isequal(remainder,[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]);

msgbox(['crc[',num2str(frame(end-16:end)),'] 校验正确!' ] );

else

msgbox(['crc[',num2str(remainder),'] 校验错误!']);

end

6.卷积码的码率为R=1/2,约束度为k=7,生成多项式为G1=133,G0=171,请画出该卷积码的编码器和部分格网图。采用Viterbi软判决译码时要考虑哪些关键步骤,用软件(C或MATLAB 实现其主要部分。[20分]

(2,1,7)有六个寄存器。由网格图的输入支路特点分析可知,产生任意一个状态节点Si的输入条件mi是确定的,即mi=‘1’,i为偶数;mi=‘0’,i为奇数。输入条件mi表示译码器最终需要输出的比特信息。此外,译码器所要找的留选路径是不同状态的组合。对于(2,1,6)卷积码而言,具有2m=26=64(m为编码存储)个不同状态,可以用6位比特向量来表示所有的状态。将mi作为最高位加在状态向量上,用7位比特向量同时表示每一状态和对应的输入支路的译码信息,这样在译码器回溯时就可以直接输出存储向量的高位作为译码器的输出。采用这种方法大大降低了回溯路径和译码器判决的难度,由此降低了译码器结构的复杂性。

相关文档
最新文档