首页 (74)循环码的编码和译码解析

(74)循环码的编码和译码解析

举报
开通vip

(74)循环码的编码和译码解析(7,4)循环码的编码和译码剖析(7,4)循环码的编码和译码剖析PAGE/NUMPAGES(7,4)循环码的编码和译码剖析(7,4)循环码的编码译码编码的实验原理:依据循环码的代数性质建立系统编码的过程,能够把信息矢量用以下多项式表示:m(x)m1xk1mxk2...mxm0kk21要编码成系统循环码形式,把信息比特移入码字寄存器的最右侧k位,而把监察比特加在最左侧的n-k此中,则要用xnk乘以m(x)获得xnk...

(74)循环码的编码和译码解析
(7,4)循环码的编码和译码剖析(7,4)循环码的编码和译码剖析PAGE/NUMPAGES(7,4)循环码的编码和译码剖析(7,4)循环码的编码译码编码的实验原理:依据循环码的代数性质建立系统编码的过程,能够把信息矢量用以下多项式 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示:m(x)m1xk1mxk2...mxm0kk21要编码成系统循环码形式,把信息比特移入码字寄存器的最右侧k位,而把监察比特加在最左侧的n-k此中,则要用xnk乘以m(x)获得xnkm(x)=mxn1mk2xn2...mxnk1mxnkxnkk110m(x)=q(x)g(x)+p(x),此中p(x)能够表示为p(x)=pnk1xnk1...p1xp0,则p(x)+xnkm(x)=mk1xn1mk2xn2...m1xnk1m0xnk+pnk1xnk1...p1xp0另U(x)=p(x)+xnk,则(p0,p1,p2,···,pnk1,m0,m1,···,m(x)U=mk1)。本实验依据以上原理,用matlab实现书上例6.8系统形式的循环码,生成多项式为g(x)=1xx37,4)循环码的编码的程序以下:clear;clc;a=[1011];%高次项系数在前的生成多项式Gx=[1011];%将数组a的高位挨次放在数组Data的低位Data=zeros(1,7);Data(1)=a(4);Data(2)=a(3);Data(3)=a(2);Data(4)=a(1);%Data除以Gx获得余数Rx[Qx,Rx]=deconv(Data,Gx);b=Rx+Data;%将数组b的高位放在后边c=b(1);b(1)=b(7);b(7)=c;c=b(2);b(2)=b(6);b(6)=c;c=b(3);b(3)=b(5);b(5)=c;%将数组b校订fori=1:7ifrem(abs(b(i)),2)==0b(i)=0;endendfori=1:7ifrem(abs(b(i)),2)==1b(i)=1;endenddisp('输入序列:');adisp('编码输出序列:');b程序运转结果为:输入序列:a=1100编码输出序列:b=1011100改变输入序列a=[1011],运转结果:输入序列:a=1011编码输出序列:b=1001011运转结果的编码以下:序号输入序列输出序列序号输入序列输出序列1000000000009100011010002000110100011010010111001300101110010111010001101040011010001112101110010115010001101001311001011100601011100101141101000110170110100011015111001011108011100101111611111111111译码的实验原理g(x)=1xx3,在(n,k)循环码中,因为g(x)能除尽,所以xn1可分解成g(x)和其余因式的乘积,记为xn1g(x)h(x)即可写成h(x)xn1g(x)即h(x)=x4x2x1则h*(x)=x4x3x1,此中h*(x)式h(x)的逆多项式。监察矩阵多项式可表示为x2h*(x)H(x)xh*(x),h*(x)相对应的译码和纠错(一位)程序以下:clear;clc;r=[1001111];h=[1,0,0;1,1,0;1,1,1;0,1,1;1,0,1;0,1,0;0,0,1];b=flipud(h);s=r*b;fori=1:3ifrem(abs(s(i)),2)==0s(i)=0;endendfori=1:3ifrem(abs(s(i)),2)==1s(i)=1;endendifs==[000]e=[0000000]elseifs==[100]e=[0000001]elseifs==[110]e=[0000010]elseifs==[111]e=[0000100]elseifs==[011]e=[0001000]elseifs==[101]e=[0010000]elseifs==[010]e=[0100000]elses==[001]e=[1000000]endu=r+e;fori=1:7ifrem(abs(u(i)),2)==0u(i)=0;endendfori=1:7ifrem(abs(u(i)),2)==1u(i)=1;endendData=zeros(1,4);Data(1)=u(4);Data(2)=u(5);Data(3)=u(6);Data(4)=u(7);ife==[0000000]disp('第几位错误:')k=0,elsedisp('第几位错误:')k=find(e);enddisp('接受码字')rdisp('编码输出序列:')Data运转程序结果以下:e=0000100第几位错误:k=5接受码r=1001111编码输出序列:Data=1011以上编码有个缺点,就是它只好对一个信息矢量(4位)进行编码,我又在这个基础上编写了一个能够同时对位数是4的倍数的信息矢量进行编码,多位循环码的编码程序以下:clear;clc;a=[11001011];[X,N]=size(a);%将信息码分为M帧,1帧4个信息码M=ceil(N/4);d=zeros(1,4);b=zeros(1,7*M);Data=zeros(1,7);fork=1:Mforj=1:4d(j)=a(j+(k-1)*4);end%生成多项式Gx=[1011];Data(1)=d(4);Data(2)=d(3);Data(3)=d(2);Data(4)=d(1);%Data除以Gx获得余数Rx[Qx,Rx]=deconv(Data,Gx);e=Rx+Data;b(7*k-6:7*k)=e(1:7);c=b(1+(k-1)*7);b(1+(k-1)*7)=b(7+(k-1)*7);b(7+(k-1)*7)=c;c=b(2+(k-1)*7);b(2+(k-1)*7)=b(6+(k-1)*7);b(6+(k-1)*7)=c;c=b(3+(k-1)*7);b(3+(k-1)*7)=b(5+(k-1)*7);b(5+(k-1)*7)=c;endfori=1:M*7ifrem(abs(b(i)),2)==0b(i)=0;endendfori=1:M*7ifrem(abs(b(i)),2)==1b(i)=1;endenddisp('输入序列:');adisp('编码输出序列:');b程序运转结果以下:输入序列:a=11001011编码输出序列:b=Columns1through131011100100101Column141相应的多位译码纠错程序以下:clear;clc;r=[10011001001001];[X,N]=size(r);%将接收到的码分为M帧,1帧7个信息位M=ceil(N/7);h=[1,0,0;1,1,0;1,1,1;0,1,1;1,0,1;0,1,0;0,0,1];b=flipud(h);d=zeros(1,7);U=zeros(1,4*M);Data=zeros(1,7*M);fori=1:Mforj=1:7d(j)=r(j+(i-1)*7);ends=d*b;fork=1:3ifrem(abs(s(k)),2)==0s(k)=0;endendfork=1:3ifrem(abs(s(k)),2)==1s(k)=1;endendifs==[000]e=[0000000]elseifs==[100]e=[0000001]elseifs==[110]e=[0000010]elseifs==[111]e=[0000100]elseifs==[011]e=[0001000]elseifs==[101]e=[0010000]elseifs==[010]e=[0100000]elses==[001]e=[1000000]endu=d+e;fork=1:7ifrem(abs(u(k)),2)==0u(k)=0;endendfork=1:7ifrem(abs(u(k)),2)==1u(k)=1;endendData(1+7*(i-1))=e(1);Data(2+7*(i-1))=e(2);Data(3+7*(i-1))=e(3);Data(4+7*(i-1))=e(4);Data(5+7*(i-1))=e(5);Data(6+7*(i-1))=e(6);Data(7+7*(i-1))=e(7);U(1+(i-1)*4)=u(4);U(2+(i-1)*4)=u(5);U(3+(i-1)*4)=u(6);U(4+(i-1)*4)=u(7);endifData==zeros(1,7*M);m=0,else[j,m]=find(Data);enddisp('第几位错误:');mdisp('接收到的码字:');rdisp('编码输出序列:');U运转结果以下:e=0010000e=0000010第几位错误:m=313接收到的码字:r=Columns1through131001100100100Column141编码输出序列:U=11001011剖析:这两组实验基本上完成了循环码的编码和译码,但是该实验的缺点就是不能够同时对7位信息码进行两位的纠错,即只好完成一位信息码的纠错。
本文档为【(74)循环码的编码和译码解析】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
天地龙吟
本人从事电工工作多年,经验丰富。
格式:doc
大小:213KB
软件:Word
页数:13
分类:
上传时间:2022-07-09
浏览量:65