当前位置:文档之家› (实验三)BCD码转换为二进制码实验报告

(实验三)BCD码转换为二进制码实验报告

(实验三)BCD码转换为二进制码实验报告
(实验三)BCD码转换为二进制码实验报告

实验三BCD码转换为二进制码

一、实验目的

1、掌握BCD码到二进制码的转换方法。

2、用于BCD码转入信号处理。

二、实验内容

对于内存中给定的几个十进制BCD码数转换为二进制数。

三、实验程序框图

四、实验步骤

脱机模式:

⑴在P.态下,按SCAL键,然后在内存单元4000H~4006H中依次写入四个十进制数(12、

34、56、78)的BCD码,即输入01、02、03、04、05、06、07,按MON键,返回P状态。

⑵在P.态下,输入2D40,按EXEC键。

⑶复位RST键,查看结果在4100~4107中,其内容应为:0C,00,22,00,38,00,4E,00。

联机模式:

(1)在内存单元4000H~4006H中依次写入四个十进制数(12、34、56、78)的BCD码,即输入01、02、03、04、05、06、07,按MON键,返回P状态。

(2)在PC机和实验系统联机状态下,运行该实验程序,可用鼠标左键单击菜单栏“文件”

或工具栏“打开图标”,弹出“打开文件”的对话框,然后打开8kAsm文件夹,点击S3.ASM 文件,单击“确定”即可装入源文件,再单击工具栏中编译,即可完成源文件自动编译、装载目标代码功能,再单击“调试”中“连续运行”或工具图标运行,即开始运行程序。

(3)按“系统复位”键,查看结果在4100~4107中,其内容应为:0C,00,22,00,38,00,4E,00。

五、实验程序清单

X:\DICE-8086K3微机原理与接口实验箱CDROM\CODE\86kasm\S3.ASM

CODE SEGMENT ;S3.ASM ,BCD 码转换为2 进制码ASSUME CS:CODE

ORG 2D40H

START: MOV CX,0004H ;输入数据长度。[4000]:01,02..

MOV DI,4000H ;结果存放在 [4100]: 0C,00,.

CON1: MOV AL,[DI]

ADD AL,AL ;*2

MOV BL,AL

ADD AL,AL ;*2

ADD AL,AL ;*2

ADD AL,BL ;*10

INC DI

MOV AH,00

ADD AL,[DI] ;BCD码个位,十位相加

MOV [DI+0FFH],AX ;存结果

INC DI ;结果地址加1

LOOP CON1 ;CX不为零继续

JMP $

CODE ENDS

END START

基于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)码字的循环特性,循环码中任一许用码经过牡环移位后,所得到的码组仍然是许用码组。

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

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

实验五 时序逻辑电路实验报告 计数器

实验五 时序逻辑电路实验 一、实验目的 1.掌握同步计数器设计方法与测试方法。 2.掌握常用中规模集成计数器的逻辑功能和使用方法。 二、实验设备 1.直流稳压电源、信号源、示波器、万用表、面包板 2.74LS190、74LS393、74LS04 3.1kΩ电阻、发光二极管 三、实验原理 1.计数器 计数器不仅可用来计数,也可用于分频、定时和数字运算。在实际工程应用中,一般很少使用小规模的触发器组成计数器,而是直接选用中规模集成计数器。 2.(1) 四位二进制(十六进制)计数器74LS161(74LS163) 74LSl61是同步置数、异步清零的4位二进制加法计数器,其功能表见表5.1。 74LSl63是同步置数、同步清零的4位二进制加法计数器。除清零为同步外,其他功能与74LSl61相同。二者的外部引脚图也相同,如图5.1所示。 表5.1 74LSl61(74LS163)的功能表 3.集成计数器的应用——实现任意M进制计数器 一般情况任意M进制计数器的结构分为3类,第一类是由触发器构成的简单计数器。第二类是由集成二进制计数器构成计数器。第三类是由移位寄存器构成的移位寄存型计数器。第一类,可利用时序逻辑电路的设计方法步骤进行设计。第二类,当计数器的模M较小时用一片集成计数器即可以实现,当M较大时,可通过多片计数器级联实现。两种实现方法:反馈置数法和反馈清零法。第三类,是由移位寄存器构成的移位寄存型计数器。 4.实验电路: 十进制计数器

六进制扭环计数器 具有方波输出的六分频电路 图5.1 74LS161(74LS163)外部引脚图 四、实验内容及步骤 1.集成计数器实验 (1)按电路原理图使用中规模集成计数器74LS163和与非门74LS00,连接成一个同步置数或同步清零十进制计数器,并将输出连接至数码管或发光二极管。然后使用单次脉冲作为触发输入,观察数码管或发光二极管的变化,记录得到电路计数过程和状态的转换规律。 (2)根据电路图,首先用D触发器74LS7474构成一个不能自启的六进制扭环形计数器,同样将输出连接至数码管或发光二极管。然后使用单次脉冲作为触发输入,观察数码管或发光二极管的变化,记录得到电路计数过程和状态的转换规律。注意观察电路是否能自启,若不能自启,则将电路置位有效状态。接下来再用D触发器74LS7474构成一个能自启的六进制扭环形计数器,重复上述操作。 2.分频实验 同步置数法 同步清零法

7,3循环码

****************** 实践教学 ******************* 兰州理工大学 计算机与通信学院 2014年秋季学期 计算机通信课程设计 题目:(7,3)循环码编译码软件设计 专业班级: 姓名: 学号: 指导教师: 成绩:

摘要 随着计算机通信的日益发展,传输数据的场合越来越多。串行数据的差错检验是保证数据传输正确的必要手段,而循环码是差错码中最常用的一种编码。 循环码是线性分组码中最重要的一种子类,它除了具有分组码的线性外,还具有循环性,其码字结构一般用符号(n,k)表示,其中,n是该码组中的码元数,k是信息码元位数,r=n-k是监督码元位数。循环码具有许多特殊的代数性质,这些性质有助于按照要求的纠错能力系统地构造这类码,能简化译码算法,并且目前发现的大部分线性码与循环码有密切关系。已有循环码编译码系统大多以标准逻辑器件(如中小规模TTL系列、CMOS系列)按传统数字系统设计方法设计而成,其主要缺点是逻辑规模小、功耗大、可靠性低。随着大规模、超大规模集成电路的发展,以及电子设计自动化水平的提高,这种制约正在被逐渐消除。 本文通过C 语言平台运行所编写的程序,观察了在输入信息码情况下输出对应的编码结果以及相反的译码功能。通过多组的对比验证了该(7,4)循环码的编译码程序的正确性。最后,在程序运行的过程中进步分析循环码的编译码原理,并通过比较仿真模型与理论计算的性能,证明了仿真模型的可行性。 关键词:循环码;编码;译码;程序仿真

目录 前言 (1) 1、目的及意义 (2) 2、设计原理 (3) 2.1循环码的介绍 (3) 2.1.1循环码的定义 (3) 2.1.2循环码的特点 (3) 2.1.3循环码的多项式表示 (4) 2.1.4(n,k)循环码的生成多项式 (4) 2.1.5循环码的生成矩阵和一致校验矩阵 (6) 2.2循环码编码原理 (8) 2.2.1多项式除法电路 (8) 2.3循环码译码原理 (9) 3、设计结果及分析 (11) 3.1程序运行结果 (11) 3.2运行结果理论分析 (14) 3.3软件可行性分析 (15) 4、总结 (16) 附录 (17) 参考文献 (22)

AMI、HDB3码型变换实验

实验二码型变换AMI/HDB3实验 一.实验目的 1.了解二进制单极性码变换为AMI/HDB3 码的编码规则; 2.熟悉AMI码与HDB3 码的基本特征; 3.熟悉HDB3 码的编译码器工作原理和实现方法; 4.根据测量和分析结果,画出电路关键部位的波形; 二.实验仪器 1.JH7001 通信原理综合实验系统一台 2.双踪示波器一台 3.函数信号发生器一台 三、实验任务与要求 1实验原理和电路说明 1.1.1 实验原理 AMI 码的全称是传号交替反转码。这是一种将消息代码0(空号)和1(传号)按如下规则进行编码的码:代码的0 仍变换为传输码的0,而把代码中的1 交替地变换为传输码的+1、–1、+1、–1…由于AMI 码的传号交替反转,故由它决定的基带信号将出现正负脉冲交替,而0 电位保持不变的规律。由此看出,这种基带信号无直流成分,且只有很小的低频成分,因而它特别适宜在不允许这些成分通过的信道中传输。 由AMI 码的编码规则看出,它已从一个二进制符号序列变成了一个三进制符号序列,即把一个二进制符号变换成一个三进制符号。把一个二进制符号变换成一个三进制符号所构成的码称为1B/1T 码型。。AMI 码对应的波形是占空比为0.5 的双极性归零码,即脉冲宽度τ与码元宽度(码元周期、码元间隔)TS 的关系是τ=0.5TS。 AMI 码除有上述特点外,还有编译码电路简单及便于观察误码情况等优点,它是一种基本的线路码,并得到广泛采用。但是,AMI 码有一个重要缺点,即接收端从该信号中来获取定时信息时,由于它可能出现长的连0 串,因而会造成提取定时信号的困难。为了保持AMI 码的优点而克服其缺点,人们提出了许多种类的改进AMI 码,HDB3 码就是其中有代表性的一种。 HDB3码的全称是三阶高密度双极性码。它的编码原理是这样的:先把消息代码变换成AMI码,然后去检查AMI 码的连0串情况,当没有4个以上连0串时,则这时的AMI码就是HDB3码;当出现4个以上连0串时,则将每4个连0小段的第4个0变换成与其前一非0符号(+1 或–1)同极性的符号。显然,这样做可能破坏“极性交替反转”的规律。这个符号就称为破坏符号,用V 符号表示(即+1 记为+V, –1记为–V)。为使附加V符号后的序列不破坏“极性交替反转”造成的无直流特性,还必须保证相邻V符号也应极性交替。这一点,当相邻符号之间有奇数个非0符号时,则是能得到保证的;当有偶数个非0 符号时,则就得不到保证,这时再将该小段的第1个0 变换成+B 或–B符号的极性与前一非0 符号的相反,并让后面的非0符号从V 符号开始再交替变化。 虽然HDB3码的编码规则比较复杂,但译码却比较简单。从上述原理看出,每一个破坏

实验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

循环码编译码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

HDB3码型变换实验报告

实验二HDB3码型变换实验 一、实验目的 1、了解几种常用的数字基带信号的特征和作用。 2、掌握HDB3码的编译规则。 3、了解滤波法位同步在的码变换过程中的作用。 二、实验器材 1、主控&信号源、2号、8号、13号模块各一块 2、双踪示波器一台 3、连接线若干 三、实验原理 1、HDB3编译码实验原理框图

HDB3编译码实验原理框图 2、实验框图说明 我们知道AMI编码规则是遇到0输出0,遇到1则交替输出+1和-1。而HDB3编码由于需要插入破坏位B,因此,在编码时需要缓存3bit的数据。当没有连续4个连0时与AMI编码规则相同。当4个连0时最后一个0变为传号A,其极性与前一个A的极性相反。若该传号与前一个1的极性不同,则还要将这4个连0的第一个0变为B,B的极性与A相同。实验框图中编码过程是将信号源经程序处理后,得到HDB3-A1和HDB3-B1两路信号,再通过电平转换电路进行变换,从而得到HDB3编码波形。 同样AMI译码只需将所有的±1变为1,0变为0即可。而HDB3译码只需找到传号A,将传号和传号前3个数都清0即可。传号A的识别方法是:该符号的极性与前一极性相同,该符号即为传号。实验框图中译码过

程是将HDB3码信号送入到电平逆变换电路,再通过译码处理,得到原始码元。 四、实验步骤 实验项目一HDB3编译码(256KHz归零码实验) 概述:本项目通过选择不同的数字信源,分别观测编码输入及时钟,译码输出及时钟,观察编译码延时以及验证HDB3编译码规则。 1、关电,按表格所示进行连线。 2、开电,设置主控菜单,选择【主菜单】→【通信原理】→【HDB3编译码】→【256K归零码实验】。将模块13的开关S3分频设置拨为0011,即提取512K同步时钟。 3、此时系统初始状态为:编码输入信号为256K的PN序列。 4、实验操作及波形观测。

数电实验报告 计数器

实验报告 实验七计数器原理测试及其设计 2.7.1 实验目的 1.掌握中规模集成计数器74LS160、74LS161、74LS163的逻辑功能及使用方法。 2.掌握同步清零与异步清零的区别及74LS160计数器的级联方法。 3.学习用中规模集成计数器设计任意进制计数器。 2.7.2 实验仪器设备与主要器件 实验箱一个;双踪示波器一台;稳压电源一台;函数发生器一台。 74LS160,74LS161和74LS163。 2.7.3 实验原理 计数器的功能是记录输入脉冲的个数。他所能记忆的最大脉冲个数称为该计数器的模。计数器不仅能统计输入脉冲的个数,还可以用作分频、定时、产生节拍脉冲等。根据进位方式,可分为同步和异步两类。根据进制,可分为二进制、十进制和任意进制等。根据逻辑功能,可分为加法计数器、减法计数器和可逆计数器等。根据电路集成度,可分为小规模集成计数器和中规模集成计数器。 2.7.4 实验内容 1.分别用74LS161和74LS163设计模13计数器,采用清零法实现,并用数码管显示实验结果。 设计思路:74LS161是十六进制计数器,所以我在它计数到13(1101)清零就行了,再利用二进制数与BCD码对应关系,即利用74LS283的逻辑功能使数码管显示实验结果。计数时电路状态转换关系: 0000→0001→0010→0011→0100→0101→0110→0111→1000→1001→1010→1011→1100→0000

设计思路:74LS163接法与74LS161基本一样,只是163的清零信号是12不是13,如图: 2.设计一个用3位数码管指示的六十进制计数器,并用三只开关控制计数器的数据保持、计数及清零功能。 设计思路:用Cr=0控制计数器清零,用EP*ET=0控制计数器数据保持,用高低电平和CP脉冲进行与运算控制计数器计数功能。U1的清零信号是在计数到6时,U1清零的同时U3开始计数,这样就能实现用3位数码管指示的六十进制计数器。如图:

循环码的编码方法研究

摘要本文对循环码的编码方法进行了深入的分析和探讨,循环码具有很高的可靠性,在通信、军事等领域应用非常广泛。关键词循环码编码中图分类号: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 结论本文深入系统地分析了循环码的编码技术。随着数字技术的高速发展,循环码纠错技术已经广泛应用于各种通信系统中。其编码和译码都可以通过简单的反馈移位寄存器来完成,实现简单,纠错能力强 ,可以降低误码率,保证数据传输的可靠性,大大提高通信质量。

8254定时计数器应用实验报告

XX 大学实验报告 课程名称: 实验项目名称:8254定时/计数器应用实验学院:信息工程学院 专业:通信工程 指导教师: 报告人:学号:班级: 实验时间: 实验报告提交时间:

教务处制

单元的内容外,还可以读出状态寄存器的内容。 (6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。计数初值公式为: n=fCLKi÷fOUTi、其中fCLKi 是输入时钟脉冲的频率,fOUTi 是输出波形的频率。 图(1)是8254 的内部结构框图和引脚图,它是由与CPU 的接口、内部控制电路和三个计数器组成。8254 的工作方式如下述:(1)方式0:计数到0 结束输出正跃变信号方式。 (2)方式1:硬件可重触发单稳方式。 (3)方式2:频率发生器方式。 (4)方式3:方波发生器。 (5)方式4:软件触发选通方式。 (6)方式5:硬件触发选通方式。 图(1)8254的内部借口和引脚8254 的控制字有两个:一个用来设置计数器的工作方式,称为方式控制字;另一个用来设置读回命令,称为读回控制字。这两个控制字共用一个地址,由标识位来区分。控制字格式如表

1所示。 表1 8254的方式控制字 表2 8254 读出控制字格式 表3 8254 状态字格式 8254 实验单元电路图如下图所示:

五、实验步骤及相应操作结果 1. 计数应用实验 编写程序,将8254 的计数器0 设置为方式3,计数值为十进制数4,用单次脉冲KK1+ 作为CLK0 时钟,OUT0 连接MIR7,每当KK1+按动5 次后产生中断请求,在屏幕上显示字符“M”。 实验步骤: (1)实验接线如图2所示。 (2)编写实验程序,经编译、链接无误后装入系统。 (3)运行程序,按动KK1+产生单次脉冲,观察实验现象。(4)改变计数值,验证8254 的计数功能。

(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 ++

EDA实验报告-实验3计数器电路设计(DOC)

暨南大学本科实验报告专用纸 课程名称EDA实验成绩评定 实验项目名称计数器电路设计指导教师郭江陵 实验项目编号03 实验项目类型验证实验地点B305 学院电气信息学院系专业物联网工程 组号:A6 一、实验前准备 本实验例子使用独立扩展下载板EP1K10_30_50_100QC208(芯片为EP1K100QC208)。EDAPRO/240H实验仪主板的VCCINT跳线器右跳设定为3.3V;EDAPRO/240H实验仪主板的VCCIO跳线器组中“VCCIO3.3V”应短接,其余VCCIO均断开;独立扩展下载板“EP1K10_30_50_100QC208”的VCCINT跳线器组设定为 2.5V;独立扩展下载板“EP1K10_30_50_100QC208”的VCCIO跳线器组设定为3.3V。请参考前面第二章中关于“电源模块”的说明。 二、实验目的 1、了解各种进制计数器设计方法 2、了解同步计数器、异步计数器的设计方法 3、通过任意编码计数器体会语言编程设计电路的便利 三、实验原理 时序电路应用中计数器的使用十分普遍,如分频电路、状态机都能看到它的踪迹。计数器有加法计数器、可逆计数器、减法计数器、同步计数器等。利用MAXPLUSII已建的库74161、74390分别实现8位二进制同步计数器和8位二——十进制异步计数器。输出显示模块用VHDL实现。 四、实验内容 1、用74161构成8位二进制同步计数器(程序为T3-1); 2、用74390构成8位二——十进制异步计数器(程序为T3-2); 3、用VHDL语言及原理图输入方式实现如下编码7进制计数器(程序为T3-3): 0,2,5,3,4,6,1 五、实验要求 学习使用Altera内建库所封装的器件与自设计功能相结合的方式设计电路,学习计数器电路的设计。 六、设计框图 首先要熟悉传统数字电路中同步、异步计数器的工作与设计。在MAX+PLUS II中使用内建的74XX库选择逻辑器件构成计数器电路,并且结合使用VHDL语言设计转换模块与接口模块,最后将74XX模块与自设计模块结合起来形成完整的计数器电路。并借用前面设计的数码管显示模块显示计数结果。 ◆74161构成8位二进制同步计数器(程序为T3-1)

同步计数器的设计实验报告文档

2020 同步计数器的设计实验报告文档 Contract Template

同步计数器的设计实验报告文档 前言语料:温馨提醒,报告一般是指适用于下级向上级机关汇报工作,反映情况,答复上级机关的询问。按性质的不同,报告可划分为:综合报告和专题报告;按行文的直接目的不同,可将报告划分为:呈报性报告和呈转性报告。体会指的是接触一件事、一篇文章、或者其他什么东西之后,对你接触的事物产生的一些内心的想法和自己的理解 本文内容如下:【下载该文档后使用Word打开】 同步计数器的设计实验报告 篇一:实验六同步计数器的设计实验报告 实验六同步计数器的设计 学号: 姓名: 一、实验目的和要求 1.熟悉JK触发器的逻辑功能。 2.掌握用JK触发器设计同步计数器。 二、实验仪器及器件 三、实验预习 1、复习时序逻辑电路设计方法。 ⑴逻辑抽象,得出电路的状态转换图或状态转换表 ①分析给定的逻辑问题,确定输入变量、输出变量以及电路的状态数。通常都是取原因(或条件)作为输入逻辑变量,取结

果作输出逻辑变量。 ②定义输入、输出逻辑状态和每个电路状态的含意,并将电路状态顺序编号。 ③按照题意列出电路的状态转换表或画出电路的状态转换图。通过以上步骤将给定的逻辑问题抽象成时序逻辑函数。 ⑵状态化简 ①等价状态:在相同的输入下有相同的输出,并且转换到同一次态的两个状态。 ②合并等价状态,使电路的状态数最少。 ⑶状态分配 ①确定触发器的数目n。因为n个触发器共有2n种状态组合,所以为获得时序电路所需的M个状态,必须取2n1<M2n ②给每个电路状态规定对应的触发器状态组合。 ⑷选定触发器类型,求出电路的状态方程、驱动方程和输出方程 ①根据器件的供应情况与系统中触发器种类尽量少的原则谨慎选择使用的触发器类型。 ②根据状态转换图(或状态转换表)和选定的状态编码、触发器的类型,即可写出电路的状态方程、驱动方程和输出方程。 ⑸根据得到的方程式画出逻辑图 ⑹检查设计的电路能否自启动 ①电路开始工作时通过预置数将电路设置成有效状态的一种。 ②通过修改逻辑设计加以解决。

简述简易循环码编译码器设计

简述简易循环码编译码器设计 摘要通信系统可靠性要求系统可靠地传输消息,而信道编码旨在解决可靠性问题。循环码属于线性代码,具有严密的代数理论基础,具有良好的错误检测和纠正功能。循环码编译电路大多用移位寄存器和模2构成的线性时序网络来完成。基本电路简单,容易实现,但在体积和功能扩展上受到了限制而不能发挥更大的作用。本设计充分运用单片机的软件功能进行编码及译码纠错,可有效克服来自通信信道的干扰,保证数据通信的可靠及系统的稳定,使误码率大幅度的降低。只要改变软件算法,即可适用于不同微机、不同字长的需要。 关键词信道编码;循环码;单片机;编译码;可靠 前言 信息在有线或无线信道传输时,受外界干扰或信噪比恶化的影响,信息的传递容易发生错误,需要有效检测出错状况,进行纠错,保证信息传输的质量。前向纠错编码技术在发送端引入冗余可以实现检错和纠错,一种广泛应用前向纠错码循环码它是线性分组码中最重要的一种类别码,不光具备分组码的线性性质,还具有自身的循环性[1]。现阶段国内外基于循环码编译码方法的研究都取得了很大的进展,例如循环码在卫星通信与移动通信方面中起到很重要的作用。采用单片机编程的方法可以实现循环码编译码,成本小,通过软件升级可以适配多种码型。 1 循环码编译码原理 1.1 循环码特点 循环码隶属于线性代码,具有嚴密的代数理论基础,良好的错误检测和纠正功能,具有如下特点[2]:循环码具有线性码的封闭性,意味着线性码中的任何两个码组总和仍为这种码中的一个码组。两个信息码组之间的长度差一定是后一个信息码组的权重,码的最小距离等同于码的最小权重。循环码还具有循环的性质,任一码组不管是从按左到右还是从右到左方向循环移位,仍为该码中的一个码组。 1.2 编码原理 设信息元多项式表达式: 编码步骤可以归纳如下: ⑴用信息集合m(x)乘以信息集得到,这种运算操作其实就是在信息码后添加上(n-k)个“0”。

数字电路实验报告计数器的逻辑功能及应用

数字电路实验报告 计数器逻辑功能及其应用 一、实验目的: 1.熟悉中等规模集成电路计数器74LS160的逻辑功能,使用方法及应用。 2.掌握构成任意进制计数器的方法。 二、实验设备及器件: 1.数字逻辑电路实验板1片 2.74HC160同步加法二进制计数器2片 3.74HC00二输入四与非门1片 三、实验原理: 计数器是一个用以实现计数功能的时序部件,它不仅可用来计脉冲数,还常用作数字系 统的定时、分频和执行数字运算以及其它特定的逻辑功能。 计数器种类很多。按构成计数器中的各触发器是否使用一个时钟脉冲源来分,有同步计数器和异步计数器。根据计数制的不同,分为二进制计数器,十进制计数器和任意进制计数器。根据计数的增减趋势,又分为加法、减法和可逆计数器。还有可预置数和可编程序功能 计数器等等。目前,无论是TTL还是CMOS集成电路,都有品种较齐全的中规模集成计数器。使用者只要借助于器件手册提供的功能表和工作波形图以及引出端的排列,就能正确地运用这些器件。 集成计数器74HC160是二-五-十进制计数器,其管脚排列如图。 四、实验内容 1.构成摸10计数器实验原理图

实验结果:数码管显示为从 0到5之间变化。 3、组成模100计数器 实验结果:个位数码管随时间显示 0、1 、 2、3、4、5、6、7、8、9,十位数码管显示个位进 位计数结果,按 0、1、2、3、4、5、6、7、8、9变化。 > CL 160 实验结果:数码管显示为从 2、组成模6计数器 实验原理图 OC LI) 0到9之间变化。

五、实验心得: 本次实验,通过对计数器工作过程的探索,基本上了解了数码计数器的工作原理,以及 74HC160 的数字特点,让我更进一步掌握了如何做好数字电子数字实验,也让我认识到自身理论知识的不足和实践能力的差距,以及对理论结合实践的科学方法有了更深刻理解。

卷积码实验报告

卷积码实验报告 篇一:卷积码实验报告 实验五信道编解码() 本章目标 掌握数字频带传输系统调制解调的仿真过程掌握数字频带传输系统误码率仿真分析方法 5.1实验目的 1. 使用MATLAB进行卷积码编/译码器的仿真。 2. 熟练掌握MATLAB软件、语句。 3. 了解卷积码编/译码器的原理、知识。 5.2实验要求 1. 编写源程序、准备测试数据。 2. 在 MATLAB环境下完成程序的编辑、编译、运行,获得程序结果。如果结果有误, 应找出原因,并设法更正之。 5.3 实验原理 (一)卷积码编码器 1. 连接表示 卷积码由3个整数n,k,N描述。k/n也表示编码效率(每编码比特所含的信 N称为约束长度,息量);但n与线性分组码中的含义不同,不再表示分组或码子长度; 表示在编码移位寄存器中k元组的级数。卷积码不同于分组码的一个重要特征就是编码器的记忆性,即卷积码编码过程中产生的n元组,不仅是当前输入k元组的函数,而且

还是前面N?1个输入k元组的函数。实际情况下,n和k经常取较小的值,而通过N的变化来控制编码的能力和复杂性。 下面以图1中的卷积码编码器为例介绍卷积码编码器。该图表示一个约束长度 K?3的(2,1)卷积译码器,模2加法器的数目为n?2,因此,编码效率k/n?1/2。 在每个输入比特时间上,1位信息比特移入寄存器最左端的一级,同时将寄存器中原有比特均右移一级,接着便交替采样两个模2加法器,得到的码元就是与该输入比特相对应的分支字。对每一个输入信号比特都重复上述采样过程。 图1卷积码编码器(编码效率1/2,K?3) 用于描述反馈移位寄存器实现循环码时所使用的生成多项式也可用户描述卷积码编码器的连接。应用n个生成多项式描述编码的移位寄存器与模2加法器的连接方式,n个生成多项式分别对应n个模2加法器,每个生成多项式不超过K?1阶。仍以图 1中的编码器为例,用生成多项式g1(X)代表上方连接,g2(X)代表下方连接,则有: g1(X)?1?X?X2g2(X)?1?X 2 多项式中的最低阶项对应于寄存器的输入级。输出序

循环码

实验、循环码编译码系统 一、 实验目的: 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 )整除,也就是:

计数器实验报告

西华大学实验报告(理工类) 开课学院及实验室:机械学院机械工程专业实验中心 实验时间:年月日至月日 1.实验目的 (1)学习Keil编译软件的使用、调试、程序下载的方法; (2)掌握PWM调节LED指示灯亮度的原理及编程方法; (3)掌握STC89C52单片机I/O端口的控制和使用方法; (4)掌握单片机与上位机串口通讯的原理及程序实现; (5)掌握AD转换、LCD显示的编程实现; (6)对单片机的串口通讯、PWM控制、AD转换、LED指示灯、LED数码管,及按键、定时器/计数器进行综合应用。 2.实验设备 PC机、keil编译软件、proteus仿真软件,单片机实验板。 3.实验内容 在LCD上显示光电开关的计数值,要求采用计数器T0,计数初值为200,计到256时报警(蜂鸣器响,蜂鸣器对应端口为P2.7),并通过串口通讯,把数据传到上位机进行显示; 4.实验电路 计数器的电路原理图如图4.1所示,把与电压比较器+端连接的电位器调到5V,当光电开关中的发光二极管和光敏二极管之间没有遮挡物时,光敏二极管导通,A点连到地,为低电平,经电压比较器后,B 点为高电平;当发光二极管和光敏二极管被物体遮挡时,光敏二极管截止,A点被拉到高电平,B点为低电平。其中B点连到单片机的计数器T1端口,比较器主要用于信号整形的作用,实验板上光电开关的位置如图4.2所示。

图4.1 计数器电路原理图 图4.2 光电开关在实验板上的位置图 图4.3 STC89C52主控芯片5.实验程序

实验程序流程图和实验代码分别如下: 主程序 #include #include unsigned char a[3]; sbit fm=P2^7;//蜂鸣器引脚定义 void UsartConfiguration() { SCON=0X50; //设置为工作方式1 TMOD=0x26; //设置计数器1工作方式2 ; 设置计数器0工作方式2并打开外部计数TL0=200;//t0初值200 TH0=200; TH1=0Xfd; //计数器初始值设置,波特率9600 TL1=0Xfd; TR1=1; //打开计数器1 TR0=1; //打开计数器0 ET0=1;//允许中断溢出 EA=1;//中断总开关 } void chuankou() {int i; for(i=0;i<=2;i++) { SBUF=a[i]; //将数据放入发送缓存器 while(!TI); //等待发送数据完成 TI = 0; //清除发送中断标志位 } } void delay1(unsigned long delay_count) { while(delay_count--); } void main() { UsartConfiguration();//单片机初始化设置 InitialLCD();//lcd1602初始化 while(1) { a[0]=0x30+TL0/100;//数据转换 a[1]=0x30+TL0/10%10; a[2]=0x30+TL0%10;

相关主题
文本预览
相关文档 最新文档