现场总线控制技术实验报告.

课程名称: 现场总线实验

任课教师: 廉迎战

学 院: 自动化

专业班级:

学 号:

学生姓名:

1

2015 年 6月 16日

实验一 频移键控法仿真实验

一.实验目的

初步掌握通信原理基础知识中频移键控法的基本原理。

能用 MATLAB 仿真软件,编写并调试简单的仿真程序。

二.实验主要仪器设备和材料

实验用计算机

MATLAB 仿真软件三.实验内容

四.实验步骤及结果测试

1.安装部署 MATLAB 仿真环境,同时根据频移键控法要求,设置

仿真环境。

在 MATLAB 环境下,输入频移键控法原理图。原理图如下:

2

方法一

方法二

Repeating sequence stair:F3 数字信号

sine wave : 100Hz 信号

Sine wave1 : 50Hz 信号

Scope1:示波器

3

方法一: Switch1: 选通开关 // 方法二:用乘法器 product 代替

在 MATLAB 中产生 F1=50Hz 和 F2=100Hz 的交流信号,以及需要发送的数字信号,数字信号为: F3波波形。

加载输入信号,观察仿真原理图输出信号波形,同时记录并分析。如下图:

五.思考题

1.数字信号的频移键控法输出波形表示形式如下:

输出的数字信号为,其频移键控波形如下的 OUT :

4

1~6 行输出信号分别为: 1.数字信号的输入信号;2. 50Hz

频率 sine;3.100Hz 频率 sine; 4. Product 输出; 5.product1 输出;

6.add 输出

2.如何实现幅移键控法的信号通讯技术?

通过信号幅值的高低映射到数字信号的 1 和 0 从而达到载波传输信号, 可利用

现成的电信网,电话网等设施构成信道。

5

3.实验二 双极性非归零编码仿真实验

一.实验目的

初步掌握通信原理基础知识中的数字编码技术应用。

能用 MATLAB 仿真软件,编写并调试简单的仿真程序。

二.实验主要仪器设备和材料

实验用计算机

MATLAB 仿真软件三.实验内容

双极性非归零编码仿真实验原理图如同所示。

图 2 双极性非归零编码仿真原理图

四.实验步骤及结果测试

1.安装部署 MATLAB 仿真环境,同时根据双极性非归零编码要求,

设置仿真环境。

2. 在 MATLAB 环境下,设计输入双极性非归零编码原理图。如下:

6

3.

Signal buder : F=1011010010 单极性 方波波形;

Constant1:值为 1 的常数信号;

Constant-1:值为 -1 的常数信号 :

在 MATLAB 中产生数字信号为: F=1011010010 单极性 方波波形。

在相应的输入端加载输入信号,观察仿真原理图的输出信号波形,

7

同时记录并分析。

如下图, OUT 即为 F3 信号的双极性非归零编码仿真输出。

F3 1 时选择 constant 1,0 时选择 constant -1,合并波形。

以 上 6 个 信 号 分 别 为 : 1.signal builder 的 数 字 信 号 10110100101;

2.constant=1;3.constant1=-1;4.product 信号;5.product1 信号;6.add

输出信号

8

五.思考题

1.数字信号 10110100101双极性非归零编码输出波形图如下 OUT:

以 上 6 个 信 号 分 别 为 : 1.signal builder 的 数 字 信 号 10110100101;

2.constant=1;3.constant1=-1;4.product 信号;5.product1 信号;6.add

输出信号

输出的数字信号为 10110100101时,其单极性非归零编码波形如下 OUT:

9

以 上 6 个 信 号 分 别 为 : 1.signal builder 的 数 字 信 号 10110100101;

2.constant=1;3.constant1=0;4.product 信号; 5.product1 信号; 6.add

输出信号

2.如何实现双极性非归零编码的信号通讯?

通过电平的高低表示数字信号的 1 和 0;将数字信号调制成电平信号,经过信道传输,在信宿解调实现信号的还原从而完成通讯。

10

实验三 曼彻斯特编码仿真实验

一.实验目的

初步掌握通信原理基础知识中的曼彻斯特编码技术应用。

能用 MATLAB 仿真软件,编写并调试简单的仿真程序。

二.实验主要仪器设备和材料

实验用计算机

MATLAB 仿真软件三.实验内容

曼彻斯特编码仿真实验原理图如同所示。

图 2 曼彻斯特编码仿真波形图

四.实验步骤及结果测试

1.安装部署 MATLAB 仿真环境,同时根据曼彻斯特编码要求,设

置仿真环境。

2. 在 MATLAB 环境下,设计并输入曼彻斯特编码原理图。如下:

11

3.

Signal buder : F波波形 ;

Repeating Sequence Stair:重复下降沿信号,周期 1 秒;(曼彻斯

特编码中,当输入为 0 时,产生一个上升沿信号)

Repeating Sequence Stair1:重复上升沿信号, 周期 1 秒;(曼彻斯

特编码中,当输入为 1 时,产生一个下降沿信号)

在 MATLAB 中产生数字信号为: F曼彻斯特编码方波波形

输入波形为:

12

在相应的输入端加载输入信号,观察仿真原理图的输出信号波形,

同时记录并分析。如下:

13

以上 6 个输出信号分别为: 1.signal builder 的输入信号 :F 2.周期为 1 的下降沿信号; 3.周期为 1 的上升沿信号; 4.product 输出信号(当输入信号为 1 时,输出下降沿信号); 5. Product1输出信号(当输入信号为 0 时,输出上升沿信号); 6.输出 F曼彻斯特编码波形

五.思考题

数字信号 10110100101 的曼彻斯特编码输出波形表示形式如下图:

14

输出的数字信号为 10110100101时,其差分曼彻斯特编码波形如下:

如何实现曼彻斯特编码的信号通讯?

通过一个周期内高低电平的反转表示数字信号的 1 和 0;相邻两个保持一样表示数字 0,跳变相反表示数字 1。将数字信号调制成这样的电平信号,经过信道传输,在信宿解调实现信号的还原从而完成通讯。

15

实验四 CRC 冗余码校验编程实验

一.实验目的

掌握 CRC 冗余码校验编程。

利用 C 语言编程实现 CRC 校验过程。

二.实验主要仪器设备和材料

实验用计算机

C 语言开发软件三.实验内容

CRC 校验码的基本思想是利用线性编码理论,在发送端根据要传送的 k 位二

进制码序列,以一定的规则产生一个校验用的监督码(既 CRC 码) r 位,并附在信

息后边,构成一个新的二进制码序列数共 (k+ r) 位,最后发送出去。在接收端,则

根据信息码和 CRC 码之间所遵循的规则进行检验,以确定传送中是否出错。

四.实验程序及结果测试

用 CRC-8 对数据 1011 0100 1010 进行效验,计算其效验码

程序清单如下:

#include<stdio.h>

void main(){

int k,i,j,n;

int a[20]={1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1};

int num[30];

16

int crc[30];

printf("xinxishujuweishu:");

scanf("%d",&k);

printf("shujuwei:\n");

for(i=k-1;i>=0;i--)

scanf("%d",&num[i]);

printf("K(x):");

for(i=k-1;i>=0;i--)

printf("%d",num[i]);

printf("\n");

for(i=k-1+16;i>=16;i--){

num[i]=num[i-16];

}

for(i=15;i>=0;i--){

num[i]=0;

}

printf("x^16*K(x):");

for(i=k-1+16;i>=0;i--)

printf("%d",num[i]);

printf("\n");

for(i=k-1+16;i>=16;i--){

if(num[i]==0){

crc[i-16]=0;

}

else{

crc[i-16]=1;

for(j=i,n=1;j>=i-16;j--,n++){

if(num[j]==a[16-n+1])

num[j]=0;

else

num[j]=1;

}

}

}

printf(" 冗余码 R(x) : ");

for(i=k-1+16;i>=0;i--){

if(num[i]!=0){

17

for(j=i;j>=0;j--)

printf("%d",num[j]);

break;

}

}

printf("\n");

printf(" 商输出 ");

for(i=k-1;i>=0;i--)

printf("%d",crc[i]);

printf("\n");

system("pause");

}

输出结果如下:

18