循环码编译码实验
基于MATLAB的循环码实验报告

课程名称:信息论与编码课程设计题目:循环码的编码和译码程序设计指导教师:系别:专业:学号:姓名:合作者完成时间:成绩:评阅人:一、实验目的:1、通过实验了解循环码的工作原理。
2、深刻理解RS 码构造、RS 编译码等相关概念和算法。
二、实验原理1、RS 循环码编译码原理与特点设C 使某线性分组码的码字集合,如果对任C c c c C n n ∈=--),,,(021 ,它的循环移位),,,(1032)1(---=n n n c c c c C也属于C ,则称该码为循环码。
该码在结构上有另外的限制,即一个码字任意循环移位的结果仍是一个有效码字。
其特点是:(1)可以用反馈移位寄存器很容易实现编码和伴随式的计算;(2)由于循环码有很多固有的代数结构,从而可以找到各种简单使用的译码办法。
如果一个线性码具有以下的属性,则称为循环码:如果n 元组},,,{110-=n c c c c 是子空间S 的一个码字,则经过循环移位得到的},,,{201)1(--=n n c c c c 也同样是S 中的一个码字;或者,一般来说,经过j 次循环移位后得到的},,,,,,,{11011)(---+--=j n n j n j n j c c c c c c c 也是S 中的一个码字。
RS 码的编码系统是建立在比特组基础上的,即字节,而不是单个的0和1,因此它是非二进制BCH 码,这使得它处理突发错误的能力特别强。
码长:12-=mn信息段:t n k 2-= (t 为纠错符号数) 监督段:k n t -=2 最小码段:12+=t d最小距离为d 的本原RS 码的生成多项式为:g(x)=(x-α)(x -α2)(x -α3)…(x -αd -2) 信息元多项式为::m(x)=m0+m1x+m2x2+…+mk -1xk-1循环码特点有:1)循环码是线性分组码的一种,所以它具有线性分组的码的一般特性,且具有循环性,纠错能力强。
循环码的编码和译码

信息编码技术实验艮告三题目:循环码的编码和译码院系:计算机科学与工程学院班级:姓名:学号:【实验目的】1. 通过实验了解循环码的工作原理。
2. 了解生成多项式g(x)与编码、译码的关系。
3. 了解码距d 与纠、检错能力之间的关系。
【实验条件】仪器设备:PC 机,应用软件:Matlab 。
【实验内容]1、编程实现(7,4)系统循环码的编、译码。
已知(7, 4)循环码的生成多项式和校验多项式分别为:£(/)=疋+兀+ 1, h(x) = x 4+x 2+x + U 其生成矩阵和校验矩阵分别为:2、计算出所有的码字集合,可纠错误图样E (X 〉表和对应的错误伴随式表。
【程序代码】% (7,4)系统循环码编码.译码 clc;clear all;close all;n=7;k=4;r=n-k;mx=input ('请输入信息码字:m=\n' ) ; %输入信息码字 gx=[l Oil];x_nk=[l, zeros (1, r)];messg=conv(x.nk> mx); [qx, rxO] =deconv(messg, gx); %模 gx> qx 为所得除式,rxO 为余式 rx=mod (rxO, 2); %将余式rxO 转换为二进制cx=me ssg+rx;%编码码字多项式 c=cx瀚出编码码字 %=====绘图======== fs=1000;ts=l/fs;%fs 为一个单位内的样点 for i=l :n%以方波形式输出编码码字,一个单位内一个码字for j=l :fscx.wave ((i-1) *fs+j) =c (i);end endt=O :ts :n-ts;1 0 1 1000 0 10 1 1 00 G= 00101 1 0000 10 11 1110100 H = 0 1110 10 0011001%循环码生成多项式 %x* (n-k)> %x*(n-k)*mxplot (t, cx_wave); %以方波形式输出编码码字xlabel ('时间');ylabel C 幅度');title C (7,4)循环码编码输出波形');axis([0 7 0 1. 2]);%==^ 码===============S=zeros (1, r); 颂始化校验子gx=[l Oil]; %循环码生成多项式Rx=input (*请输入接收码字:R=\n ) ;%接收码字多项式% Rx=[l 0 1 0 1 1 1];R=Rx;繊收码字[nx, SxO]=deconv(Rx, gx); %接收码字多项式除以gx, SxO为余式(十进制) Sx=mod(SxO, 2); %将SxO转换为G (2)域下多项式S=Sx(5:7); %SxO最后3位为检验子if S=[0 0 0] 燈验子二0disp('There is no wrong!'); % 显示接收码字无错E=[0 0 0 0 0 0 0]; %査表得出错误图样为0C=R; %译码输出为接收码字elseif S=[0 0 1] %接收码字第一位r0错dispC1 r0 is wrong!'); % 显示rO 错E=[0 0 0 0 0 0 1]; %査表得出错误图样C=xor (R, E); %译码输出C=R+Eelseif S=[0 1 0] %rl 错disp('rl is wrong!');E=[0 0 0 0 0 1 0];C=xor (R, E);elseif S=[l 0 0] 紐2 错disp('ir2 is wrong!');E=[0 0 0 0 1 0 0];C=xor(R, E);elseif S=[0 1 1] %r3 错dispC1 r3 is wrong!');E=[0 0 0 1 0 0 0];C=xor (R, E);elseif S=[l 1 0] %r4 错disp('r4 is wrong!');E=[0 0 1 0 0 0 0];C=xor (R, E);elseif S=[l 1 1] %r5 错dispC r5 is wrong!');E=[0 1 0 0 0 0 0];C=xor (R, E);elseif S=[l 0 1] %r6 错dispC* r6 is wrong!1);E=[l 0 0 0 0 0 0]; C=xor (R, E);endC %输出译码码字【实验结果】请输入信息码字:[10 110 10]10 110 1 0 1 1请输入接收码字:R 二 [10 11010 110] There is no wrong!C =10 11 0 1 0 1 1 0【实验心得】通过本次实验,我加深了对循环码的1:作原理的理解,也了解了生成多项式 g(x)与编码、译码的关系和码距d 与纠、检错的关系,在动手实验过程中,对知 识点的印象更加清晰,让我的理解更加深刻了。
实验三 循环码的编码和译码程序设计

实验四循环码的编码和译码程序设计姓名:夏静学号:20060830118 班级:信息安全一班一、实验目的:1.通过实验了解循环码的工作原理。
2.了解生成多项式g(x)与编码、译码的关系。
3.了解码距d与纠、检错能力之间的关系。
4.分析(7.3)循环码的纠错能力。
二、实验要求:1、编、译码用上述的计算法程序框图编写。
2、计算出所有的码字集合,可纠的错误图样E(x)表和对应的错误伴随式表。
3、考查和分析该码检、纠一、二位错误的能力情况。
4、整理好所有的程序清单,变量名尽量用程序框图所给名称,并作注释。
5、出示软件报告.三、实验设计原理1、循环码编码原理设有一(n,k)循环码,码字C=[Cn-1…CrCr-1…C0],其中r=n-k。
码字多项式为:C(x)= Cn-1xn-1+Cn-2xn-2+…C1x+C0。
码字的生成多项式为:g(x)=gr-1xr-1gr-2xr-2+…+g1x+g0待编码的信息多项式为:m(x)=mK-1xK-1+…+m0xn-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)所得的余式。
编码过程就是如何根据生成多项式完成除法运算求取监督多项式的过程。
设循环码(7.3)码的字多项式为:C(x)=C6x6+C5x5+C4x4+C3x3+C2x2C1x+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. 掌握循环编译码的编译过程和性能评估方法;3. 分析循环编译码在不同场景下的应用效果。
二、实验环境1. 操作系统:Windows 102. 编译器:Visual Studio 20193. 实验语言:C++三、实验内容1. 循环编译码的基本原理循环编译码是一种特殊的线性编译码,具有循环结构,可以将信息以循环的方式存储在码字中。
循环编译码具有以下特点:(1)循环结构:码字中的信息以循环的方式存储,即码字的前n个比特与后n个比特相对应;(2)线性结构:码字中的比特之间满足线性关系;(3)性能优越:循环编译码具有较好的纠错性能和抗干扰能力。
2. 循环编译码的编译过程循环编译码的编译过程主要包括以下步骤:(1)码字生成:根据信息比特和校验比特的线性关系,生成码字;(2)码字循环:将码字中的信息比特以循环的方式存储,实现循环结构;(3)码字传输:将码字传输到接收端;(4)码字检测:对接收到的码字进行检测,判断是否存在错误;(5)错误校正:对检测到的错误进行校正,恢复原始信息。
3. 循环编译码的性能评估循环编译码的性能评估主要包括以下指标:(1)纠错能力:循环编译码能够纠正的最大错误数量;(2)误码率:在给定信道条件下,码字中错误比特的比例;(3)抗干扰能力:循环编译码在信道干扰下的性能。
四、实验步骤1. 设计循环编译码的结构:确定码长、信息比特数、校验比特数等参数;2. 编写码字生成函数:根据信息比特和校验比特的线性关系,生成码字;3. 编写码字循环函数:将码字中的信息比特以循环的方式存储;4. 编写码字传输函数:模拟码字在信道中的传输过程;5. 编写码字检测函数:对接收到的码字进行检测,判断是否存在错误;6. 编写错误校正函数:对检测到的错误进行校正,恢复原始信息;7. 评估循环编译码的性能:在不同信道条件下,对循环编译码的纠错能力、误码率和抗干扰能力进行评估。
循环码编译码实验报告

Harbin Institute of Technology信息论与编码报告题目:循环码编译码实验院(系)电子与信息工程学院班级通信1班学生学号序号哈尔滨工业大学循环码编译码实验1 设计内容循环码是线性分组码中最重要的一类码,它的结构完全建立在有限域多项式的基础上,它具有两个基本特点:一是编码电路与译码电路非常简单,易于实现;二是其代数性质好,分析方便,有一定的成熟的译码方法。
一个(n ,k )线性分组码C ,如果码组中的一个码字的循环移位也是这个码组中的一个码字,则称C 为循环码。
本实验主要完成以下四项内容:(1)利用(7,4)系统循环码的生成多项式为:3()1g x x x =++,请设计该循环码的编码器。
(2)随机产生重量为0或1的八种错误图样中的一种,得到实际接收码字。
(3)根据接收到的码字进行译码,译码方式分为校验子译码和梅吉特译码两种。
(4)对于在BSC 信道传输时的情形进行讨论,验证(7,4)系统循环码的纠错能力。
2 编程环境本实验采用Matlab 作为编程工具,所有代码均在Matlab 软件中运行,此软件功能强大,应用广泛,在此不再赘述。
3 各模块设计3.1 编码器模块利用(7,4)系统循环码的生成多项式为:3()1g x x x =++,请设计该循环码的编码器。
流程图为:图1 (7,4)循环码编码流程图图2 4位信息码元编码流程图在学生设计的演示工具中输入的信息码元可以为任意多个,系统自动按每4个连续的码字一组进行编码,当输入的信息码元不是4的倍数时,自动补零到与信息码元长度最接近的4的倍数。
译码时也是按照每7个连续的码字一组进行译码。
但是为了流程图的清晰明了,在本文的流程图除流程图1以外,其余均按一个循环码码字(即7位)来描述。
编码器模块源程序如下:%%%函数功能:(7,4)系统循环码编码器%%%编程时间:2013-11-29%%%该系统循环码编码器的生成多项式是g(x) = x^3 + x + 1;% %%系统循环码编码的原理是,首先用x^r乘以信息码字多项式m(x),这里r = 3;然后用x^r*m(x)除以生成多项式g(x),% %%得余式r(x);最后得系统循环码多项式c(x) = x^r*m(x) + r(x)function [code_out,code_in_L] = coder(code_in)%%code_in:输入信息码字%%code_out:输出编码后的码字%%L:输入的信息码元的长度n=7;%%每个码字长度k=4;%%每个码字中信息码元长度code_in_L=length(code_in);a=rem(code_in_L,k);%信息码元的长度除以k后的余数if a~=0 %%%信息码元长度不是k的整数倍,则补0array_0=zeros(1,k-a);%%%补零个数code_in=[code_in ,array_0];endcode_in_4=(reshape(code_in,k,length(code_in)/k))';%%%将补零后的码元变成length(code_in)/4行,4列矩阵for loop=1:length(code_in)/kmes_code = [code_in_4(loop,:),zeros(1,3)]; % 在信息码字后面补上三个零,相当于乘上x^rgen = [1 0 1 1]; % 生成多项式向量% 在二元域进行运算,必须把信息码字多项式向量和生成多项式向量转到二元域GF(2)上% 函数gf(X,M)用于从向量X生成GF(2^M)上对应的向量mes_g = gf(mes_code,1);gen_g = gf(gen,1);% 用x^r*m(x)除以生成多项式g(x)[Q,rem_g] = deconv(mes_g,gen_g); % 多项式除法其实就是解卷积运算,得到除法的商式Q,余式rem_g%%相应的,多项式乘法其实是系数的卷积code_rem = rem_g.x; % rem_g.x表示二元域向量rem_g的一个属性,即多项式的系数。
循环码实验报告

课程名称:信息论与编码课程设计题目:循环码的编码和译码程序设计指导教师:系别:专业:学号:姓名:合作者完成时间:成绩:评阅人:一、实验目的:1、通过实验了解循环码的工作原理。
2、深刻理解RS 码构造、RS 编译码等相关概念和算法。
二、实验原理1、RS 循环码编译码原理与特点设C 使某线性分组码的码字集合,如果对任C c c c C n n ∈=--),,,(021 ,它的循环移位),,,(1032)1(---=n n n c c c c C 也属于C ,则称该码为循环码。
该码在结构上有另外的限制,即一个码字任意循环移位的结果仍是一个有效码字。
其特点是:(1)可以用反馈移位寄存器很容易实现编码和伴随式的计算;(2)由于循环码有很多固有的代数结构,从而可以找到各种简单使用的译码办法。
如果一个线性码具有以下的属性,则称为循环码:如果n 元组},,,{110-=n c c c c 是子空间S 的一个码字,则经过循环移位得到的},,,{201)1(--=n n c c c c 也同样是S 中的一个码字;或者,一般来说,经过j 次循环移位后得到的},,,,,,,{11011)(---+--=j n n j n j n j c c c c c c c 也是S 中的一个码字。
RS 码的编码系统是建立在比特组基础上的,即字节,而不是单个的0和1,因此它是非二进制BCH 码,这使得它处理突发错误的能力特别强。
码长:12-=mn信息段:t n k 2-= (t 为纠错符号数)监督段:k n t -=2最小码段:12+=t d最小距离为d 的本原RS 码的生成多项式为:g(x)=(x-α)(x -α2)(x -α3)…(x -αd -2)信息元多项式为::m(x)=m0+m1x+m2x2+…+mk -1xk-1循环码特点有:1)循环码是线性分组码的一种,所以它具有线性分组的码的一般特性,且具有循环性,纠错能力强。
2)循环码是一种无权码,循环码编排的特点为相邻的两个数码之间符合卡诺中的邻接条件,即相邻数码间只有一位码元不同,因此它具有一个很好的优点是它满足邻接条件,没有瞬时错误(在数码变换过程中,在速度上会有快有慢,中间经过其他一些数码形式,即为瞬时错误)。
循环码二步大数逻辑译码原理实验

H a r b i n I n s t i t u t e o f T e c h n o l o g y信息论与编码实验报告实验名称:循环码二步大数逻辑译码原理实验院系:电子与信息工程学院通信工程系班级:10硕通信一班姓名:学号:设计时间:2010-11-20哈尔滨工业大学一、 实验内容已知一个(7,4)系统循环码的生成多项式为g x =x 3+x +1,设计基于此生成多项式的大数逻辑译码器。
二、 实验原理2.1 多项式的除法电路本实验的输入为串行数据,因而只考虑串行数据的除法电路。
假设多项式r x =r n x n +r n −1x n−1+⋯+r 1x +r 0,g x =g r x r +g r−1x r−1+⋯+g 1x +g 0,且有r ≤n ,则r x 除以g x 的除法电路的一般形式如图1。
图1多项式除法的一般电路图1中,输入序列按r n −1r n …r 0的顺序输入,右上方的输出为商多项式,待r 0输入结束后,各寄存器中的数据为余式多项式。
在二进制的情况下,模2加法等效于模2减法,且g x 的系数只可能为0或1,因而除法电路可进一步简化,例如,g x =x 3+x +1对应的除法电路如图2所示。
图2 除式为g x =x 3+x +1的除法电路在本实验中,只对余式感兴趣,在输入序列完毕后,余式为s x =s 2x 2+s 1x +s 0。
2.2 循环码的译码原理假设系统循环码的生成多项式为g x =g r x r +g r−1x r−1+⋯+g 1x +g 0,接收到的一组循环码字的多项式表示为r x =r n x n +r n −1x n−1+⋯+r 1x +r 0,则按照以下方法译码:i) 求r x 除以g x 的余式s x ,定义此余式为校验子多项式。
ii) 根据校验子多项多生成错误图样e x 。
iii) e x+r x=c x即为译码结果。
这里不讨论循环码的纠检错能力,(7,4)系统循环码可以纠正一位错。
循环码梅吉特译码原理实验

循环码梅吉特译码原理实验一、设计内容本实验根据梅吉特译码器的原理设计循环码梅吉特译码器,该译码器具有纠一位错码的能力。
在输入窗口中输入七位的二进制接收码字,在输出窗口中输出译码后的码字,并可根据选择画出波形图。
二、设计工具:MATLA B三、流程图主程序流程图梅吉特译码核心部分流程图四、运行方法在“Input code”输入文本框中输入要译码的七位循环码码字,选择“Draw”(选择输入和输出的码字的波形)或“Undraw”(不显示输入和输出的波形),点击“Decode”,会在“Output”输出文本框里输出译码后的码字,并根据“Draw”或“Undraw”的选择是否显示码字波形。
点击“Reset”会清空所有的图形和文本框,点击“Help”会显示操作帮助。
五、运行结果截图下图为当输入“1101011”时的译码结果及波形显示:六、实验心得:通过本次实验,使我不仅掌握了梅吉特译码器的原理,而且也学会了如何用软件去实现其逻辑功能,并且对MATLAB仿真工具的使用有了进一步的认识。
七、程序代码部分%界面程序-decode的回调函数部分input1=get(handles.Input,'String');input1=size(input1);input2=input1(2);check=get(handles.Input,'String');check=str2num(check);check2=checkout(check);if (input2~=7)|(check==0)set(handles.Input,'String','');set(handles.Output,'String','');axes(handles.axes1);cla reset;axes(handles.axes2);cla reset;errordlg('Please input 7 bit binary number!','Error input !'); elsea=get(handles.Input,'String');code=str2num(a);code1=converter(code);decoder=MJTdecoder(code);decoder2=num2str(decoder);set(handles.Output,'String',decoder2);a=get(handles.Draw,'Value');if a==1axes(handles.axes1);%plot wavestairs([0:7],[code1,1]);axis([0 7 -0.1 1.5]);title('Input code');axes(handles.axes2);stairs([0:7],[decoder,1]);axis([0 7 -0.1 1.5]);title('Output code');elseaxes(handles.axes1);cla reset;axes(handles.axes2);cla reset;endend%回调函数部分结束%检测输入的数据是否合法的函数部分function dataout=checkout(R)%先将输入的十进制数变成二进制数R1=floor(R/1000000);R2=floor(mod(R,1000000)/100000);R3=floor(mod(R,100000)/10000);R4=floor(mod(R,10000)/1000);R5=floor(mod(R,1000)/100);R6=floor(mod(R,100)/10);R7=mod(R,10);%判断输入的码是否合法,该判断只能判断小于等于七位的二进制数,如果输入的是小于七位的二进制数,也默认合法,将小于七位的二进制的数的判定放在decode的回调函数里if((R1~=0&R1~=1)|(R2~=0&R2~=1)|(R3~=0&R3~=1)|(R4~=0&R4~=1)|(R5~=0&R5~ =1)|(R6~=0&R6~=1)|(R7~=0&R7~=1))dataout=0;%如果是非法输入就置dataout为0,否则为1elsedataout=1;end%模2加法器的实现部分function y=add2(x,y)if (x==0&y==0)|(x==1&y==1)y=0;elseif (x==0&y==1)|(x==1&y==0)y=1;end%模2加法器的实现部分结束if((R1~=0&R1~=1)|(R2~=0&R2~=1)|(R3~=0&R3~=1)|(R4~=0&R4~=1)|(R5~=0&R5~ =1)|(R6~=0&R6~=1)|(R7~=0&R7~=1))dataout=0;%如果是非法输入就置dataout为0,否则为1elsedataout=1;end%检测输入的数据是否合法的函数部分%将输入的数据转换成二进制数据的函数部分function C=converter(R)R1=floor(R/1000000);R2=floor(mod(R,1000000)/100000);R3=floor(mod(R,100000)/10000);R4=floor(mod(R,10000)/1000);R5=floor(mod(R,1000)/100);R6=floor(mod(R,100)/10);R7=mod(R,10);C=[R1,R2,R3,R4,R5,R6,R7];%将输入的数据转换成二进制数据的函数部分结束%梅吉特译码器的核心部分function dataout=Mjtdecoder(R)R1=floor(R/1000000);R2=floor(mod(R,1000000)/100000);R3=floor(mod(R,100000)/10000);R4=floor(mod(R,10000)/1000);R5=floor(mod(R,1000)/100);R6=floor(mod(R,100)/10);R7=mod(R,10);R_new=[R1,R2,R3,R4,R5,R6,R7]; C(7)=0;D0=0;D1=0;D2=0;D00=0;D11=0;D22=0; for i=1:14D00=D0;D11=D1;D22=D2;if i<=7D0=add2(D22,R_new(i));D1=add2(D00,D22);D2=D11;S=D0&~D1&D2;elseD0=add2(S,D22);D1=add2(D00,D22);D2=D11;C(i-7)=add2(S,R_new(i-7)); S=D0&~D1&D2;endenddataout=C;%梅吉特译码器的核心部分结束循环码梅吉特译码原理实验(2)设计内容本实验根据梅吉特译码器的原理设计循环码梅吉特译码器,该译码器具有纠一位错码的能力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
五、实验报告要求
1、求出本实验循环码的最小码距、及检错纠错能力并于实验结果进行比较。 2、已知码字010011,用本实验生成多项式,求出循环码的码字,并与附表1进 行比较。
六、实验注意事项
按实验板标示电压调准电源。
预习注意事项: 1、实验前必须复习有关线性码级循环码的教材或者参考书, 了解循环码的属性、编码原理、译码原理及码距与检纠错能 力的关系。 2、实验具体操作非常简单,但是只有掌握了循环码的相关知 识,做这个实验才有实质上的意义。 3、实验课上的讲解是以大家已经掌握了循环码相关知识为基 础来进行,只讲解如何把循环码编译码的理论推导在实验电 路上实现。
数字通信原理实验
循环码编、译码实验
指导老师:李冰、梁仕文
一、实验目的
1. 了解生成多项式g(x)在循环码编码器和译码器之间的关系。 2.了解码距与纠、检错能力之间的关系。
二、循环码介绍
(一)循环码是一类很重要的线性码,具有循环性和封闭性。 1、循环性 循环性:循环码中任一码组循环一位(将最右端的码移至左端)以后,仍为该 循环性 码中一个码组。如010011为一个码组,那么101001也为一个码组。 2、封闭性 封闭性:循环码中任两个码组之和(模2)必定为该码组集合中的一个码组。 封闭性
本实验中 相应的校验矩阵为
T
H=[
X
~ 14
T
X
~ 13
X
~ 12
T
X
~ 11
T
X
~ 10
T
~
T
~
T
~
T
~
T
~
T
~
T
~
T
~
T
~
T
X
9
X
8
X
7
X
6
X
5
X
4
X
3
X
2
X
1
S = E• HT
1 0 0 T ~ 1 0 X (mod g(x))= 1 1 0 0 1
]
1 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 0 0 0 0 0 0 1 1 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 1 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1
码位 错码发生器 编码输出 译码输入 1 0 0 0 2 0 1 1 3 0 0 0 4 1 0 1 5 0 1 1 6 0 1 1 7 0 1 1 8 0 0 0 9 0 0 0 10 1 1 0 11 0 1 1 12 0 0 0 13 0 0 0 14 0 0 0 15 0 0 0
(三)循环码译码介绍
(三)码距与码检错纠错能力的关系 码距:两个码组对应位上数字的不。 如010011与 001001的码距为3。 最小码距d:码组集合中非零码组的最小重量。 最小码距 码距与检错能力:d ≧e+1 码距与检错能力 码距与纠错能力: 码距与纠错能力 d≧2t+1
如 010011+ 001001=011010也为一个码组
(二)生成多项式与编译码电路的关系 编码:循环码的码多项式可表示为 编码 到的余式,代表监督位。结论:只要知道 ,其中 为 就能构造编码器。 与 相除得
译码:由于 译码 就可以构造一个除法电路,把接收码组除以 字没有错码,否则有错码。
,结论:只要知道 ,如果余式为0即可判断接收到的码
除法电路—求伴随式
正交网络
发生错码个数 发生0个错码 发生1个错码 发生2个错码
错码位置 错码在正交位(e14)上 错码在非正交位上 其中一个错码在正交位(e14)上 两个错码均在非正交位上 超出纠错范围,不研究
A3 A2 A1 A0中“1”的个数 的个数 A3 A2 A1 A0全为0 A3 A2 A1 A0全为1,即有四个“1” A3 A2 A1 A0中只有一个“1” A3 A2 A1 A0中有三个“1” A3 A2 A1 A0中有两个“1”或一个“1”
伴 随 式 修 正
发生3个错码
大数逻辑 判决电路
结论:当三个或以上的正交方程为1时,正交位有 结论 错码,需要纠错;当三个以下的正交方程为1时, 正交位无错或超出纠错范围,正交位无需纠错。
四、实验内容
(全部做,不记录波形,只记录编码结果)
2、以时钟CP为准,观察编码器的输出波形。(设置10组CDIN,记录CDOUT的 输出结果,与理论结果比较) 3、观察信道干扰。 4、观察经过译码器后该码的纠错能力。 (设置一组CDIN,通过ECD分别给信 码加0、1、2、3个错误,记录4种情况下CDOUT的输出结果) 5、验证循环码的循环性和封闭性。
三、循环码原理
1 6
6 CDIN
15 CDOUT
1 7
ECD 8 15
6 DOUT
15
1 6
实验总体框图
(一)循环码编码介绍 根据生成多项式 画出如下的编码器电路。
0 0 0 1
1 1 0 0 1
0
输入6位信息码,通过除法电路计算出对应的9位监督码,使得总数 出的码长为15位。
(二)信道加错介绍 本实验中设计了一个15位错码发生器,对应实验板上的ECD,可在不同位 置使用开关设置“1”码,并使相应的发光二极管发光,显示错码产生的位置。 错码发生器产生的“1”码与编码器输出的信号相异或,产生的码即为错码。