文档库 最新最全的文档下载
当前位置:文档库 › 循环码梅吉特译码原理实验

循环码梅吉特译码原理实验

循环码梅吉特译码原理实验
循环码梅吉特译码原理实验

循环码梅吉特译码原理实验

一、设计内容

本实验根据梅吉特译码器的原理设计循环码梅吉特译码器,该译码器具有纠一位错码的能力。在输入窗口中输入七位的二进制接收码字,在输出窗口中输出译码后的码字,并可根据选择画出波形图。

二、设计工具: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 !'); else

a=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==1

axes(handles.axes1);

%plot wave

stairs([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');

else

axes(handles.axes1);

cla reset;

axes(handles.axes2);

cla reset;

end

end

%回调函数部分结束

%检测输入的数据是否合法的函数部分

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,否则为1

else

dataout=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,否则为1

else

dataout=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:14

D00=D0;

D11=D1;

D22=D2;

if i<=7

D0=add2(D22,R_new(i));

D1=add2(D00,D22);

D2=D11;

S=D0&~D1&D2;

else

D0=add2(S,D22);

D1=add2(D00,D22);

D2=D11;

C(i-7)=add2(S,R_new(i-7)); S=D0&~D1&D2;

end

end

dataout=C;

%梅吉特译码器的核心部分结束

循环码梅吉特译码原理实验

(2)设计内容

本实验根据梅吉特译码器的原理设计循环码梅吉特译码器,该译码器具有纠一位错码的能力。在输入窗口中输入七位的二进制接收码字,在输出窗口中输出译码后的码字,并可根据选择画出波形图。

(3)设计工具:MATLAB

(4)流程图:

(6)运行方法:

在“Input code”输入文本框中输入要译码的七位循环码码字,选择“Draw”(选择输入和输出的码字的波形)或“Undraw”(不显示输入和输出的波形),点击“Decode”,会在“Output”输出文本框里输出译码后的码字,并根据“Draw”或“Undraw”的选择是否显示码字波形。

点击“Reset”会清空所有的图形和文本框,点击“Help”会显示操作帮助。(7)运行结果截图:

下图为当输入“1101011”时的译码结果及波形显示:

(8)实验心得:

通过本次实验,使我不仅掌握了梅吉特译码器的原理,而且也学会了如何用软件去实现其逻辑功能,并且对MATLAB仿真工具的使用有了进一步的认识。(5)程序代码部分

%界面程序-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 !'); else

a=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,'V alue');

if a==1

axes(handles.axes1);

%plot wave

stairs([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');

else

axes(handles.axes1);

cla reset;

axes(handles.axes2);

cla reset;

end

end

%回调函数部分结束

%检测输入的数据是否合法的函数部分

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,否则为1

else

dataout=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,否则为1

else

dataout=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:14

D00=D0;

D11=D1;

D22=D2;

if i<=7

D0=add2(D22,R_new(i));

D1=add2(D00,D22);

D2=D11;

S=D0&~D1&D2;

else

D0=add2(S,D22);

D1=add2(D00,D22);

D2=D11;

C(i-7)=add2(S,R_new(i-7));

S=D0&~D1&D2;

end

end

dataout=C;

%梅吉特译码器的核心部分结束

实验4 译码器及其应用

实验五译码器及其应用 一、实验目的 1、掌握中规模集成译码器的逻辑功能和使用方法 2、熟悉数码管的使用 二、实验设备与器件 1、+5V直流电源 2、逻辑电平开关 3、逻辑电平显示器 4、拨码开关组 5、译码显示器 6、 74LS138×2 CC4511 三、实验内容 1、74LS138译码器逻辑功能测试 将译码器使能端S1、2S、3S及地址端A2、A1、A0分别接至逻辑电平开关输出口,八个Y???依次连接在逻辑电平显示器的八个输入口上,拨动逻辑电平开关,按表6-输出端0 7Y 1逐项测试74LS138的逻辑功能。 图6-1(a)、(b)分别为其逻辑图及引脚排列。 其中 A2、A1、A0为地址输入端,0Y~7Y为译码输出端,S1、2S、3S为使能端。 当S1=1,2S+3S=0时,器件正常工作,地址码所指定的输出端有信号(为0)输出,其它所有输出端均无信号(全为1)输出。当S1=0,2S+3S=X时,或 S1=X,2S+3S=1时,译码器被禁止,所有输出同时为1。 图6-1 3-8线译码器 74LS138逻辑图及引脚排列 表6-1

2、二进制译码器还能方便地实现逻辑函数,如图6-3所示,实现的逻辑函数是 Z = C B A C B A C B A +++ABC 图6-2 作数据分配器 图6-3 实现逻辑函数

3、码显示译码器及译码显示电路 数据拨码开关的使用。 将实验装置上的四组拨码开关的输出A i、B i、C i、D i分别接至4组显示译码/驱动器CC4511的对应输入口,LE、BI、LT接至三个逻辑开关的输出插口,接上+5V显示器的电源,然后按功能表6-2输入的要求揿动四个数码的增减键(“+”与“-”键)和操作与LE、BI、LT对应的三个逻辑开关,观测拨码盘上的四位数与LED数码管显示的对应数字是否一致,及译码显示是否正常。 a、七段发光二极管(LED)数码管 LED数码管是目前最常用的数字显示器,图6-5(a)、(b)为共阴管和共阳管的电路,(c)为两种不同出线形式的引出脚功能图。 符号及引脚功能 b、BCD码七段译码驱动器 此类译码器型号有74LS47(共阳),74LS48(共阴),CC4511(共阴)等,本实验系采用CC4511 BCD码锁存/七段译码/驱动器。驱动共阴极LED数码管。 图6-6为CC4511引脚排列 其中图6-6 CC4511引脚排列 A、B、C、D—BCD码输入端 a、b、c、d、e、f、g—译码输出端,输出“1”有效,用来驱动共阴极LED数码管。 LT—测试输入端,LT=“0”时,译码输出全为“1”

基于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-=m n 信息段: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)循环码是一种无权码,循环码编排的特点为相邻的两个数码之间符合卡诺中的邻接条件,即相邻数码间只有一位码元不同,因此它具有一个很好的优点是它满足邻接条件,没有瞬时错误(在数码变换过程中,在速度上会有快有慢,中间经过其他一些数码形式,即为瞬时错误)。 3)码字的循环特性,循环码中任一许用码经过牡环移位后,所得到的码组仍然是许用码组。

循环码编译码matlab程序

循环码编译码matlab程序 循环码编码程序 function [ C ] = cyclic_encoder( Si ) %C为循环编码的输出编码结果 %对x^8+1进行模2因式分解得到:x^8+1=(x^3+x^2+x+1)*(x^5+x^4+x+1) y=size(Si,2);%y表示Si的列数,即输入码元的个数 M=ceil(y/5);%将信息码元分成M帧,一帧5个信息码元 n=8;%循环编码的一帧码长 k=5;%信息位的个数 r=n-k;%监督位的个数 gx=[1,1,1,1];%(8,5)循环码的生成多项式g(x)=x^3+x^2+x+1 Ai=zeros(1,8*M);%Ai用来存放所输入的码元经过循环编码后的码字 Axi=zeros(1,8);%Axi用来表示循环编码后的一帧的编码输出码字 mi=zeros(1,5);%mi用来存放每一帧的信息码元 for i=1:M for j=1:5 mi(j)=Si(j+(i-1)*5); end Axi(4:8)=mi(1:5); Axi=circshift(Axi',-r)';%实现(x^(n-k))*m(x),其中m(x)的系数由mi决定 [qx,rx]=deconv(Axi,gx);%实现((x^(n-k))*m(x))/g(x),得到商q(x)和余数r(x) Axi=Axi+rx;%实现Axi(x)=Axi(x)+r(x),得到的Axi就是循环编码的编码输出码字 Ai(8*i-4:8*i)=Axi(1:5); Ai(8*i-7:8*i-5)=Axi(6:8); end %for循环是为了实现模2相加,使循环编码的输出码字Ai中只有0,1 for i=1:8*M if rem(abs(Ai(i)),2)==0 Ai(i)=0; else Ai(i)=1; end end C=Ai;%循环编码的输出码字C=Ai end

循环码的编码方法研究

摘要本文对循环码的编码方法进行了深入的分析和探讨,循环码具有很高的可靠性,在通信、军事等领域应用非常广泛。关键词循环码编码中图分类号:G202文献标识码:A 0 引言循环码是线性分组码最重要的子集。它除了具有线性分组码的一般性质外,还有许多特殊的性质,这些性质有助于按照要求的纠错能力系统地构造这类码,并且简化译码算法。循环码还有易于实现的特点,很容易用带反馈的移位寄存器实现其硬件。正是由于循环码具有码的代数结构清晰、检纠错能力强、编译码易于实现,具有很高的可靠性等特点,因此在通信、军事等领域应用非常广泛。 1 循环码的相关概念 1.1 循环码的特性表1给出了(7,3)循环码的所有码字,我们可以直观的看出循环码具有如下特性:(1)封闭性。(线性性):任何许用码组的线性和还是许用码组。(2)循环性:任何许用的码组循环移位后的码组还是许用码组。表1 (7,3)循环码 1.2 循环码的码多项式用码多项式来表示来表示循环码,可以方便的利用代数理论对其进行研究。若许用码字为C = (,,…,):,码多项式可表示为:C(x) = … c1x c0其中:对于二元码组,多项式的每个系数是0或者1; x仅是码元位置的标志,并不关心x的取值。利用码多项式可以方便的表示循环移位特性。若C(x) 是一个长为n的许用码字,则xi C(x) (左乘xi)在按模xn 1运算下,亦是一个许用码字,也就是:xiC(x) = Ci(x) (模xn 1),正是C(x) 代表的码组向左循环移位次的结果。 1.3 循环码的生成多项式和生成矩阵循环码的生成多项式g(x)是一个常数项为1,且能除尽xn 1的r = n - k次多项式;循环码中其它码多项式都是g(x)的倍式。由生成多项式可以表示出生成矩阵G(x)为: 1.4 循环码的监督多项式和监督矩阵利用循环码的特点来确定监督矩阵H, 由于循环码中是的因式,因此可令:h(x) == xk hk-1xk-1 … h1x 1,这里称为监督多项式。与G(x)相对应,监督矩阵表示为: 其中:h*(x)是h(x)逆多项式,h*(x) = xk h1xk-1 h2xk-2 … hk-1x 1。 2 循环码编码的具体实现方法 2.1 利用生成矩阵编码 2.1.1 求解生成多项式根据g(x)的特性,g(x)是xn 1的一个r次因式。因此,先对xn 1进行因式分解,找到它的r次因式。以(7,3)循环码为例进行分析: 第一步:对x7 1进行因式分解得:x7 1 = (x 1)(x3 x2 1)(x3 x 1) 第二步:构造生成多项式g(x),即找r = n - k = 4次因子。不难看出,这样的因子有两个,即: (x 1)·(x3 x2 1) = x4 x2 x 1 (x 1)·(x3 x 1) = x4 x3 x2 1 2.1.2 编码由g(x)得到生成矩阵为: 循环码是线性码的一种,根据线性码编码的特点,生成矩阵确定,码组也就确定了。 C = mG 其中,C是编码之后的码字,m是信息码元序列,G是生成矩阵。 2.2 利用监督矩阵编码由h*(x)得到监督矩阵为: 根据线性码编码的特点,监督矩阵确定,码组也就确定了。 HCT = 0其中,C是编码之后的码字,H是监督矩阵。 2.3 循环码的系统码编码方法设要产生(n,k)循环码,m(x)表示信息多项式,编码步骤如下: (1)用xn-k乘m(x)。根据码多项式的特点,左乘xn-k实际上是把信息位左移位(n-k),即在信息码后加上(n-k)个“0”。例如,信息码为110,它相当于m(x) = x2 x。当n-k = 7-3 = 4时, xn-k·m(x) = x6 x5,它相当于1100000。而希望的到得系统循环码多项式应当是C(x) = xn-k·m(x) r(x) (2)求r(x)。由于循环码多项式C(x)都可以被g(x)整除,也就是: == (3)求C(x),C(x) = xn-k·m(x) r(x) 例如,对于(7,3)循环码,若选用g(x) = x4 x2 x 1,信息码110时,则: = ,求得r(x) = x2 1,这时的编码输出为:1100101。 3 结论本文深入系统地分析了循环码的编码技术。随着数字技术的高速发展,循环码纠错技术已经广泛应用于各种通信系统中。其编码和译码都可以通过简单的反馈移位寄存器来完成,实现简单,纠错能力强 ,可以降低误码率,保证数据传输的可靠性,大大提高通信质量。

基于的循环码的编译仿真

Equation Chapter 1 Section 1 Harbin Institute of Technology 信息论与编码实验报告基于MATLAB的(7,4)循环码的编译仿真 院系:电子与信息工程学院 姓名:周才发 学号:13S005051 班级:通信二班 哈尔滨工业大学

基于MATLAB的(7,4)循环码的编译仿真 (电子与信息工程学院13S005051 周才发序号:15) 1、循环码简介 随着社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发展,以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期。随着经济文化水平的显着提高,人们对生活质量及工作软件的要求也越来越高。在计算机通信信息码中循环码是线性分组码的一个重要子集,是目前研究得最成熟的一类码。它有许多特殊的代数性质,它使计算机通信以一种以数据通信形式出现,实现了在计算机与计算机之间或计算机与终端设备之间进行有效的与正确地信息传递,它使得现代通信的可靠性与有效性实现了质的飞跃。它是现代计算机技术与通信技术飞速发展的产物,在日常生活通信领域、武器控制系统等领域都被广泛应用。 纠错码(error correcting code),在传输过程中发生错误后能在收端自行发现或纠正的码。仅用来发现错误的码一般常称为检错码。为使一种码具有检错或纠错能力,须对原码字增加多余的码元,以扩大码字之间的差别,即把原码字按某种规则变成有一定剩余度(见信源编码)的码字,并使每个码字的码之间有一定的关系。关系的建立称为编码。码字到达收端后,可以根据编码规则是否满足以判定有无错误。当不能满足时,按一定规则确定错误所在位置并予以纠正。纠错并恢复原码字的过程称为译码。检错码与其他手段结合使用,可以纠错。 纠错编码又称信道编码,它与信源编码是信息传输的两个方面。它们之间存在对偶的关系。应用信道译码直接对一些自然信息进行处理,可以去掉剩余度,以达到压缩数据的目的。为了使一种码具有检错或纠错能力,必须对原码字增加多余的码元,以扩大码字之间的差别,使一个码字在一定数目内的码元上发生错误时,不致错成另一个码字。准确地说,即把原码字按某种规则变成有一定剩余度的码字,并使每个码字的码元间有一定的关系。关系的建立称为编码。码字到达收端后,用编码时所用的规则去检验。如果没有错误,则原规则一定满足,否则就不满足。由此可以根据编码规则是否满足以判定有无错误。当不能满足时,在可纠能力之内按一定的规则确定错误所在的位置,并予以纠正。纠错并恢复原码字的过程称为译码;码元间的关系为线性时,称为线性码;否则称为非线性码。检错码与其他手段结合使用,可以纠错。检错反馈重发系统(ARQ系统)就是一例。 循环码是线性分组码的一种,所以它具有线性分组码的一般特性,此外还具 有循环性。循环码的编码和解码设备都不太复杂,且检(纠)错能力强。它不但可以检测随机的错误,还可以检错突发的错误。(),n k循环码可以检测长为n k-或更短的任何突发错误,包括首尾相接突发错误。循环码是一种无权码,循环码编排的特点是相邻两个数码之间符合卡诺图中的邻接条件,即相邻两个数码之间只有一位码元不同,码元就是组成数码的单元。符合这个特点的有多种方案,但循环码只能是表中的那种。循环码的优点是没有瞬时错误,因为在数码变换过程中,在速度上会有快有慢,中间经过其它一些数码形式,称它们为瞬时错误。这在某

编码器和译码器实验报告

译码器、编码器及其应用 一、实验目的 (1) 掌握中规模集成译码器的逻辑功能和使用方法; (2) 熟悉掌握集成译码器和编码器的应用; (3) 掌握集成译码器的扩展方法。 二、实验设备 数字电路实验箱,74LS20,74LS138。 三、实验内容 (1) 74LS138译码器逻辑功能的测试。将74LS138输出??接数字实验箱LED 管,地址输入接实验箱开关,使能端接固定电平(或GND)。电路图如Figure 1所示: Figure 2 ??????????????时,任意拨动开关,观察LED显示状态,记录观察结果。 ??????????????时,按二进制顺序拨动开关,观察LED显示状态,并与功能表对照,记录观察结果。 用Multisim进行仿真,电路如Figure 3所示。将结果与上面实验结果对照。

Figure 4 (2) 利用3-8译码器74LS138和与非门74LS20实现函数: ?? 四输入与非门74LS20的管脚图如下: 对函数表达式进行化简: ?? ?? A ? ??????????? ???? 按Figure 5所示的电路连接。并用Multisim进行仿真,将结果对比。 Figure 6

(3) 用两片74LS138组成4-16线译码器。 因为要用两片3-8实现4-16译码器,输出端子数目刚好够用。 而输入端只有 A、、三个,故要另用使能端进行片选使两片138译码器 进行分时工作。而实验台上的小灯泡不够用,故只用一个灯泡,而用连接灯泡的导线测试?,在各端子上移动即可。在multisim中仿真电路连接如Figure 7所示(实验台上的电路没有接下面的两个8灯LED): Figure 8 四、实验结果 (1) 74LS138译码器逻辑功能的测试。 当输入 A时,应该是输出低电平,故应该第一个小灯亮。实际用实验台测试时,LE0灯显示如Figure 9所示。当输入 A时,应该是输出低电平,故理论上应该第二个小灯亮。实际用实验台测试时,LE0灯显示如Figure 6所示。 Figure 10

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

实验6-BCH循环码的编码与译码的matlab实现

实验6 BCH循环码的编码与译码 一、实验内容 用VC或Matlab软件编写循环BCH码的编码与译码程序。利用程序对教科书的例题做一个测试。 二、实验环境 1.计算机 2.Windows 2000 或以上 3.Microsoft Visual C++ 或以上 4.Matlab 或以上 三、实验目的 1.通过BCH循环码的编码与译码程序的编写,彻底了解并掌握循环BCH的编码与译码原理 2.通过循环BCH码的编码与译码程序的编写,提高编程能力。 四、实验要求 1.提前预习实验,认真阅读实验原理以及相应的参考书。 2.对不同信道的进行误码率分析。特别是对称信道,画出误码性能图。即信道误码率与循环汉明码 之间的关系。 3.认真填写实验报告。 五、实验原理 1.循环BCH的编码与译码原理(略) 2.循环BCH的程序实现。 六、实验步骤 文件 function bch_en_decode() code=bch155 code=code+randerr(5,15,1:3); code=rem(code,2); code=gf(code) %随机产生1-3位错误 decode=debch155(code) end function decode=debch155(code) code=gf(code); M=4; code = gf,M); [m , n]=size(code);decode=[]; code1=[]; for i=1:m ;code1=code(i,:); M=;T2=6;N=15; S = code1* ((gf(2,M,).^([N-1:-1:0]'*([1:T2]))); LambdaX = gf([1 zeros(1,T2)],M,;

实验2 译码器及其应用

实验2 译码器及其应用 一实验目的 1、掌握中规模集成译码器的逻辑功能和使用方法。 2、熟悉数码管使用。 二实验原理 译码器是一个多输入、多输出的组合逻辑电路。他的作用是把给定的代码进行“翻译”,变成相应的状态,使输出通道中相应的一路有信号输出。 1、3线—8线译码器74LS138 图5-6-1 表5-6-1 二进制译码器实际上也是负脉冲输出的脉冲分配器。若利用使能端中的一个输入端输入数据信息,器件就成为一个数据分配器(又称多路分配器),如图5-6-2所示。

图 利用使能端方便地将两个3---8译码器组合成一个4---16译码器,如图5-6-4所示。 图5-6-4

2数码显示译码器 A、七段发光二极管(LED)数码管 图5-6-5 B、BCD码七段译码驱动器 本实验采用CC4511 BCD码锁存/七段译码/驱动器。驱动共阴级LED数码管。 如图5-6-6所示。Array A0、A1、A2、A3----BCD 码输入端; Ya\Yb\Yc\Yd\Ye\Yf\Yg--- -译码输出端,输出“1” 有效; LT·---测试输入端; BI·---消隐输入端; LE---锁定端。 表5-6-2为CC4511功能表。译码器还有拒伪码功能,当输入码超过1001时,输 出全为“0”,数码管熄灭。

下图是CC4511和LED数码管连接图: 三实验设备 1、+5V直流电源 2、连续脉冲源 3、逻辑电平开关 4、逻辑电平显示器 5、拨码开关组 6、译码显示器 7、74LS138*2 CC4511 四实验内容 1、数码拨码开关的使用。 2、74LS138译码器逻辑功能测试。 3、用74LS138构成时序脉冲分配器 4、用两片74LS138组合成一个4线—16线译码器,并进行实验。

最新——循环码(9,3)码

目录 目录 (1) 一、摘要: (2) 二、关键字: (2) 三、基本概念: (2) 四、循环码的多项式描述: (3) 4.1 生成多项式g(x)及生成矩阵G (3) 4.2 系统循环码 (4) 4.3 循环码的编码: (5) 4.4 检错纠错能力 (6) 五、编码器.译码器原理图: (6) 5.1 编码器原理图 (6) 5.2 译码器原理图 (8) 六、循环码和线性分组码、Hamming码的区别、联系: (12) 6.1 线性分组码 (12) 6.2 循环码 (12) 6.3 汉明码hamming (13) 七、循环码的MATLAB仿真: (13) 八、参考文献: (16) 九、参与人员: (16)

循环码(9,3)码课程设计 一、摘要: 本报告详细给出了循环码的定义以及由生成多项式求解生成矩阵和系统生成矩阵的过程,并在Matlab 环境下写出了循环码的编码器和解码器代码,实现了编码和译码功能。分析和讨论了此码发现错误、纠正错误的能力,并讨论了其与线性分组码、Hamming 码等信道编码的区别与联系。 二、关键字: 循环码 编码 译码 检错 纠错 Matlab 三、基本概念: 更好的设计和实现线性分组码的方法是引入特定的数学结构来界定某一类线性分组码。循环码即是采用循环移位特性界定的一类线性分组码。 循环码定义:设C 使某(n,k)线性分组码的码字集合,如果对任何 C c c c C n n ∈=--),,,(021 ,它的循环移位),,,(1032)1(---=n n n c c c c C 也属于C ,则称该(n,k )码为循环码。 该码在结构上有另外的限制,即一个码字任意循环移位的结果仍是一个有效码字。其特点是:(1)可以用反馈移位寄存器很容易实现编码和伴随式的计算;(2)由于循环码有很多固有的代数结构,从而可以找

译码器实验报告

译码器实验报告 实验三译码器及其应用 一、实验目的 1、掌握译码器的测试方法。 2、了解中规模集成译码器的功能,管脚分布,掌握其逻辑功能。 3、掌握用译码器构成 组合电路的方法。4、学习译码器的扩展。 二、实验仪器 1、数字逻辑电路实验板1块 2、74hc138 3-8线译码器2片 3、74hc20 双4输入与非 门1片 三、实验原理 1、中规模集成译码器74hc138 74hc138是集成3线-8线译码器,

在数字系统中应用比较广泛。图3-1是其引脚排列。其中a2 、a1 、a0 为地址输入端,0y~7y为译码输出端,s1、2s 、3s 为使能端。74hc138真值表如下:74hc138引脚图为:74hc138工作原理为:当s1=1,s2+s3=0时,电路完成译码功能,输出低电平有效。其 中: 2、译码器应用 因为74hc138 三-八线译码器的输出包括了三变量数字信号的全部八种组合,每一个输出端表示一个最小项,因此可以利用八条输出线组合构成三变量的任意组合电路。 四、实验内容 1、译码器74hc138 逻辑功能测试(1)控制端功能测试测试电路如图:按上表所示条件输入开关状态。观察并记录译码器输出状态。led指示灯亮为0,灯不 亮为1。

(2)逻辑功能测试 将译码器使能端s1、2s 、3s 及地址端a2、a1、a0 分别接至逻辑电平开关输出口,八个输出端y7 ?????y0依次连接在逻辑电平显示器的八个输入口上,拨动逻辑电平开关,按 下表逐项测试74hc138的逻辑功能。 2、用74hc138实现逻辑函数y=ab+bc+ca 如果设a2=a,a1=b,a0=c,则函数y 的逻辑图如上所示。用74hc138和74hc20各一块 在实验箱上连接下图线路。并将测试结果下面的记录表中。 3、用两个3线-8线译码器构成4线-16线译码器。利用使能端能方便地将两个3/8译码器组合成一个4/16译码器,如下图所示。 五、实验结果记录:2、74hc138实现逻辑函数y=ab+bc+ca,实验结果记录: 六、实验注意事项

(7,4)循环码的编码和译码

(7,4)循环码的编码译码 编码的实验原理: 根据循环码的代数性质建立系统编码的过程,可以把消息矢量用如下多项式表示: 要编码成系统循环码形式,把消息比特移入码字寄存器的最右边k 位,而把监督比特加在最左边的n-k 个中,则要用k n x -乘以m(x)得到 k n x - m(x)= k n x - m(x)= q(x) g(x)+ p(x),其中p(x)可以表示为 p(x)= ,则p(x)+ k n x - m(x) = + 另U(x)= p(x)+ k n x - m(x),则U=(0p ,1p ,2p ,·,1--k n p ,0m ,1m ,·,1-k m )。 本实验根据以上原理,用matlab 实现书上例6.8系统形式的循 环码,生成多项式为g(x)= (7,4)循环码的编码的程序如下:clear; clc; a=[1 0 1 1]; %高次项系数在前的生成多项式 Gx=[1 0 1 1]; %将数组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); 12211...)(m x m x m x m x m k k k k ++++=----k n k n n k n k x m x m x m x m -+-----++++0112211 (011) 1...p x p x p k n k n +++----0 111...p x p x p k n k n +++----k n k n n k n k x m x m x m x m -+-----++++0112211 (3) 1x x ++

实验二 译码器及其应用

实验二译码器及其应用 一、实验目的 1、掌握3 -8线译码器、4 -10线译码器的逻辑功能和使用方法。 2、掌握用两片3 -8线译码器连成4 -16线译码器的方法。 3、掌握使用74LS138实现逻辑函数和做数据分配器的方法。 二、实验原理 译码是编码的逆过程,它的功能是将具有特定含义的二进制码进行辨别,并转换成控制信号,具有译码功能的逻辑电路称为译码器。译码器在数字系统中有广泛的应用,不仅用于代码的转换、终端的数字显示,还用于数据分配,存贮器寻址和组合控制信号等。不同的功能可选用不同种类的译码器。 下图表示二进制译码器的一般原理图: 它具有n个输入端,2n个输出端和一个使能输入端。在使能输入端为有效电平时,对应每一组输入代码,只有其中一个输出端为有效电平,其余输出端则为非有效电平。每一个输出所代表的函数对应于n个输入变量的最小项。二进制译码器实际上也是负脉冲输出的脉冲分配器,若利用使能端中的一个输入端输入数据信息,器件就成为一个数据分配器(又称为多路数据分配器)。 1、3-8线译码器74LS138 它有三个地址输入端A、B、C,它们共有8种状态的组合,即可译出8个输出信号Y0~Y7。它还有三个使能输入端E1、E2、E3。功能表见表1,引脚排列见图2。 表1 74LS138的功能表

三、实验设备与器材 1、数字逻辑电路实验箱 2、数字万用表 3、双踪示波器 3、芯片74LS138两片,74LS42、74LS20各一片 四、实验内容及实验步骤 1、74LS138译码器逻辑功能测试 在数字逻辑电路实验箱IC插座模块中找一个DIP16的插座插上芯片74LS138,并在DIP16插座的第8脚接上实验箱的地(GND),第16脚接上电源+5V(VCC)。将74LS138的输出端Y0~Y7分别接到8个发光二极管上(逻辑电平显示单元),输入端接拨位开关输出(逻辑电平输出单元),逐次拨动开关,根据发光二极管显示的变化,测试74LS138的逻辑功能。 2、两片74LS138组合成4线-16线译码器 按下图连线: 将16个输出端接逻辑电平显示(发光二极管),4个输入端接逻辑电平输出(拨位开关),逐项测试电路的逻辑功能。 3、用74LS138实现逻辑函数和做数据分配器 (1)实现逻辑函数

(7,4)循环码的编码和译码教学内容

(7,4)循环码的编码 和译码

(7,4)循环码的编码译码 编码的实验原理: 根据循环码的代数性质建立系统编码的过程,可以把消息矢量用如下多项式表示: 要编码成系统循环码形式,把消息比特移入码字寄存器的最右边k 位,而把监督比特加在最左边的n-k 个中,则要用k n x -乘以m(x)得到 k n x - m(x)= k n x - m(x)= q(x) g(x)+ p(x),其中p(x)可以表示为 p(x)= ,则p(x)+ k n x - m(x) = + 另U(x)= p(x)+ k n x - m(x),则U=(0p ,1p ,2p ,···,1--k n p ,0m , 1m ,···,1-k m )。 本实验根据以上原理,用matlab 实现书上例6.8系统形式的循环码,生成多项式为g(x)= (7,4)循环码的编码的程序如下:clear; clc; a=[1 0 1 1]; %高次项系数在前的生成多项式 Gx=[1 0 1 1]; %将数组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 12211...)(m x m x m x m x m k k k k ++++=----k n k n n k n k x m x m x m x m -+-----++++0 112211 (011) 1...p x p x p k n k n +++----0111...p x p x p k n k n +++----k n k n n k n k x m x m x m x m -+-----++++0112211 (3) 1x x ++

实验2 译码器及其应用复习课程

实验2译码器及其应 用

实验2 译码器及其应用 10数计计科2班 丁琴(41)林晶(39) 2011 .11.2 一、实验目的 1、掌握中规模集成译码器的逻辑功能和使用方法 2、熟悉数码管的使用 二、实验原理 译码器是一个多输入、多输出的组合逻辑电路。它的作用是把给定的代码进行“翻译”,变成相应的状态,使输出通道中相应的一路有信号输出。译码器在数字系统中有广泛的用途,不仅用于代码的转换、终端的数字显示,还用于数据分配,存贮器寻址和组合控制信号等。不同的功能可选用不同种类的译码器。 译码器可分为通用译码器和显示译码器两大类。前者又分为变量译码器和代码变换译码器。 1、变量译码器(又称二进制译码器),用以表示输入变量的状态,如2线-4线、3线-8线和4线-16线译码器。若有n个输入变量,则有2n个不同的组合状态,就有2n 个输出端供其使用。而每一个输出所代表的函数对应于n个

输入变量的最小项。以3线-8线译码器74LS138为例进行分析,图5-6-1(a)、(b)分别为其 逻辑图及引脚排列,其中 A2 、A1 、A0 为地址输入端,0Y~7Y为译码输出端,S1、2S、3S为使能端。其工作原理为: Yi=S1 S2 S3 mi (1)当S2=S3=0,S1=data时 若m0=1,A2=A1=A0=0时则Y0 =S1= data 改变A2、A1、A0使得data出现在不同的输出端 (2)当S1=1, S2=0,S3=data时 若m0=1,则Y0=data; 改变A2A1A0使得data出现在不同的输出端 对照表5-6-1就可判断其功能是否正常。 图5-6-1 3-8线译码器74LS138逻辑图及引脚排列 表5-6-1

循环码

实验、循环码编译码系统 一、 实验目的: 1、熟悉循环码的编译码原理; 2、掌握Quartus Ⅱ开发软件的运用,在该软件下熟练的运用多种输入方式完成各种电路设计的要求; 3、初步掌握VHDL 语言,能够运用该语言编写简单的程序,完成设计要求; 4、熟悉对PLD 的下载和仿真,学会观察测试结果的正确性; 5、学会运用各方面知识,设计并实现一个系统。 二、 实验要求: 使用Quartus Ⅱ软件,用m 序列发生器作为信号源设计循环码编译码,速率可自定,并在实验箱上调试出编码和译码波形,比较信号源和译码后的信号波形。 三、实验设备: Quartus II 软件、Modelsim 软件、FPGA 实验箱、微机1台、示波器1台 四、实验原理: 1、 循环码的编码 循环码最大的特点就是码字的循环特性,所谓循环特性是指:循环码中任一许用码组经过循环移位后,所得到的码组仍然是许用码组。若(1n a - 2n a -…… 1a 0a )为一循环码组,则(2n a - 3n a -……0a 1n a -)、(3n a - 4n a -……1n a - 2n a -)、……还是许用码组。也就是说,不论是左移还是右移,也不论移多少位,仍然是许用的循环码组。表1-2给出了一种(7,3)循环码的全部码字。 可以将循环码码组用代数多项是来表示,这个多项式被称为码多项式,对于表1-2中的任一码组可以表示为: 654326543210()A x a x a x a x a x a x a x a =++++++ (1-4) 表1-2一种(7,3)循环码的全部码字

在码多项式运算中采用按模运算法则。若一任意多项式F (x )被一个n 次多项式N (x )除,得到商式Q (x )和一个次数小于n 的余式R (x ),也就是: ()() ()()() F x R x Q x N x N x =+ (1-5) 则可以写为:F (x )≡R (x )(模N (x ))。 这时,码多项式系数仍按模2运算,即只取值0和1,假设:计算x 4+x 2+1除以x 3+1的值可得: 42233 11 11 x x x x x x x ++++=+++ (1-6) 循环码的生成多项式和生成矩阵:(全0码字除外)称为生成多项式,用g (x )表示。 可以证明生成多项式g (x )具有以下特性: (1)g (x )是一个常数项为1的r=n-k 次多项式; (2)g (x )是1n x +的一个因式; (3)该循环码中其它码多项式都是g (x )的倍式。 一旦生成多项式g (x )确定以后,该循环码的生成矩阵就可以确定,进而该循环码的所有码字就可以确定。 以表1-2的(7,3)循环码为例,来构造它的生成矩阵和生成多项式,这个循环码主要参数为,n =7,k =3,r =4。从表中可以看到,其生成多项式可以用第1码字构造: 421()()1g x A x x x x ==+++ (1-7) 2643253242()()()()1x g x x x x x G x xg x x x x x g x x x x ???? +++???? ==+++????????+++???? (1-8) 一个较简单的系统循环码编码方法:设要产生(n ,,k )循环码,m (x )表示信息多项式,则其次数必小于k ,而()n k x m x -?的次数必小于n ,用()n k x m x -?除以g (x ), 可得余数r (x ),r (x )的次数必小于(n-k ),将r (x )加到信息位后作监督位,就得到了系统 循环码。下面就将以上各步处理加以解释。 (1)用n k x -这一运算实际上是把信息码后附加上(n-k )个“0”。例如,信息码为110, 它相当于2 ()m x x x =+。当n-k =7-3=4时,65()n k x m x x x -?=+,它相当于1100000。而希望的到得系统循环码多项式应当是()()()n k A x x m x r x -=?+。 (2)求r (x )。由于循环码多项式A (x )都可以被g (x )整除,也就是:

matlab(7-4)汉明码和(7-4)循环码的编程设计

二、创新实验设计 创新实验一:(7,4)汉明码的编码与译码实现 1、实验目的 实现(7,4)汉明码的编码与译码,通过这次实验不但加深了对汉明码编码和译码原理了解,而且对线性分组码有所了解。 2、实验原理 线性分组码的构造方法比较简单、理论较为成熟,应用比较广泛。汉明码是一种能够纠正一个错码的效率比较高的线性分组码,下面以(7,4)码为例就汉明码的编码与译码分别进行介绍: (1)编码原理 一般来说,若汉明码长为n ,信息位数为k ,则监督位数r=n-k 。若希望用r 个监督位构造出r 个监督关系式来指示一位错码的n 种可能位置,则要求 21r n -≥或211r k r -≥++ (1) 设汉明码(n,k )中k=4,为了纠正一位错码,由式(1)可知,要求监督位数r ≥3。若取r=3,则n=k+r=7。这样就构成了(7,4)码。用6543210 a a a a a a a 来表 示这7个码元,用 123 s s s 的值表示3个监督关系式中的校正子,则 123 s s s 的值与 错误码元位置的对应关系可以规定如表1所列。 表2.1 校正子和错码位置的关系 则由表1可得监督关系式: 16542 s a a a a =⊕⊕⊕ ()2 26531s a a a a =⊕⊕⊕ ()3 36430s a a a a =⊕⊕⊕ ()4 在发送端编码时,信息位6543 a a a a 的值决定于输入信号,因此它们是随机的。 监督位 2 a 、 1 a 、 a 应根据信息位的取值按监督关系来确定,为使所编的码中无

错码,则123,,S S S 等于0,即 654265316 43000(5)0 a a a a a a a a a a a a ⊕⊕⊕=?? ⊕⊕⊕=??⊕⊕⊕=? 方程组(5)可等效成如下矩阵形式 6543210111010001101010010110010a a a a a a a ?? ???? ????????????=???????????????? ???????? (6) 式(6)可简化为0T T HA =,H 为监督矩阵,则由式(6)可得到监督矩阵 11101001101010=[P I ] (7)1011001r H ?? ??=?? ???? M 因为生成矩阵'=[I Q]=[I ]k k G P M ,所以由(7)得生成矩阵G 如下: []k 10001 1101001 10[']00101010001011k G I Q I P ????? ?===?? ? ??? 然后利用信息位和生成矩阵G 相乘产生整个码组,即有 [][]65432106543=(8)A a a a a a a a a a a a G = 其中A 为整个码组矩阵,6543a a a a 是信息位。 根据上述原理可以得到(7,4)汉明码的整个码组。 (2)译码与检错、纠错原理 当数字信号编码成汉明码后,由于信道噪声的存在,使得经过信道后的汉明码会发生差错,使得接收端接收到错码,因此需要多错码进行纠正,以提高通信系统的抗干扰能力及可靠性。下面分析纠错译码原理。 设B 为接收码组,它是一行7列的矩阵,即1234567=[]B b b b b b b b ,B 中可能含有

实验三译码器及其应用、数据选择器及其应用

实验三译码器及其应用、数据选择器及其应用 一、实验目的 1 ?掌握采用中规模集成器件进行组合逻辑电路设计、电路连接及测试的方法. 2 ?用实验验证所设计电路的逻辑功能. 二、实验设备与器件 1.电子学实验装置 2.集成块74LS20、74LS00、74LS138、74LS151、74LS153。 三、实验原理 中规模集成器件多数是专用的功能器件,具有某种特定的逻辑功能,采用这些功能器件实现组合逻辑函数,基本 方法是采用逻辑函数对比法. 中规模集成器件多数都带有控制端(片选端),例如译码器74LS138有三个附加控制端S B、S C和S A,当S A=1、 S B= S C =0时,译码器才被选通工作,否则,译码器被禁止,所有的输出端被封锁在高电平?利用片选可将多片连接 起来以扩展译码器的功能. 在一般情况下,使用译码器和附加的门电路实现多输出逻辑函数较方便,使用数据选择器实现单输出逻辑函数较方便,当逻辑函数输出为输入变量相加时,则采用全加器实现较为方便. 1 ?译码器 一个n变量的译码器的输出包含了n变量的所有最小项.例如3线/8线译码器(74LS138)的8个输出包含了3个变 量的全部最小项的译码?参见模拟电子技术基础教材中3线/8线译码器功能表. 用n变量译码器加上输出与非门电路,就能获得任何形式的输入变量不大于n的组合逻辑电路. 2 ?数据选择器 一个n个地址端的数据选择器, 具有2n个数据选择的功能.例如,数据选择器74LS151, n=3,可完成八选一的功能?参见附录中八选一数据选择器(74LS151)的真值表.由真值表可写出: 丫A2AA0D0 A2AA0D1A 2 Al A o D 2 A? A1A0D 3 A2A A0D 4 A2A A0D 5 A2 A A) A2AA0D7 数据选择器又称多路开关,其功能是把多路并行传输数据选通一路送到输出线上. 四、实验内容 1 ?三输入变量译码器功能测试 地址输入端AA1A0是一组三位二进制代码,其中A权最高,A o权最低,按实验电路图3-1接线,将实验结果填入

相关文档