ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:62.77KB ,
资源ID:21242870      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/21242870.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(213卷积码编码和译码Word格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

213卷积码编码和译码Word格式.docx

1、惹和码输岀包htl10eerpocess j*ecitpned Q C0x0 execut ion time : 7.197rress any ky to continue.b更长的序列测试C :U se r 2吕静g 5 ktop213巻积碍中 niDe b u g21 巻职码亡灼PyQcess petupned Q execution tine : 22.027PTess an y eeatiitn time : 22.042 si*etai*ned. 0 (0x0Press any he y to con t xnue .c译码与编码的区别在于容错性,如果在传输过程中有出错的比特,也应该

2、用 Viterbidecoder在一定的范围内自动纠错,得到正确的发端的编码,并翻译出发端的原码。本 报告中对于比较长的序列(2)进行纠错。以课件中的例子进行仿真R=10 10 00 01 11 0|lc=ii40h00,0140/01R是收到的码字,C是发送方发出的正确的码字, R有2 bit信息出现错误。运行程序 的到结果。当用译码器接收正确的序列 C时 显示以下结果:iimi祐字; 阴13共有0位错误,译码如下i101110BxecutIon tine : 19-700 sProcess pcttirned 0 0x0)Press an kej/ to cont inite .当接收到的

3、序列错误时R=10 10 00 01 11 01译码结果如下:eTsa 嵯码冷 bi riD e 袒嬌誓碍启鴉la|0iai共有2位皓误.译码如下;JppocesE returned 8 execution tine : 26.488 epess Any key to continue-如此时把译码结果输入上文中的编码器程序,即可得到发送方发出的正确的码字:c=ii,io,oo,oi40,oi综上,译码程序能对于正确的较短( 2)可以纠错,纠正后,得到正确的卷积码,然后译码得到 原码。程序仿真完全正确。d.模拟一个元整的传输过程:发送方输入序列11001010输入到编码器程序中:K CAUse

4、fiVS静20口6帕051022書号0阳6102班 Nol5 213巻积码PpnreKSPreaa fliny keyi*t itpnf!d n Kxertit inn tin# J 13.1 FiO s得到卷积码输出: 若传送到接收端,to continue”11 01 01 11 11 10 00 10由于信道的各种干扰,接收码字发生了变化,得到的接收码字:11 11 01 11 01 10 11 10共有2 bit出现错误,输入到解码器中,纠错解码后得到:iSSAfi组接”如的数字:911690LS共有2位错误,译码如下:11091910Process ret urned 9 execi

5、it io n tine : 22.791 sPress any key ta continue _有效地纠错,解码,还原了发送方的信息。e.进一步大量仿真得到结果:当错误量比较多,或者比较集中时,有些时候不能有效 地纠错,得到的译码结果可能也有 1bit是错误的。具体截图略。五、编码C源程序清单#include stdlib.h/* 3short add3(short a,short b, short c) 位模二加法器 */short sum; sum = a+b+c; sum = sum%2; return sum;short add2(short a,short b)/* 2 位模二加

6、法器 */sum = a+b;sum = sum%2;int main()short a=0, b=0, c=0;/* 三个移位寄存器初始状态为 0*/ int length=0;/* 输入长度 */short x,y;/* 两个输出寄存器 */short input30;/* 存储输入数据的数组 */int i;printf( 需要输入几位数据? ); scanf(%d,&length); 请输入 %d 位数字: n,length); for (i=0;ilength;i+)scanf(%1hdinputi); 卷积码输出:for (i=0;c=b;b=a;a=inputi;/* 移位运算

7、*/ x=add3(a,b,c); y=add2(a,c); printf(%d%dn,x,y); return 0;六、译码程序清单int de(codenow)/* 短序列不纠错解码器 */ int decode,now,code; now=codenow%100;code =(codenow-now)/100;/* 分离状态和接收到的码字 */ switch (now)case 10:if (code=10)now=01; decode=0; elsenow=11;decode=1; break;case 11:if (code=01) now = 01;case 01:if (code

8、=11) now = 00;now=10; break;case 00:if (code=00) decode=1;default:error! codenow=decode*100+now; return codenow;int hanming(int x, int y)/* 计算 xy 两个 2bit 数的汉明距离 */ int x1,x2,y1,y2,sum=0;/* 分解数位 */x2=x%2;x1=(x-x2)/10; y2=y%2;y1=(y-y2)/10; if (x1 != y1) sum+;if (x2 != y2) sum+;return sum; void correct

9、(int code,int length)/* 长序列纠错解码器 */int i,j,m,error=0;int *p;int d00=0, d10=0, d01=0, d11=0;int dz00=0, dz10=0, dz01=0, dz11=0;/* 时刻 1 结束时 */int lu0010=0,0;int lu1010=0,1;int lu0110=1,0;int lu1110=1,1;int lz0010=0,lz1010=0;int lz0110=0,lz1110=0;d00=hanming(code0,0)+hanming(code1,0);d10=hanming(code0,

10、0)+hanming(code1,11);d01=hanming(code0,11)+hanming(code1,10);d11=hanming(code0,11)+hanming(code1,01);for (i=2;/*00 状态路径 */if (d00+hanming(0,codei)(d01+hanming(11,codei) for (j=0;ji;j+)lz00j=lu00j;lz00i=0;dz00=d00+hanming(0,codei);lz00j=lu01j;dz00=d01+hanming(11,codei); /*10 状态路径 */if (d00+hanming(11

11、,codei)(d01+hanming(00,codei) lz10j=lu00j; lz10i=1; dz10=(d00+hanming(11,codei);lz10j=lu01j;lz10i=1;状态路径 */dz10=d01+hanming(00,codei);/*01if (d10+hanming(10,codei)(d11+hanming(01,codei) lz01j=lu10j; lz01i=0;dz01=d10+hanming(10,codei);lz01j=lu11j;lz01i=0;dz01=d11+hanming(01,codei); /*11 状态路径 */if (d1

12、0+hanming(01,codei)(d11+hanming(10,codei) lz11j=lu10j; lz11i=1;dz11=d10+hanming(01,codei);lz11j=lu11j; dz11=d11+hanming(10,codei);/* 更新 */d00=dz00;d10=dz10;d01=dz01;d11=dz11;for (m=0;mm+)lu00m=lz00m;lu10m=lz10m;lu01m=lz01m;lu11m=lz11m;*/* 最后一步,在四条路径中选择汉明距离最小的一条 error=d00;p=lu00;if (d01error) error=d01; p=lu01;if (d10 error=d10; p=lu10;if (d112)correct(code,length);/* 长度小于 3 的直接译码 */elsen 卷积码解码结果:/* 解码过程如下 */codenow =codei*100+now; codenow=de(codenow);decode = (codenow-now)/100;,decode);return 0;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1