根据MATLAB的循环码实验报告_第1页
根据MATLAB的循环码实验报告_第2页
根据MATLAB的循环码实验报告_第3页
根据MATLAB的循环码实验报告_第4页
根据MATLAB的循环码实验报告_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程名称:信息论与编码课程设计题目:循环码的编码和译码程序设计指导教师:系别:专业:学号:姓名:合作者 完成时间:一、实验目的:1、通过实验了解循环码的工作原理。2、深刻理解RS码构造、RS编译码等相关概念和算法。二、实验原理1、RS循环码编译码原理与特点设C使某错误!未找到引用源。线性分组码的码字集合,如果对任C二(c,c,…,c)GC,它的循环移位C⑴二(c,c,…c,c)也属于C,则称该错误!n-1n—2 0 n-2n一3 0n-1未找到引用源。码为循环码。该码在结构上有另外的限制,即一个码字任意循环移位的结果仍是一个有效码字。其特点是:(1)可以用反馈移位寄存器很容易实现编码和伴随式的计算;(2)由于循环码有很多固有的代数结构,从而可以找到各种简单使用的译码办法。如果一个错误!未找到引用源。线性码具有以下的属性,则称为循环码:如果n元组c二{c,c,…,c}是子空间S的一个码字,则经过循环移位得到的c⑴二{c,c,…,c}01 n-1 n-10 n-2也同样是S中的一个码字;或者,一般来说,经过j次循环移位后得到的c(j)={c,c,…,c,c,c,…,c }也是S中的一个码字。n-jn-j+1 n-101 n-j-1

RS码的编码系统是建立在比特组基础上的,即字节,而不是单个的0和1,因此它是非二进制BCH码,这使得它处理突发错误的能力特别强。码长:n=2m码长:n=2m-1「]

信息段:k=G三20k三1,n三k三1…bk三1,1…bk三2,1bk三1,0bk三x,0bb0,10,0监督段:2t=n三k0 0 0 0bbb0,10,01- 0,n-k-1最小码段:d二2t+1最小距离为d的本原RS码的生成多项式为:g(x)=(x-a)(x-a2)(x-a3)...(x-ad-2)信息元多项式为::m(x)二m0+m1x+m2x2+...+mk-1xk-1循环码特点有:循环码是线性分组码的一种,所以它具有线性分组的码的一般特性,且具有循环性,纠错能力强循环码是一种无权码,循环码编排的特点为相邻的两个数码之间符合卡诺中的邻接条件,即相邻数码间只有一位码元不同,因此它具有一个很好的优点是它满足邻接条件,没有瞬时错误(在数码变换过程中,在速度上会有快有慢,中间经过其他一些数码形式,即为瞬时错误)。码字的循环特性,循环码中任一许用码经过牡环移位后,所得到的码组仍然是许用码组。对所有的i=0,1,2,......k-1,用生成多项式g(x)除x“+1,有:Xn-k+i=a(x)g(x)+b(x) (2—7)ii式中b(x)是余式,表示为:ib(x)二b xn三k-1+…bx+b (2—8)i i,n一k-1 i,1 i,0因此,xn-k+i+b(x)是g(x)的倍式,即xn-k+1+b(x)是码多项式,由此得到系统形式的i生成矩阵为:(2—9)

它是一个kxn阶的矩阵。同样,由Gxht=0可以得到系统形式的一致校验矩阵为:7k-1,n-k-1bk-2,n-k-1…b0,n-k-11…00「H=:••::•::(2—10)bb…b0…10k-1,1k-2,10,1bb…b0…01k-1,0k-2,00,0-已知(7,4)循环码的生成多项式和校验多项式分别为:g(x)二x3+x+1,h(x)二x4+x2+x+1。写得其生成矩阵和校验矩阵分别为:10G10G=00~1H=000111010100011101110110001001100111000101012、编码原理:有信息码构成信息多项式m(x)=mk_1xkT+…+m0,其中最高幕次为k-1;用xn-k乘以信息多项式m(x),得到的xn-km(x),最高幕次为n-1,该过程相当于把信息码(-1,mk-2 m],mo)移位到了码字德前k个信息位,其后是r个全为零的监督位;用g(x)除xn-km(x)得到余式r(x),其次数必小于g(x)的次数,即小于(n-k),将此r(x)加于信息位后做监督位,即将r(x)于xn-km(x)相加,得到的多项式必为一码多项式。。兆理mKn、ffiHI®妣旨、(X)。Hsstw、(x)<¥(x)*(x)<0m44(mHi(CN。ss薔辽业(XMSiffi皿(<—I(Hi!十芝益rE丄xu(乂顿『士京<x==ll*w仝X)」料命丽艮X)E呼ux爸(x)6旺(m0^1、叩U只wtt啊®s、SE旺(CN。叩>1只wtt啊fl-M0E……+殳XI’EAXM闇盘e畳蛊-Ilin阪(<—I由于g(x)的次数为n-k次,g(x)除E(x)后得余式(即伴随式)的最高次数为n-k-1次,故S(x)共有2n-k个可能的表达式,每一个表达式对应一个错误格式。可以知道7,4)循环码的S(x)共有2(7-4)=8个可能的表达式,可根据错误图样表来纠正(7,4)循环码中的一位错误。BC111)循坏码错误图样表:铅课图样铅课图样错误图样码字E6(.k)=x61000000E5(x)一咒5OIQOOOO}>1(x)k40010000E3(x)ODO1000E2(x)=x20000100El(x)=xl0000010EO(x)=kO0000001E(x)=00000000伴随式sh)伴随式x2100x2i-xHOi2+x+1HIx-L011x2+lLOLX01010010m解码过程流程图:4、纠错能力:由于循环码是一种线性分组码,所以其纠检错能力与线性分组码相当。而线性分组码的最小距离可用来衡量码的抗干扰能力,那么一个码的最小距离就与它的纠检错能力有关。定理:对于任一个(仏k)线性分组码,若要在码字内检测错误!未找到引用源。个错误,要求码的最小距离d、e+1;纠正错误!未找到引用源。个错误,要求码的最小距离d-2t+1;纠正错误!未找到引用源。个错误同时检测错误!未找到引用源。个错误,则要求d't+e+1./循环码的译码分检错译码与纠错译码两类。在无记忆信道上,对码字c,差错图案e和接收向r量的多项式描述为r(x)=c(x)+e(x)定义r(x)的伴随多项式为s(x)s(x)=r(x)(modg(x))=s+sx+sx2+ +sxr-10 1 2 r-1由于c(x)=a(x)g(x)=0(modg(x)),所以s(x)=e(x)(modg(x))由此可见,s(x)丰0则一定有差错产生,或说满足e(x)(modg(x))丰0的差错图样e(x)产生,它满足e(x)(modg(x))=0。循环码的检错译码即是计算s(x)并判断是否为0三、实验分析1、实验测试结果,包括译码结果、误码率与信噪比之间的关系、生成多项式

理想状态下,对信号随机的提取,编码器输入为1000001110001000,通过encode函数后,因为加入了监督码,信号变得复杂密集,编码输出为1011000101001110110001011000通过译码输出为1000001110001000,与编码输入一致。说明循环码的检错和纠错能力性能好输出多项式为:g(x)=(x+a)(x+a2)(x+a3)=a6+a5X+a4X+a3X2+a3x+a2X+X3编码器输入.信号编码器输出信号编码器输入.信号编码器输出信号以randint函数重新做一个输入信号并进行编码,结果与上例相似,输入与输出一致。由上面所有的图可以发现,编码器输入信号并不完全相同,因为对信号的提取是随机的,所以码元也是随机的,信号经过编码器后,因为要加入监督码,所以波形变得更加密集了。信号经过译码后,波形和编码器输入信号大致相同,说明循环码的检错和纠错能力可以。循环码在不同信嗓比下的误码率O率码误<>OOO35O..2O2-OO率码误<>OOO35O..2O2-O最高达到信噪比与误码率的关系比较,从图中可看出,当信噪比在20以内时,误码率相对比较大最高达到0.45以上,而当SNR大于20后,信噪比保持很稳定。下面是误码率的数字显示:ThebiterrorrateisO.4ThebiterrorrateisO.46The"biterrorrateisO.44rhebiterrorrateisO.415The"biterrorrateisO.4rhe"biterrorrateisO.385rhe"biterrorratelsO.325ThebiterrorrateisO.4ThebiterrorratelsO.34The"biterrorrateisO.305rhebll:errorrateisO.32The"biterrorrateisO.24ErhebiterrorrsteisOL245rhe"biterrorratelsO.175rhebiterrorrateisO.185ThebiterrorratelsO.175The"biterrorrateisO.095The"biterrorrateisO.095The"biterrorrateisO.06EThelaiterrorrateisO.09The"biterrorratelsO.005ThebiterrorrateisOL045ThebiterrorrateisOThe"biterrorrateisOThe"biterrorrateisO2、实验过程遇到的问题及解决方法刚开始并没有注意到运用循环码时可用上简便的Matlab自带函数,一直苦恼怎么进行纠错编码及解码,然后查找资料,收集了与循环码相关的函数(部分如下:)encode函数功能:编码函数语法:code二encode(msg,N,K,method,opt)说明:用method指定的方法完成纠错编码。其中msg代表信息码元,是一个K列矩阵,N是编码后的码字长度;K是信息位的长度;opt是有些编码方式需要的参数。decode函数功能:译码函数语法:msg二decode(code,N,K,method,opt1,opt2,opt3,opt4);说明:这个函数对接收到的码字进行译码,恢复出原始的信息,译码参数和方式必须和编码时采用的严格相同。它对接收到的码字,按method指定的方式进行译码;opt1,…,opt4是可选项的参数。cyclpoly函数功能:生成循环码的生成多项式。语法:p二cyclpoly(N,K);p=cyclpoly(N,K,fd_flag);说明:从p=cyclpoly(N,K)中可找到一个给定码长N和信息位长度K生成多项式p,注意不是任意给定一个多项式都可以作为生成多项式。4)randint函数功能:引起一致地分布的任意整数矩阵语法:out=randint(m)out=randint(m,n)out=randint(m,n,rg)out=randint(m,n,rg,state)在进行误码率与信噪比之间的关系编程后,Matlab-直显示???Erroru.sing二二》血匸口血at118CODEmustcoutainonlybinaryrmnibers.其后才发现原来没有对加噪后的信号进行整形输出,于是加入for循环以四舍五入对信号进行整形设定。fori=1:100fora=1:k+1ifnoisycode(i,a)<0.5noisycode(i,a)=0;elsenoisycode(i,a)=1;endendend

、RS码在现代通信系统中的应用RS编码起源于I960年MITLincoln实验室,经历了数十年的发展,RS码成为了研究最详尽,分析最透彻,应用最广泛,研究成果最多的码类之一。1、在井下通信中的应用:由于井下空间小,供电系统布置受到很大局限,电磁干扰现象也很严重,通过选择合适的信道编码方式是抗干扰措施之一,可有效消除干扰,而由于RSce纠正t个m位的二进制错误会符号,而不管这t\个错误会符号是连续出现的还是离散出现,因此RS很适用于存在突发错误信道中,如井下工作,对系统码率的降低和可靠性的提高起重要作用。疏勒昭爲肾制;采輝机需 IT顾i_,采啊主輙仙袴阿n僅鸥离井下采煤机与通信系统的硬件框图先#控曙一信号异需HI】调MODBUS1接口通侑接口|采At机通信摆口逋恂控制。評井下采煤机与通信系统的硬件框图先#控曙一信号异需HI】调MODBUS1接口通侑接口|采At机通信摆口逋恂控制。評R5*译码及水声通信技术信道是随机时变空变的,其多途扩展产生的码间干扰直接影响到了水声通信的质量。而RS是一种扩展的非二进制BCH码,具有与PDS通信相结合的优势。

3SRS码在无线高保真音频传输系统中的应用在无线音频传输中,如果传输的数据出现误码,则会在播放时出现噪声或者啸叫声,所以想要确保得到高保真的音频,控制无线传输的误码率是必须的,通常采用重传和纠错编码两种方法。重传机制对无线信道的带宽要求更高,这里采用RS纠错编码的方法来控制误码率。五、实验程序1循环码编码与解码Matlab源程序(实验以(7,4)循环码进行分析)m=3;n二m=3;n二2人m-1;k=n-m;msg=randint(k*4,1,2);阵subplot(2,2,1)stem(msg)title('编码器输入信号')p=cyclpoly(n,k)code=encode(msg,n,k,'cyclic',p);subplot(2,2,2)stem(code)title(编码器输出信号')recode=decode(code,n,k,'cyclic',p)%定义码长%信息位长%随机提取信号,引起一致地分布的任意整数矩%循环码生成多项式,n=7,k=4%编码函数,对信号进行差错编码%对信号进行译码,对接收到的码字进行译码,恢复出原始的信息,译码参数和方式必须和编码时采用的严格相同subplot(2,2,3)stem(recode)title('译码器输出信号')t=-1:0.01:1;x二recode; %将recode赋值给x,并进行长度与fft设定N=length(x);fx=fft(x);df=100/N;n=0:N/2;f=n*df;subplot(2,2,4);plot(f,abs(fx(n+1))*2/N);grid;title('频谱图')2、误码率与信噪比之间的关系程序(以(3,2)循环码进行测试)m=2;n二2人m-1; %定义码长k=n-m; %信息位长Fs=40;%系统采样频率Fd=1;%码速率N=Fs/Fd;M=2;%进制数forSNRpBit=1:100;%信噪比SNR=SNRpBit/log2(M);%制造100个信息组,每组k位msg=randint(100,k,[0,1]);code=encode(msg,n,k,'cyclic/binary');%加入噪声%在已调信号中加入高斯白噪声noisycode=awgn(code,SNR-10*log10(0.5)-10*log10(N),'measured',[],'dB');%将浮点数转化为二进制,波形整形过程for

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论