当前位置:文档之家› 循环码二步大数逻辑译码原理实验

循环码二步大数逻辑译码原理实验

循环码二步大数逻辑译码原理实验
循环码二步大数逻辑译码原理实验

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)系统循环码可以纠正一位错。

根据第ii步所用的方法不同,循环码的译码方法有梅吉特译码、捕错译码及大数译码等方法。

2.3大数译码原理

实际上,无论是梅吉特译码器,捕错译码器还是大数译码器,都用到了循环码的一个重要性质:

如果s x为接收码字多项式r x的校验子多项式,则xs x[模g x]也必然是

xr x[模x n+1]的校验子多项式。

每个校验子多项式对应一种错误图样。循环码本身的定义就表明了xr x[模x n+1]也对应一个许用码字(在无错的情况下),这就意味着,如果一个校验子对应的错误图样可以纠正一位错,那么就可以通过上述运算纠正这个码字中的所有一位错的情况。

下面以本实验的实验内容来构造大数逻辑译码器。(7,4)系统循环码的码字长度为7,收到的码字为r x。错误图样e=[1000000]可以纠正码字r6,假设此错误图样对应的校验子多项式为s6x,则可以通过以下运算来纠正码字r5(假设只有一位错):

i) 通过除法电路得到校验子多项式s x。

ii) 做运算s5x=xs x[模g x]。

iii) 如果s5x等于s6x,则证明码字r5有错,否则无错。

依照这样的方法可以依次纠正其余码字。

在图2中,当输入为零时,就相当进行了运算xs x[模g x]。现在问题转化为,如何根据验子多项式为s6x纠正码字r6?亦即如何根据s6x的系数s0s1s2纠正码字r6?

考虑循环码一致监督矩阵与校验子向量、错误图样之间的关系:

S T=H R T=H E T

式中S为校验子向量,H为监督矩阵,E错误图样向量。生成多项式为g x=x3+x+1的一致监督矩阵为:

H=1110100 0111010 1101001

代入上式,并将S及E展开可得:

s2

s1 s0=

1110100

0111010

1101001

e6

e5

e4

e3

e2

e1

e0

于是,得到以下关系式:

s2=e6+e5+e4+e2

s1=e5+e4+e3+e1

s0=e6+e5+e3+e0

A11=s1+s0=e6+e4+e1+e0

A12=s2=e6+e4+e5+e2

A21=s2=e6+e5+e4+e2

A22=s0=e6+e5+e3+e0

上式中用到了模二加的性质e+e=0。

再记

A1=A11 & A12=e6+e4

A2=A21 & A22=e6+e5

式中符号&表示与操作,并且假设e i,i=0…6最多只能有一位等于1,即接收码字只可能为无错或有一位错。

显然,只有当A1与A2均为1的情况下,可以知道e6=1,否则一定有e6=0,但不能确定e i,i=0…5的情况。

最后,结合图2的除法电路及上面的分析,可以得到生成多项式为g x=x3+x+ 1的(7,4)系统循环码的大数逻辑译码电路图,如图3所示。

图3 生成多项式为g x=x3+x+1的循环码大数逻辑译码电路

图3中,各寄存器的初始状态为零,在前7个时钟周期,接收码字序列r6r5 0

次进入系统,输出为7个零。寄存器S0、S1、S2保存此时的校验子多项式的系数,如果A1、A2与操作结果为1,表明接收到的码字最高位即r6有错,在下一个时钟周期就可以对r6进行纠错。在后7个时间周期,电路输入为7个零,输出为译码结果。因此,整个系统需要14个时钟周期才能完成一个码字的译码。因为经过两级逻辑运算才得到错误结果,因此称上面的电路为二步大数逻辑译码电路。

为了达到连续译码的目的,图中增加了虚线所示的反馈,在检测到错误后,这个反馈可以将寄存器S0、S1、S2清零,虚线只在后7个时钟周期有效。此外需要说明的是寄存器D的作用:在第7个时钟周期后,A1、A2相与的结果已经出现,标志着r6的错误情况,但此时r6在7级移位寄存器中,因此将A1、A2相与的结果延时一个时钟周期方可正确译码。另一种解决方法是将7级移位寄存器改为6级。

事实上,图3中,只有当S0=1,S1=0,S2=1时,组合逻辑电路部分才输出1,即有错误发生,如果将组合逻辑电路部分换为一个“101”识别器,就构成了梅吉特译码器。

三、实验环境及设计工具

3.1 实验环境

操作系统:Windows XP SP2简体中文版

运行环境:.NET Framework 2.0

3.2设计工具

本实验程序使用C#语言编写译码过程及交互界面,所用开发工具为SharpDevelop 3.2;使用gnuplot 4.4绘制码元的波形图。

四、设计方法

4.1模块/单元设计

二步大数逻辑译码器实验程序由三部分组成:界面及控制模块、译码器单元和波形生成模块。各部分关系如图4。

图4 二步大数逻辑译码器实验程序组成

由于采用了面向对象的设计方法,因而用类来描述程序更为方便。图4中,界面显示及主控制对应的类为MainForm,除负责整个程序的逻辑控制外,还要读取用户输入的数据及指令、显示译码结果。在良好的程序设计中各模块之间是松耦合的,为此,MainForm并不涉及对译码过程的任何操作,它将收到的码字R x传递给译码器单元执行,然后从译码器单元读取操作结果。

译码器单元对应的类为Decoder,该类完成(7,4)循环码序列的译码。Decoder类存储译码过程中各寄存器及组合电路输出的状态,供MainForm类查询。此外,MainForm 类每下一次译码指令,Decoder就进行一位码元的输入,也就对应时序电路中的一次时钟输入。(7,4)循环码的一个码字长度为7,根据大数逻辑译码的电路原理图可知,在14个时间周期后,方可完成一个码字的译码,因而Decoder在接收14次指令后将标志本次结果有效。

波形生成器对应的类为GnuplotWrapper。这个类对工具gnuplot进行简单的封装,根据输入的接收码字R x、译码结果C x及错误图样E x,生成二进制码元波形图,结果以png图形格式存储。MainForm类负责显示该波形图。

4.2译码器单元设计

译码器的工作过程为:接收任意长度的(7,4)循环码码字序列,在每7个码元后插入7个0码;然后,每接收到一条来自MainForm的译码指令,就将一位码元输入到程序所模拟的电路中;在第14个指令后,译码器修改其状态,表明此时一个码字译码完毕,结果有效。

图5 Decoder类的属性、方法

图5给出了类Decoder的组成。在这个类中,用整型变量模拟二进制码元0或1(C#语言中没有位类型)。属性S0、S1、S2分别保存某一时刻寄存器S0、S1、S2的状态;属性A11、A12、A21、A22、A1、A2也分别对应第2.3节对校验子系数S0、S1、S2进行逻辑运算的结果;一个IsResultV alid属性指示当前结果是否有效。

Decoder类用先进先出(FIFO)的队列模拟移位寄存器,输入和输出也可以用移位寄存器来保存数据,因此输入与输出也有相应的队列。队列的操作包含入列和出列,这两个操作的组合就可以模拟移位寄存器的一次移位操作。buffer队列保存图3中7级移位寄存器的值;currentCode保存当前正在被翻译的码字;receivedCode保存输入的任意长度的码字序列;result队列保存译码结果;error队列保存错误图样。

Decoder类的方法包括Received,reset,Next和Calculate,最后一个Decoder为构造函数。本程序的核心方法为Next与Calculate,两者的联合工作流程如图6所示,它对应2.3节讨论的译码过程。

图5 Decoder类的译码过程流程图

Calculate方法中进行译码运算,Next方法维护一个计数器,也维护一个状态来指示当前译码的阶段。本程序将译码过程分为两个阶段,第一个阶段为Buffering阶段,此时输入为接收码元,输出为零,且无反馈输入;第二个阶段为Decoding阶段,此时输入为零,且有反馈输入,输出为译码结果。

4.3界面设计

界面使用Windows Forms框架设计,如图6所示。用户输入接收到的循环码字序列,然后点击“开始译码”开始单步译码。左方显示各寄存器级组合电路的状态,在译码完成后,右下方显示接收码字、译码结果及错误情况的波形图。本实验程序支持连续译码。

图6 循环码译码实验程序界面

五、部分程序代码

5.1Decoder类源代码

1using System;

2using System.Collections.Generic;

3

4namespace CCDecoder

5{

6///

7/// (7,4)循环码二步大数逻辑译码器,可连续译码

8///

9public class Decoder

10{

11#region constructors

12public Decoder() { }

13#endregion

14

15#region properties

16public Queue receivedCode{private set;get;}//接收到的码字,长度可大于7 17public Queu e buffe r{private se t;ge t;} //7级移位寄存器

18public Queue result{private set;get;} //译码结果,长度为7

19public Queue error{private set;get;} //错误图样,长度为7

20public Queue currentCode{private set;get;}//当前被译的码字,长度为7 21public bool IsResultValid{private set;get;} //C(x),E(x)有效标志

22public int S0 {private set;get;} //寄存器S0

23public int S1 {private set;get;} //寄存器S1

24public int S2 {private set;get;} //寄存器S2

25public int A11 {private set;get;} //A11=S1'+S0'

26public int A12 {private set;get;} //A12=S2'

27public int A21 {private set;get;} //A21=S2'

28public int A22 {private set;get;} //A22=S0'

29public int A1 {private set;get;} //A1=A11+A12

30public int A2 {private set;get;} //A2=A21+A22

31#endregion

32

33#region private fields

34int counter; //内部计数器

35DecodingPhase phase; //当前译码的状态,分为两个阶段:Buffering和Decoding 36#endregion

37

38#region public methods

39public void reset() //程序复位,将各个寄存器及中间结果清零

40{

41counter = 0;

42IsResultValid = false;

43receivedCode = new Queue();

44currentCode = new Queue();

45result = new Queue(new int[]{0,0,0,0,0,0,0});

46error = new Queue(new int[]{0,0,0,0,0,0,0});

47buffer = new Queue(new int[]{0,0,0,0,0,0,0});

48A11 = 0;

49A12 = 0;

50A21 = 0;

51A22 = 0;

52A1 = 0;

53A2 =0;

54S0 = 0;

55S1 = 0;

56S2 = 0;

57}

58

59public bool Next() //进行一次译码操作

60{

61counter = counter + 1;

62

63if (counter == 1)

64{

65IsResultValid = false;

66currentCode.Clear();

67}

68

69if (counter <= 7) //译码第一阶段:Buffering

70{

71phase = DecodingPhase.Buffering;

72if (receivedCode.Count == 0) return false; //译码完毕73}

74else //译码第二阶段:Decoding

75{

76phase = DecodingPhase.Decoding;

77}

78Calculate(receivedCode.Dequeue());

79

80if (counter == 14) //译完一个码字,标志结果有效

81{

82counter = 0;

83IsResultValid = true;

84}

85return true;

86}

87

88public void Received(List Code) //接收到码字,进行初始化处理89{

90reset();

91receivedCode=new Queue();

92int i;

93for(i=0;i

94{

95if(i!=0 && i%7==0)

96for(int j=0;j<7;j++) receivedCode.Enqueue(0);

97receivedCode.Enqueue(Code[i]);

98}

99if(i!=0 && i%7==0)

100for(int j=0;j<7;j++) receivedCode.Enqueue(0);

101}

102

103private void Calculate(int input) //一个时钟周期所需要的操作

104{

105int S0_p,S1_p,S2_p,E_p; //暂存S0,S1,S2,A1&A2的值

106

107S0_p = S0;

108S1_p = S1;

109S2_p = S2;

110E_p = A1 & A2;

111

112if(phase == DecodingPhase.Buffering)

113{

114S0 = input ^ S2_p; //在Buffering阶段

115currentCode.Enqueue(input); //S0=input+S2'

116}

117else

118{ //在Decoding阶段

119S0 = S2_p ^ E_p; //S0=S2+(A1+A2)

120}

121

122S1 = S0_p ^ S2_p; //S1=S0'+S2'

123S2 = S1_p; //S2=S1'

124A11 = S1 ^ S0; //A11=S1'+S0'

125A12 = S2; //A12=S2'

126A21 = S2; //A21=S2'

127A22 = S0; //A22=S0'

128A1 = A11 & A12; //A1=A11+A12

129A2 = A21 & A22; //A2=A21+A22

130

131buffer.Enqueue(input); //7级移位寄存器移出一位码元

132result.Enqueue(buffer.Dequeue() ^ E_p);//移出的码元与(A1+A2)模2加133result.Dequeue();

134error.Enqueue(E_p); //错误图样寄存器移入一位码元

135error.Dequeue(); //错误图样寄存器移出一位码元

136}

137#endregion

138

139public enum DecodingPhase{Buffering,Decoding}

140}

141}

5.2GnuplotWrapper类源代码

1using System;

2using System.IO;

3using System.Collections.Generic;

4using System.Diagnostics;

5

6namespace CCDecoder

7{

8///

9/// gnuplot封装类

10///

11public class GnuplotWrapper

12{

13public GnuplotWrapper(Decoder decoder)

14{

15this.decoder=decoder;

16}

17

18private Decoder decoder;

19

20public string GetImagePath() //获取所生成图形的文件名

21{

22GenerateDataFile(); //生成波形图

23Process process=new Process();

24process.StartInfo.FileName=@"gnuplot\gnuplot.exe";

25process.StartInfo.Arguments="script.txt";

26process.Start();

27process.WaitForExit();

28return "result.png";

29}

30

31private void GenerateDataFile()

32{

33List code=new List(decoder.currentCode);

34List result=new List(decoder.result);

35List error=new List(decoder.error);

36

37using(StreamWriter sw=new StreamWriter("data.txt",false)) 38{

39sw.Write("{0} {1} {2}\n\r",code[0].ToString(),result[0].

ToString(),error[0].ToString()); //写入文件

40for(int i=0;i<7;i++)

41{

42sw.Write("{0} {1}

{2}\n\r",code[i].ToString(),result[i].ToString(),error[i].ToString());

43}

44}

45}

46}

47}

5.3Gnuplot生成波形所用的脚本

1#Gnuplot生成码元图形的脚本

2reset

3set terminal png #设置输出格式为png图形格式

4set output "result.png" #设置输出文件名为result.png

5set multiplot

6set noborder

7set grid xtics

8set size 1,0.3333

9

10#画R(x)波形图

11set origin 0.0,0.6666

12unset label

13unset key

14set ylabel "R(x)"

15set ytics 0,1,1

16set xtics ("" 0,"" 1,"" 2,"" 3,"" 4,"" 5,"" 6,"" 7)

17plot "data.txt" using 1 linetype 7 linewidth 4 with fsteps

18

19#画C(x)波形图

20set origin 0.0,0.3333

21unset label

22unset key

23set ytics 0,1,1

24set ylabel "C(x)"

25plot "data.txt" using 2 linetype 10 linewidth 4 with fsteps

26

27#画E(x)波形图

28set origin 0.0,0.0

29unset label

30unset key

31set ytics 0,1,1

32set ylabel "E(x)"

33plot "data.txt" using 3 linetype 11 linewidth 4 with fsteps

34

35unset multiplot

36reset

六、运行结果

6.1R x无错的测试

码字0011101及0001011都是本实验所用的(7,4)循环许用码字,其输出结果如图7所示。图中结果显示译码结果等于接收到的码字,且误码序列均为零。

图7 R x无错时程序输出结果

6.2R x有一位错的测试

码字0011111是许用码字0011101第六位出错得到,码字1001011是许用码字第一位出错得到,它们的输出结果如图8所示。

图8 R x错一位时程序输出结果

6.3连续译码测试

连续输入码字0011101,1011101,0011101,其中第二个码字的第一位是错误码元,第三个码字的第三位是错误码元,程序输出结果如图9所示。

图9 连续译码的第14、28、42步的结果

七、实验总结

XXX

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

数字逻辑个性课实验报告

学生学号0121410870432实验成绩 学生实验报告书 实验课程名称逻辑与计算机设计基础 开课学院计算机科学与技术学院 指导教师姓名肖敏 学生姓名付天纯 学生专业班级物联网1403 2015--2016学年第一学期

译码器的设计与实现 【实验要求】: (1)理解译码器的工作原理,设计并实现n-2n译码器,要求能够正确地根据输入信号译码成输出信号。(2)要求实现2-4译码器、3-8译码器、4-16译码器、8-28译码器、16-216译码器、32-232译码器。 【实验目的】 (1)掌握译码器的工作原理; (2)掌握n-2n译码器的实现。 【实验环境】 ◆Basys3 FPGA开发板,69套。 ◆Vivado2014 集成开发环境。 ◆Verilog编程语言。 【实验步骤】 一·功能描述 输入由五个拨码开关控制,利用led灯输出32种显示 二·真值表

三·电路图和表达式

四·源代码 module decoder_5( input [4:0] a, output [15:0] d0 ); reg [15:0] d0; reg [15:0] d1; always @(a) begin case(a) 5'b00000 :{d1,d0}=32'b1000_0000_0000_0000_0000_0000_0000_0000; 5'b00001 :{d1,d0}=32'b0100_0000_0000_0000_0000_0000_0000_0000; 5'b00010 :{d1,d0}=32'b0010_0000_0000_0000_0000_0000_0000_0000; 5'b00011 :{d1,d0}=32'b0001_0000_0000_0000_0000_0000_0000_0000; 5'b00100 :{d1,d0}=32'b0000_1000_0000_0000_0000_0000_0000_0000; 5'b00101 :{d1,d0}=32'b0000_0100_0000_0000_0000_0000_0000_0000; 5'b00110 :{d1,d0}=32'b0000_0010_0000_0000_0000_0000_0000_0000; 5'b00111 :{d1,d0}=32'b0000_0001_0000_0000_0000_0000_0000_0000; 5'b01000 :{d1,d0}=32'b0000_0000_1000_0000_0000_0000_0000_0000; 5'b01001 :{d1,d0}=32'b0000_0000_0100_0000_0000_0000_0000_0000; 5'b01010 :{d1,d0}=32'b0000_0000_0010_0000_0000_0000_0000_0000; 5'b01011 :{d1,d0}=32'b0000_0000_0001_0000_0000_0000_0000_0000; 5'b01100 :{d1,d0}=32'b0000_0000_0000_1000_0000_0000_0000_0000; 5'b01101 :{d1,d0}=32'b0000_0000_0000_0100_0000_0000_0000_0000; 5'b01110 :{d1,d0}=32'b0000_0000_0000_0010_0000_0000_0000_0000; 5'b01111 :{d1,d0}=32'b0000_0000_0000_0001_0000_0000_0000_0000; 5'b10000 :{d1,d0}=32'b0000_0000_0000_0000_1000_0000_0000_0000; 5'b10001 :{d1,d0}=32'b0000_0000_0000_0000_0100_0000_0000_0000; 5'b10010 :{d1,d0}=32'b0000_0000_0000_0000_0010_0000_0000_0000; 5'b10011 :{d1,d0}=32'b0000_0000_0000_0000_0001_0000_0000_0000; 5'b10100 :{d1,d0}=32'b0000_0000_0000_0000_0000_1000_0000_0000; 5'b10101 :{d1,d0}=32'b0000_0000_0000_0000_0000_0100_0000_0000; 5'b10110 :{d1,d0}=32'b0000_0000_0000_0000_0000_0010_0000_0000; 5'b10111 :{d1,d0}=32'b0000_0000_0000_0000_0000_0001_0000_0000; 5'b11000 :{d1,d0}=32'b0000_0000_0000_0000_0000_0000_1000_0000; 5'b11001 :{d1,d0}=32'b0000_0000_0000_0000_0000_0000_0100_0000; 5'b11010 :{d1,d0}=32'b0000_0000_0000_0000_0000_0000_0010_0000;

考研数学一-概率论与数理统计大数定律和中心极限定理(一).doc

考研数学一-概率论与数理统计大数定律和中心极限定理(一) (总分:48.00,做题时间:90分钟) 一、选择题(总题数:9,分数:9.00) 1.假设随机变量序列X1,…,X n…独立同分布且EX n=0 (A) 0. 1.00) A. B. C. D. 2.设X1,…,X n…是相互独立的随机变量序列,X n服从参数为n的指数分布(n=1,2,…),则下列随机变量序列中不服从切比雪夫大数定律的是 (A) X1,X2/2,…,X n/n,…. (B) X1,X2,…,X n,…. (C) X1,2X2,…,nX n,…. (D) X1,22X2,…,n2X n,…. (分数:1.00) A. B. C. D. 3.假设X n,n≥1n充分大时,可以用正态分布作为S n的近似分布,如果 (A) X n,n≥1相互独立、同分布. (B) X n,n≥I (C) X n,n≥1 (D) X n,n≥1 1.00) A. B. C. D. 4.设X n,n≥1为相互独立的随机变量序列且都服从参数为λ的指数分布,则 1.00) A. B. C.

5.设随机变量X1,…,X n-林德伯格中心极限定理,当n充分大时,S n近似服从正态分布,只要X1,…,X n (A) PX i=m=p m q1-m,m=0,1,…(1≤i≤n). ≤i≤n). ≤i≤n) 1.00) A. B. C. D. 6.假设X1,…,X n,…为独立同分布随机变量序列,且EX n=0,DX n=σ2 (A) 0. 1.00) A. B. C. D. 7.下列命题正确的是 (A) 由辛钦大数定律可以得出切比雪夫大数定律. (B) 由切比雪夫大数定律可以得出辛钦大数定律. (C) 由切比雪夫大数定律可以得出伯努利大数定律. (D) 由伯努利大数定律可以得出切比雪夫大数定律. (分数:1.00) A. B. C. D. 8.设随机变量X1,X2,…,X n,…独立同分布,EX i=μ(i=1,2,…),则根据切比雪夫大数定律,X1,X2,…,X n,…依概率收敛于μ,只要X1,X2,…,X n,… (A) 共同的方差存在. (B) 服从指数分布. (C) 服从离散型分布. (D) 服从连续型分布. (分数:1.00) A. B. C. D. 9.假设天平无系统误差.将一质量为10克的物品重复进行称量,则可以断定“当称量次数充分大时,称量结果的算术平均值以接近于1的概率近似等于10克”,其理论根据是 (A) 切比雪夫大数定律. (B) 辛钦大数定律. (C) 伯努利大数定律. (D) 中心极限定理. (分数:1.00) A.

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

华中科技大学计算机学院数字逻辑实验报告2(共四次)

数字逻辑实验报告(2) 姓名: 学号: 班级: 指导教师: 计算机科学与技术学院 20 年月日

数字逻辑实验报告(2)无符号数的乘法器设计

一、无符号数的乘法器设计 1、实验名称 无符号数的乘法器的设计。 2、实验目的 要求使用合适的逻辑电路的设计方法,通过工具软件logisim进行无符号数的乘法器的设计和验证,记录实验结果,验证设计是否达到要求。 通过无符号数的乘法器的设计、仿真、验证3个训练过程,使同学们掌握数字逻辑电路的设计、仿真、调试的方法。 3、实验所用设备 Logisim2.7.1软件一套。 4、实验内容 (1)四位乘法器设计 四位乘法器Mul4 4实现两个无符号的4位二进制数的乘法运算,其结构框图如图3-1所示。设被乘数为b(3:0),乘数为a(3:0),乘积需要8位二进制数表示,乘积为p(7:0)。 图3-1 四位乘法器结构框图 四位乘法器运算可以用4个相同的模块串接而成,其内部结构如图3-2所示。每个模块均包含一个加法器、一个2选1多路选择器和一个移位器shl。 图3-2中数据通路上的数据位宽都为8,确保两个4位二进制数的乘积不会发生溢出。shl是左移一位的操作,在这里可以不用逻辑器件来实现,而仅通过数据连线的改变(两个分线器错位相连接)就可实现。

a(0)a(1)a(2)a(3) 图3-2 四位乘法器内部结构 (2)32 4乘法器设计 32 4乘法器Mul32 4实现一个无符号的32位二进制数和一个无符号的4位二进制数的乘法运算,其结构框图如图3-3所示。设被乘数为b(31:0),乘数为a(3:0),乘积也用32位二进制数表示,乘积为p(31:0)。这里,要求乘积p能用32位二进制数表示,且不会发生溢出。 图3-3 32 4乘法器结构框图 在四位乘法器Mul4 4上进行改进,将数据通路上的数据位宽都改为32位,即可实现Mul32 4。 (3)32 32乘法器设计 32 32乘法器Mul32 32实现两个无符号的32位二进制数的乘法运算,其结构框图如图3-4所示。设被乘数为b(31:0),乘数为a(31:0),乘积也用32位二进制数表示,乘积为p(31:0)。这里,要求乘积p能用32位二进制数表示,且不会发生溢出。 图3-4 32 32乘法器结构框图 用32 4乘法器Mul32 4作为基本部件,实现32 32乘法器Mul32 32。 设被乘数为b(31:0)=(b31b30b29b28···b15b14b13b12···b4b3b2b1b0)2 乘数为a(31:0)=(a31a30a29a28···a15a14a13a12···a3a2a1a0)2 =(a31a30a29a28)2 228+···+ ( a15a14a13a12)2 212+···+ (a3a2a1a0)2 20

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)

编码器和译码器实验报告

译码器、编码器及其应用 一、实验目的 (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

数字逻辑实验报告

. 武汉理工大学

2017 年月日 实验一:一位全加器 实验目的: 1. 掌握组合逻辑电路的设计方法; 2. 熟悉Vivado2014 集成开发环境和Verilog 编程语言; 3. 掌握1 位全加器电路的设计与实现。 试验工具: 1.Basys3 FPGA 开发板 2.Vivado2014 集成开发环境和Verilog 编程语言。 实验原理: Ci+A+B={Co,S} 全加器真表

全加器逻辑表达式 S=A○+B○+Ci Co=A.B+ (A○+B).Ci 全加器电路图 实验步骤: (一)新建工程: 1、打开 Vivado 2014.2 开发工具,可通过桌面快捷方式或开始菜单中 Xilinx Design Tools->Vivado 2014.2 下的 Vivado 2014.2 打开软件; 2、单击上述界面中 Create New Project 图标,弹出新建工程向导。 3、输入工程名称、选择工程存储路径,并勾选Create project subdirectory选项,为工程在指 定存储路径下建立独立的文件夹。设置完成后,点击Next。注意:工程名称和存储路径中不能出现中文和空格,建议工程名称以字母、数字、下划线来组成 4、选择RTL Project一项,并勾选Do not specify sources at this time,为了跳过在新建工 程的过程中添加设计源文件。 5、根据使用的FPGA开发平台,选择对应的FPGA目标器件。(在本手册中,以Xilinx大学计 划开发板Digilent Basys3 为例,FPGA 采用Artix-7 XC7A35T-1CPG236-C 的器件,即Family 和Subfamily 均为Artix-7,封装形式(Package)为CPG236,速度等级(Speed grade)为-1,温度等级(Temp Grade)为C)。点击Next。 6、确认相关信息与设计所用的的FPGA 器件信息是否一致,一致请点击Finish,不一致,请返 回上一步修改。 7、得到如下的空白Vivado 工程界面,完成空白工程新建。

(完整版)循环码

2、循环码 2.1循环码的基本原理 1.定义 循环码是满足循环特性的线性分组码,是线性分组码的子类,之所以这样说是因为线性分组码要求所选择的码是线性的,循环码则是在线性分组码的基础之上进一步要求所选择的码具有循环性。 假设C 是一个(n,k)线性码,如果C 中任意一个码字经任意循环移位之后仍然是C 中的码字,那么此码是一个循环码。 循环码具有规则的代数结构,且是自封闭的,因此用多项式来描述更方便。长度为n 的循环码可用一个n-1次多项式来描述,此多项式称为码多项式,表示如下: (1) 左移i 位后的码多项式为 (2) 码多项式与循环移位后的多项式之间的关系为 ) 1()(c xC(x)1) 1(021121-n -+=++???++=---n n n n n x c x C x c x c x c x (3) 也即是 )1m od()()()1(-≡n x x xC x C (4) 以此类推,可以得到 )1m od()()()(-≡n i i x x C x x C (5) 2.循环码的性质 (1)GF(q)上的(n,k)循环码中,存在唯一的一个n-k 次首一多项式 0111)(g x g x g x x g k n k n k n ++???++=-----,每一个码多项式)(x C 都是)(x g 的倍式,

即循环码的码多项式)(x C 中次数最低且其常数项为1的码多项式有且仅有一个,为码的生成多项式,记做)(x g 。循环码C 中的每个码多项式)(x C 都可唯一表示成)()()(x g x m x C =。 (2))(,),(),(),(1 2 x g x x g x x xg x g k -???都是生成多项式,他们的线性组合也是生成多项 式。 (3)GF(q)上(n,k)循环码的生成多项式)(x g 一定是)1(-n x 的因子。 (4)循环码的生成矩阵H 和校验矩阵H 的正交性可以用多项式表示为 1)()(-=n x x h x g 。因此,h(x)也是1-n x 的因子。 (5)生成矩阵G 中的每一行都是上一行经过循环移位的结果。 3.生成矩阵和校验矩阵 由上面内容中的性质(4),若g(x)的次数为n-k 次以g(x)作为生成多项式组成的(n,k)循环码的k 个码多项式)(,),(),(),(1 2 x g x x g x x xg x g k -???一定是线性无关的,根据线性分组码的 定义,这些码多项式构成循环码的生成矩阵)(x G ????? ? ??????++???++? ??++???++++???++=????????? ??????=---------------------011 1201131210121121)()()()x (g x g x g x g x g x g x g x g x g x g x g x g x g x g x x g x G k n k n k n k n k k n k n n k n k k n k n n k n k k (6) 则(n,k)循环码的生成矩阵G 为 ? ? ?? ? ? ??? ?????????????????????????????????????????????? ????????=--------011 0120110 00000g g g g g g g g g g g g G k n k n n k n k n k n (7) 定义011 1)(h x h x h x h x h k k k k ++???++=--为(n,k)循环码的校验多项式,由 1)()(-=n x x h x g 可得到系数方程 ? ? ?-==+=+???++-----1 ,...,2,10000)(110n i h g h g h g h g h g k k n k n i k n i i , (8) 通过解方程,可得到(n,k)循环码的校验矩阵H 为

数字逻辑实验报告。编码器

数字逻辑实验实验报告 脚分配、1)分析输入、输出,列出方程。根据方程和IP 核库判断需要使用的门电路以及个数。 2)创建新的工程,加载需要使用的IP 核。 3)创建BD 设计文件,添加你所需要的IP 核,进行端口设置和连线操作。 4)完成原理图设计后,生成顶层文件(Generate Output Products)和HDL 代码文件(Create HDL Wrapper)。 5)配置管脚约束(I/O PLANNING),为输入指定相应的拨码开关,为输出指定相应的led 灯显示。

6)综合、实现、生成bitstream。 7)仿真验证,依据真值表,在实验板验证试验结果。

实验报告说明 数字逻辑课程组 实验名称列入实验指导书相应的实验题目。 实验目的目的要明确,要抓住重点,可以从理论和实践两个方面考虑。可参考实验指导书的内容。在理论上,验证所学章节相关的真值表、逻辑表达式或逻辑图的实际应用,以使实验者获得深刻和系统的理解,在实践上,掌握使用软件平台及设计的技能技巧。一般需说明是验证型实验还是设计型实验,是创新型实验还是综合型实验。 实验环境实验用的软硬件环境(配置)。 实验内容(含电路原理图/Verilog程序、管脚分配、仿真结果等;扩展内容也列入本栏)这是实验报告极其重要的内容。这部分要写明经过哪几个步骤。可画出流程图,再配以相应的文字说明,这样既可以节省许多文字说明,又能使实验报告简明扼要,清楚明白。 实验结果分析数字逻辑的设计与实验结果的显示是否吻合,如出现异常,如何修正并得到正确的结果。 实验方案的缺陷及改进意见在实验过程中发现的问题,个人对问题的改进意见。 心得体会、问题讨论对本次实验的体会、思考和建议。

循环码产生电路设计

循环码产生电路设计 1.引言 在线性分组码中,有一种重要的码称为循环码。循环码是线性分组码中最重要的一种子类,是目前研究的比较成熟的一类码。循环码具有许多特殊的代数性质,这些性质有助于按照要求的纠错能力系统地构造这类码,并且简化译码算法,并且目前发现的大部分线性码与循环码有密切关系。循环码还有易于实现的特点,很容易用带反馈的移位寄存器实现其硬件。循环码是在严密的代数学理论基础上建立起来的。这种编码和解码设备都不太复杂,而且纠错的能力较强。循环码除了具有线性码的一般性质外,还具有循环性。循环性是指任一码组循环一位以后,认为该码中的一个码组。 正是由于循环码具有码的代数结构清晰、性能较好、编译码简单和易于实现的特点,因此在目前的计算机纠错系统中所使用的线性分组码几乎都是循环码。它不但可以纠正独立的随机错误,也可用于检错突发错误并且非常有效。(n,k)循环码能够检测长为n-k 或更短的任何突发错误, 包括首尾相接突发错误。n-k+1位长的突发错误不能被检出所占的概率最大是错误!未找到引用源。,如果l>n-k+1,则不能检测长为l 的突发错误所占据的比值最大为)(2k n --。 2.设计要求 (1)用simulink 对系统建模。 (2)写出其生成多式。 (3)对所设计的系统性能进行仿真分析。 (4)对其应用举例阐述。 3.设计原理 3.1 循环码多项式 为了利用代数理论研究循环码,可以将码组用代数多项是来表示,这个多项式被称为码多项式,对于许用循环码A =(0121a a a a n n ?-- ),可以将它的码多项式表示为:

T(x)=012211a x a x a x a x a i i n n n n ++?++?++----对于二进制码组,多项式的每个系数不是0就是1,x 仅是码元位置的标志。因此,这里并不关心x 的取值。 3.2 循环码的生成多项式和生成矩阵 (全0码字除外)称为生成多项式,用g (x )表示。可以证明生成多项式g (x )具有以下特性: 1)g (x )是一个常数项为1的r=n-k 次多项式; 2)g (x )是1+n x 的一个因式; 3)该循环码中其它码多项式都是g (x )的倍式。 为了保证构成的生成矩阵G 的各行线性不相关,通常用g (x )来构造生成矩阵,这时,生成矩阵G 可以表示为: ?????? ?? ?????????????=--)()()()()(21x g x g x x g x x g x x G k k 其中011)(a x a x a x x g r r r ++++=- ,因此,一旦生成多项式g (x )确定以后,该循环码的生成矩阵就可以确定,进而该循环码的所有码字就可以确定。 3.3 循环码的编、译码方法 在编码时,首先需要根据给定循环码的参数确定生成多项式g (x ),也就是从1+n x 的因子中选一个(n-k )次多项式作为g (x );然后,利用循环码的编码特点,即所有循环码多项式A (x )都可以被g (x )整除,来定义生成多项式g (x )。 根据上述原理可以得到一个较简单的系统循环码编码方法:设要产生(n,k )循环码,m (x )表示信息多项式,则其次数必小于k ,而)(x m x k n ?-的次数必小于n ,用)(x m x k n ?-除以g (x ),可得余数r (x ),r (x )的次数必小于(n-k ),将r (x )加到信息位后作监督位,就得到了系统循环码。下面就将以上各步处理加以解释。 (1)用)(x m x k n ?-。这一运算实际上是把信息码后附加上(n-k )个“0”。例如,信息码为110,它相当于m (x )=2x +x 。当n-k =7-3=4时,)(x m x k n ?-=6x +5x ,它相当于1100000。

实验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线译码器,并进行实验。

华中科技大学数字逻辑实验报告

华中科技大学数字逻辑实验报告 姓名: 专业班级: 学号: 指导老师: 完成时间:

实验一:组合逻辑电路的设计 一、实验目的: 1.掌握组合逻辑电路的功能测试。 2.验证半加器和全加器的逻辑功能 3.学会二进制的运算规律。 二、实验所用组件: 二输入四与门74LS08,二输入四与非门74LS00,二输入四异或门74LS86,六门反向器74LS04芯片,三输入三与非门74L10,电线若干。 三、实验内容: 内容A:全加全减器。 实验要求: 一位全加/全减法器,如图所示: 电路做加法还是做减法运算是由M决定的,当M=0做加法,M=1做减法。当作为全加法起时输入A.B和Cin分别为加数,被加数和低位来的进位,S和数,Co位向上位的进位。当作为全减法器时输入信号A,B和Cin分别为被减数,减数和低位来的借位,S为差,Co为向上的借位。 实验步骤: 1.根据功能写出输入/输出观察表:

2. 3.做出卡诺图,确定输出和激励的函数表达式:

4.根据逻辑表达式作出电路的平面图: 5.检查导线以及芯片是否完好无损坏,根据平面图和逻辑表达式连接电路。 实验结果: 电路连接好后,经检测成功实现了一位全加/全减法器的功能。 内容B:舍入与检测电路的设计: 试验要求: 用所给定的集合电路组件设计一个多输出逻辑电路,该电路的输入为8421码,F1为“四

舍五入”输出信号,F2为奇偶检测输出信号。当电路检测到输入的代码大宇或等于(5)10时,电路的输出F1=1;其他情况F1=0。当输入代码中含1的个数为奇数时,电路的输出F2=1,其他情况F2=0。该电路的框图如下所示: (1)按照所设计的电路图接线,注意将电路的输入端接试验台的开关,通过拨动开关输入8421代码,电路输入按至试验台显示灯。 (2)每输入一个代码后观察显示灯,并将结果记录在输入/输出观察表中。 实验步骤 1.按照所给定的实验要求填写出F1,F2理论上的真值表。 2.根据真值表给出F1和F2的卡诺图。

数理统计作业二__用数学实验的方法验证大数定理和中心极限定理

验证大数定理: 1、实验原理: 证明大数定理即证明样本均值趋近于总体均值。 2、实验步骤: ①在excel中,用公式 =RAND( )*9+1 生成2000个1到10之间的随机数。 ②选择样本的前50个,前100个,前150个…前2000个,分别求出均值。 ③利用excel作出上述求出值的样本均值折线图(图一)和总体均值折线图(图二): 图一 图二 从图一和图二中可以看出样本均值最终趋于水平,即趋于总体均值,大数定理得证。

验证中心极限定理: 1、实验原理: 证明中心极限定理即证明N个独立同分布的随机变量和的极限分布为正态分布。本次实验采用独立同分布于0-1分布B(1,0.5)的随机变量序列E k,k=1,2,3······来验证中心极限定理。因为E k, k=1,2,3······之间是独立同分布,所以 )5.0, ( ~ E n 1 k k n B ∑ =。由中心极 限定理可知,当n的取值足够大时,∑ = n 1 k k E 这一随机变量的分布与正太分 布具有很好的近似,下面用MATLAB软件分别画出n取不同值时∑ = n 1 k k E 的分 布及对应的正太分布的图像,通过对比这两条曲线的相似度来验证中心极限定理。 2、实验步骤: ①当n=10时,对应正态分布为N(5,2.5)。 MATLAB结果图:

MATLAB源程序: MATLAB结果图:

MATLAB源程序: MATLAB结果图:

MATLAB源程序: MATLAB结果图:

MATLAB源程序: ⑤观察得出,当N足够大时,其密度函数服从正态分布,即满足 中心极限定理。

15.7循环码

2013年秋季学期 《计算机通信》课程设计 题目:(15,7)循环码的编译码方法专业班级: 姓名: 学号: 指导教师: 成绩:

摘要 本课程设计主要是通过分析查阅(n,k)循环码的编码方法,在MATLAB环境下设计了对(15,7)循环码编译码方法的仿真,首先设计了对任意(15,7)循环码的编译码,然后使一个经过(15,7)循环码编码的信号序列通过高斯信道,再对译码后的序列进行误码分析,加深对循环码的了解。 关键词:QAM调制;瑞利衰落;matlab

目录 摘要 (2) 目录 (3) 前言 (1) 一、循环码编码 (2) 1.1信道编码理论 (2) 1.1.1信道编码的目的 (2) 1.1.2信道编码的实质 (2) 1.1.3 信道编码公式 (2) 1.1.4线性分组码的编译码原理 (3) 1.2循环码介绍 (4) 1.2.1循环码定义 (4) 1.2.2循环码的特点 (5) 1.2.3 (n.k)循环码的码多项式表示 (5) 1.2.4 (n,k)循环码的生成多项式与生成矩阵 (6) 1.2.5 (n,k)循环码的校验多项式与一致校验矩阵 (7) 1.3 循环码编码原理 (9) 1.4循环码的最小码距 (9) 1.5循环码的纠检错能力 (9) 1.6 循环码的纠错译码原理 (10) 二、(15,7)循环码程序设计 (13) 2.1(15,7)循环码仿真模块 (13) 2.2(15,7)循环码译码仿真模块 (14) 2.3(15,7)循环码在高斯信道下的误码性能仿真模块 (15) 三、设计与仿真 (16) 3.1仿真设备 (16) 3.2 (15,7)循环码的编码 (16) 3.3 (15,7)循环码的译码 (16) 3.4 (15,7)循环码在高斯信道下的误码性能 (18) 总结 (19) 参考文献 (20) 附录 (21) 致谢 (27)

译码器实验报告

译码器实验报告 实验三译码器及其应用 一、实验目的 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,实验结果记录: 六、实验注意事项

数字逻辑实验报告

数字逻辑实验报告:加法器

安徽师范大学 学院实验报告 专业名称软件工程 实验室 实验课程数字逻辑 实验名称加法器实验姓名 学号 同组人员 实验日期 2013.3.26

注:实验报告应包含(实验目的,实验原理,主要仪器设备和材料,实验过程 和步骤,实验原始数据记录和处理,实验结果和分析,成绩评定)等七项内容。具体内容可根据专业特点和实验性质略作调整,页面不够可附页。 实验目的:学会使用实验箱搭建基本组合逻辑电路。 实验原理:全加器是中规模组合逻辑器件,它实现二进制数码的加法运算,是计算机中最基本的运算单元电路。一位加法器有三个输入端Ai 、B i 、C i -1,即被加数,有两个输出端S i 和B i 即相加及向高一位的进位输出。 (全加真值表) Si=A i B i C i -1+A i B i C i -1+A i B i C i -1+A i B i C i -1 C i =A i B i +A i C i -1+B i C i -1 全加器主要用于数值运算;另外,全加器还可以实现组合逻辑函数。 主要仪器设备和材料:数字逻辑电路实验装置、芯片 74LS32、芯片 74LS08、 芯片74LS86,导线 实验过程和步骤: ①关闭实验箱的电源开关,将三个芯片正确地安装在实验箱装置上; ②分别用三根导线将三个芯片的第14号引脚与实验箱左下角的+5V 连接起来,,再分别用三根导线将三个芯片的第7号引脚与实验箱左下角的GND 连接 Ai B i C i -1 S i B i 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1

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