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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

实验6 循环码的软件编译码实验.docx

1、实验6 循环码的软件编译码实验实验六 循环码的软件编、译码实验一、实验目的(1)通过实验了解循环码的工作原理。(2)了解生成多项式g(x)与编码、译码的关系。(3)了解码距d与纠、检错能力之间的关系。(4)分析(7.3)循环码的纠错能力。二、实验要求用你熟悉的某种计算机高级语言或单片机汇编语言,编制一(7,3)循环码的编、译码程序,并改变接受序列R(x)和错误图样E(x),考查纠错能力情况。设(7,3)循环码的生成多项式为:g(x)=x4+x3+x2+1 对应 (11101)(1)按编、译码计算程序框图编写编、译码程序(2)计算出所有的码字集合,可纠的错误图样E(x)表和对应的错误伴随式表。(

2、3)考查和分析该码检、纠一、二位错误的能力情况。(4)整理好所有的程序清单,变量名尽量用程序框图所给名称,并作注释。 (5) 出示软件报告.三、实验设计原理循环码是一类很重要的线性分组码纠错码类,循环码的主要优点是编、译码器较简单,编码和译码能用同样的反馈移存器重构,在多余度相同的条件下检测能力较强,不检测的错误概率随多余度增加按指数下降。另外由于循环码具有特殊的代数结构,使得循环码的编、译码电路易于在微机上通过算法软件实现。 1、循环码编码原理设有一(,)循环码,码字Cn-1CrCr-1C0,其中r=n-k。码字多项式为: C (x ) = Cn-1xn-1+ Cn-2xn-2+ +C1x+

3、C0。 码字的生成多项式为: g(x)= gr-1xr-1+gr-2xr-2+g1x+g0 待编码的信息多项式为: m(x)=mK-1xK-1+m0 xn-k.m(x)=Cn-1xn-1+Cn-Kxn-K 对于系统码有: Cn-1=mK-1,Cn-2=mK-2,Cn-K=Cr=m0 设监督多项式为: r(x)=Cr-1Xr-1+C1x+C0 根据循环码的定义,则有C(x)=xn-Km(x)+r(x)=q(x).g(x) Xn-Km(x)=q(x).g(x)+r(x) r(x)=Rg(x)xn-Km(x)即监督多项式是将多项式xn-Km(x)除以g(x)所得的余式。编码过程就是如何根据生成多项式

4、完成除法运算求取监督多项式的过程。 设循环码(7.3)码的字多项式为: C(x)=C6x6+C5x5+C4x4+C3x3+C2x2+C1x+C0 (n=7) 生成多项式为: g(x)=x4+x2+x+1信息多项式为: m(x)=m2x2+m1x+m0 (k=3), 设: m(x)=x2+x 监督多项式为: r(x)= Cr-1Xr-1+C1x+C0根据循环码的定义:生成多项式的倍式均是码字,编码实际上是做xn-Km(x)除以g(x)所得的余式运算求得r(x)。编码程序框图见图1,二进制多项式除法示意图见图2 图1 编码计算程序框图 111 .商数 g(x): 10111 | 1100000 .

5、xrm(x) + 10111 .第一步 11110 + 10111 .第二步 10010 + 10111 .第三步 101 .余式:x2+1图2 二进制多项式除法示意图 编码步骤: ()n-k=r=7-3=4,用x4乘m(x)的运算实际上相当于在信息码110后附上4个0,变为1100000 () 用xrm(x)=x4(x2+x)=x6+x5除以g(x),如图1所示,得到监督余式r(x)=x2+1。 ()编出相应的发送码字为: C(x)=xrm(x)+r(x)C=1100000+101=1100101(4) 按上述步骤,将得到下述码表:信息位监督位100000002101011130101110

6、4011100151001011610111007110010181110010 、译码原理设R(x)为接收码字多项式,E(x)为错误图样多项式,S(x)为伴随式,则根据循环码的性质有: S(x)=g(x)R(x)=g(x)E(x) 当R(x)=C(x)时,有E(x)=0,S(x)=0 当R(x)不等于C(x)时,有E(x)为非0,S(x)为非0译码过程如下:计算每一种可能被纠的错误图样E(x)的伴随式, Si(x)=g(x)E(x) 将其作作为本地数据表存储好。根据已接收码字多项式R(x),计算相应的伴随式: S(x)=g(x)R(x)将实际接收码字求出的S(x)与本地存储的各Si(x)相比

7、较,查出两者相等的那个唯一匹配的Si(x),找出并得到相应的错误图样E(x)。 纠错: C(x)=R(x)+E(x)否则由S(x)找不出唯一匹配的Si(x),则报出错信息,表示出现不可纠错的错误图样,即码元出错的个数超出该循环码的纠错能力。 译码流程图3所示:四、实验代码/*循环码编译码的实现(7,3) */#include#include#include#define n 7#define k 3#define g 23 /10111 using namespace std; int m,d,G,c,B,r; int E20,S20; int code() /编码 int i,len,re;

8、 char str32; printf(请输入待编码的三位码字:(以二进制的形式,中间无空格!)n); scanf(%s,str); len=strlen(str); m=0; for(i=0;ilen;i+) m+=(stri-0)*(1(len-1-i); c=(m(n-k); d=c; G=(g=(n-k) if(c&(1B)=(11); B-; d=dc; printf(编码后的输出码字为:n); for(i=6;i=0;i-) if(d&(1i)=(1i) printf(1); else printf(0); printf(n); return d; void decode( ) /

9、译码 int i,j,flag; int len; char str32; /*打错误图样和其伴随式的对照表*/ for(i=0;in;i+) Ei=(1i); /printf(Ei=%dn,Ei); G=(g=(n-k) if(c&(1B)=(11); B-; Si=c; /*输出这个表*/ printf(nn打出的对照表如下:nn); printf(错误图样E(x)t伴随式Sxn); for(i=0;i=0;j-) if(Ei&(1j)=(1=0;j-) if(Si&(1j)=(1j) printf(1); else printf(0); printf(n); /*下面正式译码*/ pri

10、ntf(n请输入待译码的七位码字:(以二进制的形式,中间无空格!)n); scanf(%s,str); len=strlen(str); m=0; for(i=0;ilen;i+) m+=(stri-0)*(1(len-1-i); G=(g=(n-k) if(c&(1B)=(11); B-; flag=0; if(c=0) flag=1; else for(i=0;i=4;j-) if(m&(1j)=(1j) printf(1); else printf(0); printf(n); int main() r=n-k; code(); decode( ); system(pause); return 0; 五、实验结果

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

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