单片机串行通信实验报告(实验要求、原理、仿真图和例程)

单片机串行通信实验报告(实验要求、原理、仿真图和例程)
单片机串行通信实验报告(实验要求、原理、仿真图和例程)

《嵌入式系统原理与实验》实验指导

实验三调度器设计基础

一、实验目得与要求

1.熟练使用KeilC51IDE集成开发环境,熟练使用Proteus软件。

2.掌握Keil与Proteus得联调技巧。

3.掌握串行通信在单片机系统中得使用。

4.掌握调度器设计得基础知识:函数指针。

二、实验设备

1.PC机??一套

2.Keil C51开发系统?一套

3.Proteus 仿真系统??一套

三、实验内容

1.甲机通过串口控制乙机LED闪烁

(1)要求

a.甲单片机得K1按键可通过串口分别控制乙单片机得LED1闪烁,LED2闪烁,LED1与LED2

同时闪烁,关闭所有得LED。

b.两片8051得串口都工作在模式1,甲机对乙机完成以下4项控制。

i.甲机发送“A”,控制乙机LED1闪烁。

ii.甲机发送“B”,控制乙机LED2闪烁。

iii.甲机发送“C”,控制乙机LED1,LED2闪烁。

iv.甲机发送“C",控制乙机LED1,LED2停止闪烁。

c.甲机负责发送与停止控制命令,乙机负责接收控制命令并完成控制LED得动作。两机得程序

要分别编写。

d.两个单片机都工作在串口模式1下,程序要先进行初始化,具体步骤如下:

i.设置串口模式(SCON)

ii.设置定时器1得工作模式(TMOD)

iii.计算定时器1得初值

iv.启动定时器

v.如果串口工作在中断方式,还必须设置IE与ES,并编写中断服务程序。

(2)电路原理图

Figure 1 甲机通过串口控制乙机LED闪烁得原理图

(3)程序设计提示

a.模式1下波特率由定时器控制,波特率计算公式参考:

b.可以不用使用中断方式,使用查询方式实现发送与接收,通过查询TI与RI标志位完成。

2.单片机与PC串口通讯及函数指针得使用

(1)要求:

a.编写用单片机求取整数平方得函数.

b.单片机把计算结果向PC机发送字符串。

c.PC机接收计算结果并显示出来。

d.可以调用Keil C51 stdio、h 中得printf来实现字符串得发送.

e.单片机得数码港显示发送得次数,每9次清零。

(2)参考电路原理图

Figure 2 单片机与PC串口通讯及函数指针得使用原理图

(3)程序设计要求

a.编写求平方函数时,采用函数指针来编写。

b.参考头文件模式,完善设计项目文件结构.

四、思考题

1.如果实验1如何使用实验2得成果来改写?

2.请结合实例说明什么就是函数指针及如何使用函数指针。

五、实验报告要求

1.简述编写C程序,并联合调试程序得过程。

2.解释编写得实验程序得代码,描述实验结果。

3.解答思考题。

4.简述实验得心得。

《嵌入式系统原理及实验》实验报告

Lab 3调度器设计基础

一、甲机通过串口控制乙机LED闪烁

(一)实现原理

1.总体思路?通过发送缓冲寄存器SBUF,以及接收缓冲寄存器SBUF,将在甲机上初始化得要发

送得数据’A’,'B’,'C','D’存入一个数组,通过超级循环内设定得一个按键控制函数,依

次发送给乙机,由乙机接收并让相应得LED灯闪烁。

2.硬件设计

上图所示得就是单击Play以后开始仿真,此时没有按键按下,甲机乙机均处于等待状态之下.

*******************************************************************

上图所示按键第一次按下,甲机发送字符'A’,D1灯闪烁,乙机接收字符'A’,并显示相应与甲机D1灯位置对应得D2灯闪烁。

*******************************************************************

以上两幅图就是在一起得,也许就是LED灯启动以及延迟还有甲、乙机发送接收数据时间差等各方面得差异,甲机得D3灯与乙机得D4灯亮不到一块去,它们交替着闪烁,此闪彼灭。?总

之,以上两幅图所呈现得,就是当按键第二次按下,甲机发送字符’B',并闪烁D3灯,乙机接收字符’B’,并闪烁相应得D4灯。

*******************************************************************

上图所示按键第三次按下,控制甲机发送字符'C',并同时闪烁D1与D3灯,与此同时,乙机接收甲机发来得字符'C’,并同时闪烁D2、D4灯.图中所示得就是LED灯一闪一灭时得亮状态,灭状态得截图此处省去.

*******************************************************************

上图所示按键第四次按下,甲机向乙机发送字符'D',同时使得D1、D3灯灭掉,乙机接收完字符’D’之后,也使得其控制得D2、D4灯停止闪烁。

3.软件设计

流程图:

?????开始

???↓←←←←←←↑

???就是否有按键按下?否→↑

??????就是↓

?????第几次按下按键?

??↓

?? 1?? 2 3 4

????↓?↓↓↓

↓甲机发送字符:'A’?'B' 'C'’D’

?↓↓↓

????↓?

?????LED1 LED3 LED1 LED1&LED3全灭???闪烁闪烁?都闪烁

&LED3?

????↓

???乙机接收相应字符

??????↓

’A’’B' 'C'?'D'

?↓?↓?↓?↓

???LED2 LED4 LED2 LED2&LED4全灭

????闪烁闪烁&LED4?

都闪烁

关键代码段+解释:

甲机代码段·································································

/*******************************

//按键控制函数

void button(void)//按键控制函数

?debouncing();//调用消抖函数

if(n==1)

?{

?SBUF=send[i];//发送第i个数据

?while(TI==0);//查询等待发送就是否完成

??TI=0;//发送完成,TI由软件清0

??n=0;

?switch(i)

?{

?case 0: while(debouncing()==0){D1=~D1;delay_ms(150);}break;//甲机D3灯灭状态,D1灯不断闪烁,直到有新得按键按下为止

??case 1: D1=1;while(1){D3=~D3;delay_ms(150);if(debouncing()){break;}}break;//甲机D1灯灭状态,D3灯不断闪烁,直到有新得按键按下为止

case 2: D3=1;while(1){D1=~D1;D3=~D3;delay_ms(150);if(d ebouncing()){break;}}break;//甲机D1、D3灯一起不断闪烁,直到有新得按键按下为止

case 3: D1=1;D3=1;break;//甲机D1、D3灯均处于灭状态

??default: ;

?}

?i++;

if(i==4)//使控制功能能循环反复地执行

?{

?i=0;//使控制功能能循环反复地执行

}

*******************************/

/*******************************

//甲机相关初始化

TMOD=0x20;//定时器T1工作于方式2

TL1=0xf4;//波特率为2400bps

TH1=0xf4;

TR1=1;

SCON=0x40;//定义串行口工作于方式1

*******************************/

乙机代码段·································································

/*******************************

//乙机接收显示函数

void disp(void)//乙机接收显示函数

REN=1;//允许接收

while(RI==0);//查询等待接收标志为1,表示接收到数据

buffer[i]=SBUF;//接收数据

?RI=0;//RI由软件清0

switch(i)

{

?case 0: while(!RI){D2=~D2;delay_ms(150);}break;//乙机D4灯灭状态,D2灯不断闪烁,直到乙机接收到新传来得数据为止

case 1: D2=1;while(1){D4=~D4;delay_ms(150);if(RI){break;}}brea k;//乙机D2灯灭状态,D4灯不断闪烁,直到乙机接收到新传来得数据为止

?case 2: D4=1;while(1){D2=~D2;D4=~D4;delay_ms(150);if(RI){break;}}break;//甲机D2、D4灯一起不断闪烁,直到乙机接收到新传来得数据为止

?case 3: D2=1;D4=1;break;//乙机D2、D4灯均处于灭状态

default: ;

}

i++;

if(i==4)//使控制功能能循环反复地执行

{

? i=0;//使控制功能能循环反复地执行

}

*******************************/

/*******************************?//乙机相关初始化

TMOD=0x20;//定时器T1工作于方式2

TL1=0xf4;//波特率为2400bps

TH1=0xf4;

TR1=1;

SCON=0x40;//定义串行口工作于方式1

*******************************/

(二)调试

1.调试得方式

软件仿真

调试现象:

①单击Play以后开始仿真,此时没有按键按下,甲机乙机均处于等待状态之下。

②P1、0口按键第一次按下以后,甲机D1灯闪烁,同时乙机D2灯也闪烁。

③当按键第二次按下,甲机闪烁D3灯,乙机闪烁D4灯。

④按键第三次按下时,甲机同时闪烁D1与D3灯,与此同时,乙机同时闪烁D2、D4灯。

⑤按键第四次按下,甲机得D1、D3灯同时灭掉,乙机控制得D2、D4灯也都停止闪烁。

⑥若接下来还有按键按下,那将回到②,如此循环执行下去。

(三)实验再思考

1.进一步改进得设想?可以用串行口中断服务程序来实现。

2.实验得收获?学会了双机串行口通信

3.实验中尚不能解决得疑问

得确有个疑问:

若就是我把程序中得任何一个switch语句改成如下形式:

switch(SBUF)?{?case 'A':……; break;

case'B': ……; break;? case 'C’:……; break;

case ’D’: ……; break;

default: ;?}?这样得switch语句无论出现在甲机还就是乙机得程序里面,都无法实

现相应得任何控制功能了.SBUF存储数据得情况具体就是怎样得呢?switch语句不能够引用SB

UF吗?

二、单片机与PC串口通讯及函数指针得使用

(一)实现原理

1.总体思路

按键接得就是P3、2复用口,于就是就想到用外部中断0控制。所以,将数码管显示程序以及串

口通讯程序都一起放入外部中断INT0服务程序当中,就可以实现实验要求。?另外,在C51程序

编写当中还应当特别注意以下几点:

①?TH1=0xf3;

?TL1=0xf3;//设置串行口波特率为2400bps,定时器初值,波特率设置非常严格?//要就

是设置错了,在发送与接收得时候,就会出现莫名其妙得符号,比如说:x▋xxx▋▋xx▋x 诸

如此类、、、O__O"…?②调用printf之前应该关闭串口中断使能

ES=0;//禁止串行口中断

TI=1;//必须置高TI,RI

RI=1;

printf("%d*%d=%d”,n,n,c);? putchar('\n’);?while(!TI);

//等待printf语句执行完毕? while(!RI);//等待printf语句执行完毕

2.硬件设计

上图所示有关串口PIM得相关参数设置应该注意得地方

****************************************************************

上图所示虚拟终端相关参数设置应该注意得地方,虚拟终端相关参数设置应该与串口得相关参数设置一致,也应该与C51编程中串口初始化时设定得波特率得数值一致,即都应该就是2400bps。?

注意,虚拟终端得RXD应当与串口第3脚TXD(即发送端)连接,否则仿真时无法虚拟终端调试窗口无法显示printf语句内容。

****************************************************************

上图所示得就是单击Play以后开始仿真,此时没有按键按下,数码管静止在显示0得状态当中,此时没有任何得数据发送与接收.

****************************************************************

上图所示当第一次按下按键时,触发外部中断,单片机调用函数指针指向得求取整数平方得函数,并将计算结果发送给PC机,此时虚拟终端显示:1^2=1;即1=1; (似乎虚拟终端显示框要显示得文字在这个截图里面有点小,瞧不太清楚),数码管此时显示发送次数为1.

****************************************************************

上图所示当第5次按键按下,数码管显示发送次数为5,此时也可以清楚地观察到虚拟终端调试窗口得显示:?1*1=1

25

2*2=4?3*3=9?4*4=16?5*5=

****************************************************************

数码管显示每9次清零,求整数平方数也就是0~9循环,上图所示虚拟终端显示结果有异常情况。到目前为止,我改写过多种printf语句形式,可就是还就是解决不了上图所示得异常显示问题。

为什么会显示成:

$6^2=36;?17^2=49;

8^2=64;

Q9^2=81;

(⊙o⊙)呢?好奇怪!?

****************************************************************

?如上图所示,就算我改了printf语句形式,也还就是会有同样得问题出现。

*************************************************************

***

?上图所示就是数码管每9次清零,然后再执行到3得情况,从虚拟终端调试窗口可见0~9求平方已经循环执行到了第二轮得3。

3.软件设计

流程图:

开始

初始化定时器1、串口、外部中断0

???↓

???????等待中断←←←←←←←↑

????????↓???↑

就是否有外部中断?否→→→→↑

就是↓?↑

转入外部中断0中断服务程序↑

??↓?↑

按键消抖??↑

?↓??↑

函数指针调用求整数平方函数?↑

??↓??↑

在数码管上显示发送次数?↑

?↓?↑

发送求取结果??↑

?↓??↑

查询等待发送就是否完成??↑

?↓???↑

发送完成,TI由软件清0?↑

??↓?↑

在虚拟终端上显示求平方结果↑

↓??↑

?中断返回???↑

??????↓→→→→→→→→↑

关键代码段+解释:

/*******************************?//串口初始化

?TH1=0xf3;

TL1=0xf3;//设置串行口波特率为2400bps,定时器初值,波特率设置非常严格

? //要就是设置错了,在发送与接收得时候,就会出现莫名其妙得符号,比如说:x▋xxx▋▋xx▋x诸如此类、、、O__O"…

?SCON=0x50;//0101,0000:串行口方式1EN=1允许接收,8位异步通信方式,8-bit UART,TI= 0; RI=0

?PCON=0x00;//SMOD=0

EA=1;//开总中断允许位

?ES=1;//开串行口中断

*******************************/

/*******************************

//求取整数平方函数

uint pow2(uint x)//求取整数平方函数

{

?uint q;

q=x*x;

?return q;//return返回平方数结果

*******************************/

/*******************************?//虚拟终端显示

void vir_ter(uintn,uint c)//虚拟终端显示

{

?ES=0;//禁止串行口中断

?TI=1;//必须置高TI,RI,TI=1发送填充字节,中断“不”使能

?RI=1;

printf("%d*%d=%d”,n,n,c);//?*、调用printf之前应该关闭串口中断使能

?putchar('\n');

?while(!TI);//等待printf语句执行完毕

?while(!RI);//等待printf语句执行完毕

ES=1;

TI=0;

?RI=0;

*******************************/

/*******************************

//外部中断INT0中断服务程序

voidintsvr0(void)interrupt 0//外部中断INT0

{

debouncing();//调用消抖函数

?c=(*p)(n);//用函数指针形式调用求取整数平方函数

disp(n);//在数码管上显示发送次数

?SBUF=c;//发送求取结果

while(TI==0);//查询等待发送就是否完成

TI=0;//发送完成,TI由软件清0

vir_ter(n,c);//在虚拟终端上显示求平方结果

*******************************/

(二)调试

1.调试得方式

软件仿真

调试现象:

①单击Play以后开始仿真,此时没有按键按下,数码管静止在显示0得状态当中,此时没有任

何得数据发送与接收。

②P3、2口按键第一次按下以后,触发外部中断,单片机调用函数指针指向得求取整数平方得

函数,并将计算结果发送给PC机,此时虚拟终端显示:1^2=1; 即1=1;

③不端按下按键触发外部中断,当外部中断一到来,单片机就执行调用函数指针指向得求取整

数平方数得函数,并将求取结果发送给串口.单片机0~9不断循环求取整数平方数,并也循

环显示在虚拟终端调试窗口上,数码管显示求取整数平方数结果发送次数,每9次清零。

2.遇到问题得处理

①?虚拟终端得RXD应当与串口第3脚TXD(即发送端)连接,否则仿真时无法虚拟终端调试窗

口无法显示printf语句内容。

②?虚拟终端相关参数设置应该与串口得相关参数设置一致,也应该与C51编程中串口初始化

时设定得波特率得数值一致,在此次实验报告中即都应该就是2400bps。

在编写C51程序时,TH1=0xf3;TL1=0xf3;//设置串行口波特率为2400bps。波特率得设置非常严格,要就是设置错了,在发送与接收得时候,就会出现莫名其妙得符号,比如说:x ▋xxx▋▋xx▋x 诸如此类、、、O__O"…

(三)实验再思考

1.进一步改进得设想

目前还没有设计得出外部中断服务程序与串行口中断服务程序同时一起用得C51程序,遇到很多问题。希望老师今后能指导我们关于双重中断程序得编写,我自己捣鼓了好久还没捣鼓出来。

2.实验得收获

收获当然很多,诸如:虚拟终端得RXD应当与串口第3脚TXD(即发送端)连接等等都就是我对单片机新得认识,新得收获。?还有:?SBUF=c;//发送求取结果?while(TI==0);

//查询等待发送就是否完成?TI=0;//发送完成,TI由软件清0

ES=0;//禁止串行口中断

TI=1;//必须置高TI,RI,TI=1发送填充字节,中断“不"使能

RI=1;?printf(”%d*%d=%d”,n,n,c);//调用printf之前应该关闭串口中断使能?putchar('\n');

while(!TI);//等待printf语句执行完毕?while(!RI);//等待printf语句执行

完毕

以上语句应该熟记,就是使能虚拟终端得常用语句。

3.实验中尚不能解决得疑问

上图所示便就是最大得疑问!!!

(四)附录(粘贴完整代码)?甲机通过串口控制乙机LED闪烁

甲机完整代码·······························································

-Target 1

-Source Group

+F、c

F、h

+main、c

//F、h/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#include<reg51、h>

#define uchar unsigned char

#define uint unsigned int

sbit D1 = P0^0;

sbit D3 = P0^3;

sbit P1_0 = P1^0;

uint debouncing(void);

void button(void);

void delay_ms(uint xms);

//F、c//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#include"F、h”

uint n=0;

uchar i=0;

extern uchar send[4];//声明全局变量

void delay_ms(uint xms)//ms级延时函数

uint x,y;

for(x=xms;x〉0;x——)

{

for(y=130;y>0;y--);

?}

}

uint debouncing(void)//debouncing:消除抖动得意思,按键消抖函数:若确实有按键按下,函数返回值为1;否则返回值为0

if(P1_0==0)//有键按下吗?

?delay_ms(10); //延时消抖

?if(P1_0==0)//确实就是有键按下

?n=1;

??while(P1_0==0);//等待按键松开

???return 1;//若有按键按下,函数返回值为1

??else return 0;//若无按键按下,函数返回值为0

?}

else return 0;//若无按键按下,函数返回值为0

}

void button(void)//按键控制函数

debouncing();//调用消抖函数

?if(n==1)

? SBUF=send[i];//发送第i个数据

while(TI==0);//查询等待发送就是否完成

TI=0;//发送完成,TI由软件清0

n=0;

switch(i)

{

case 0: while(debouncing()==0){D1=~D1;delay_ms(150);}break;//甲机D3灯灭状态,D1灯不断闪烁,直到有新得按键按下为止

?case 1: D1=1;while(1){D3=~D3;delay_ms(150);if(debouncing()){break;}}break;//甲机D1灯灭状态,D3灯不断闪烁,直到有新得按键按下为止

case2: D3=1;while(1){D1=~D1;D3=~D3;delay_ms

(150);if(debouncing()){break;}}break;//甲机D1、D3灯一起不断闪烁,直到有新得按键按下为止

case 3: D1=1;D3=1;break;//甲机D1、D3灯均处于灭状态

通信原理实验报告

通信原理实验报告

作者: 日期:

通信原理实验报告 实验名称:实验一—数字基带传输系统的—MATLAB方真 实验二模拟信号幅度调制仿真实验班级:10通信工程三班_________ 学号:2010550920 ________________ 姓名:彭龙龙______________

指导老师:王仕果______________

实验一数字基带传输系统的MATLA仿真 一、实验目的 1、熟悉和掌握常用的用于通信原理时域仿真分析的MATLAB函数; 2、掌握连续时间和离散时间信号的MATLAB产生; 3、牢固掌握冲激函数和阶跃函数等函数的概念,掌握卷积表达式及其物理意义,掌握卷积的计算方法、卷积的基本性质; 4、掌握利用MATLAB计算卷积的编程方法,并利用所编写的MATLAB程序验证卷积的常用基本性质; 5、掌握MATLAB描述通信系统中不同波形的常用方法及有关函数,并学会利用MATLAB求解系统功率谱,绘制相应曲线。 基本要求:掌握用MATLAB描述连续时间信号和离散时间信号的方法,能够编写 MATLAB程序,实现各种常用信号的MATLA实现,并且以图形的方式再现各种信号的波形。 二、实验内容 1、编写MATLAB程序产生离散随机信号 2、编写MATLAB程序生成连续时间信号 3、编写MATLAB程序实现常见特殊信号 三、实验原理 从通信的角度来看,通信的过程就是消息的交换和传递的过程。而从数学的角度来看,信息从一地传送到另一地的整个过程或者各个环节不外乎是一些码或信号的交换过程。例如信源压缩编码、纠错编码、AMI编码、扰码等属于码层次上的变换,而基带成形、滤波、调 制等则是信号层坎上的处理。码的变换是易于用软件来仿真的。要仿真信号的变换,必须解 决信号与信号系统在软件中表示的问题。 3.1信号及系统在计算机中的表示 3.1.1时域取样及频域取样 一般来说,任意信号s(t)是定义在时间区间(-R, +R)上的连续函数,但所有计算机的CPU都只能按指令周期离散运行,同时计算机也不能处理( -R, + R)这样一个时间段。 为此将把s(t)按区间T, T截短为 2 2 S T(t),再对S T(t)按时间间隔△ t均匀取样,得到取样 点数为: 仿真时用这个样值集合来表示信号 T Nt t s(t)。显然△ t反映了仿真系统对信号波形的分辨 率, (3-1) △ t越小则仿真的精确度越高。据通信原理所学,信号被取样以后,对应的频谱时频率的周期函数,其重复周期是—。如果信号的最高频率为f H,那么必须有f H W 丄才能保证不发 t 2 t 生频域混叠失真。设 1 B s 2 t 则称B s为仿真系统的系统带宽。如果在仿真程序中设定的采样间隔是△ (3-2) t,那么不能用

Matlab通信系统仿真实验报告

Matlab通信原理仿真 学号: 2142402 姓名:圣斌

实验一Matlab 基本语法与信号系统分析 一、实验目的: 1、掌握MATLAB的基本绘图方法; 2、实现绘制复指数信号的时域波形。 二、实验设备与软件环境: 1、实验设备:计算机 2、软件环境:MATLAB R2009a 三、实验内容: 1、MATLAB为用户提供了结果可视化功能,只要在命令行窗口输入相应的命令,结果就会用图形直接表示出来。 MATLAB程序如下: x = -pi::pi; y1 = sin(x); y2 = cos(x); %准备绘图数据 figure(1); %打开图形窗口 subplot(2,1,1); %确定第一幅图绘图窗口 plot(x,y1); %以x,y1绘图 title('plot(x,y1)'); %为第一幅图取名为’plot(x,y1)’ grid on; %为第一幅图绘制网格线 subplot(2,1,2) %确定第二幅图绘图窗口 plot(x,y2); %以x,y2绘图 xlabel('time'),ylabel('y') %第二幅图横坐标为’time’,纵坐标为’y’运行结果如下图: 2、上例中的图形使用的是默认的颜色和线型,MATLAB中提供了多种颜色和线型,并且可以绘制出脉冲图、误差条形图等多种形式图: MATLAB程序如下: x=-pi:.1:pi; y1=sin (x); y2=cos (x); figure (1); %subplot (2,1,1); plot (x,y1); title ('plot (x,y1)'); grid on %subplot (2,1,2); plot (x,y2);

通信原理2DPSK调制与解调实验报告

通信原理课程设计报告

一. 2DPSK基本原理 1.2DPSK信号原理 2DPSK方式即是利用前后相邻码元的相对相位值去表示数字信息的一种方式。现假设用Φ表示本码元初相与前一码元初相之差,并规定:Φ=0表示0码,Φ=π表示1码。则数字信息序列与2DPSK信号的码元相位关系可举例表示如2PSK信号是用载波的不同相位直接去表示相应的数字信号而得出的,在接收端只能采用相干解调,它的时域波形图如图2.1所示。 图1.1 2DPSK信号 在这种绝对移相方式中,发送端是采用某一个相位作为基准,所以在系统接收端也必须采用相同的基准相位。如果基准相位发生变化,则在接收端回复的信号将与发送的数字信息完全相反。所以在实际过程中一般不采用绝对移相方式,而采用相对移相方式。 定义?Φ为本码元初相与前一码元初相之差,假设: ?Φ=0→数字信息“0”; ?Φ=π→数字信息“1”。 则数字信息序列与2DPSK信号的码元相位关系可举例表示如下: 数字信息: 1 0 1 1 0 1 1 1 0 1

DPSK信号相位:0 π π 0 π π 0 π 0 0 π 或:π 0 0 π 0 0 π 0 π π 0 2. 2DPSK信号的调制原理 一般来说,2DPSK信号有两种调试方法,即模拟调制法和键控法。2DPSK 信号的的模拟调制法框图如图1.2.1所示,其中码变换的过程为将输入的单极性不归零码转换为双极性不归零码。 图1.2.1 模拟调制法 2DPSK信号的的键控调制法框图如图1.2.2所示,其中码变换的过程为将输入的基带信号差分,即变为它的相对码。选相开关作用为当输入为数字信息“0”时接相位0,当输入数字信息为“1”时接pi。 图1.2.2 键控法调制原理图 码变换相乘 载波 s(t)e o(t)

北邮通信原理软件实验报告XXXX27页

通信原理软件实验报告 学院:信息与通信工程学院 班级: 一、通信原理Matlab仿真实验 实验八 一、实验内容 假设基带信号为m(t)=sin(2000*pi*t)+2cos(1000*pi*t),载波频率为20kHz,请仿真出AM、DSB-SC、SSB信号,观察已调信号的波形和频谱。 二、实验原理 1、具有离散大载波的双边带幅度调制信号AM 该幅度调制是由DSB-SC AM信号加上离散的大载波分量得到,其表达式及时间波形图为: 应当注意的是,m(t)的绝对值必须小于等于1,否则会出现下图的过调制: AM信号的频谱特性如下图所示: 由图可以发现,AM信号的频谱是双边带抑制载波调幅信号的频谱加上离散的大载波分量。 2、双边带抑制载波调幅(DSB—SC AM)信号的产生 双边带抑制载波调幅信号s(t)是利用均值为0的模拟基带信号m(t)和正弦载波 c(t)相乘得到,如图所示: m(t)和正弦载波s(t)的信号波形如图所示:

若调制信号m(t)是确定的,其相应的傅立叶频谱为M(f),载波信号c(t)的傅立叶频谱是C(f),调制信号s(t)的傅立叶频谱S(f)由M(f)和C(f)相卷积得到,因此经过调制之后,基带信号的频谱被搬移到了载频fc处,若模拟基带信号带宽为W,则调制信号带宽为2W,并且频谱中不含有离散的载频分量,只是由于模拟基带信号的频谱成分中不含离散的直流分量。 3、单边带条幅SSB信号 双边带抑制载波调幅信号要求信道带宽B=2W, 其中W是模拟基带信号带宽。从信息论关点开看,此双边带是有剩余度的,因而只要利用双边带中的任一边带来传输,仍能在接收机解调出原基带信号,这样可减少传送已调信号的信道带宽。 单边带条幅SSB AM信号的其表达式: 或 其频谱图为: 三、仿真设计 1、流程图:

单片机原理与应用技术实验报告(实验项目:发光二极管闪烁)

***数学计算机科学系实验报告 专业:计算机科学与技术班级:实验课程:单片机原理与应用技术姓名:学号:实验室:硬件实验室 同组同学: 实验时间:2013年3月20日指导教师签字:成绩: 实验项目:发光二极管闪烁 一实验目的和要求 1.使用单片机的P1.5口做输出口,使该位发光二极管闪烁。 2.掌握单片机使用。 二实验环境 PC机一台,实验仪器一套 三实验步骤及实验记录 1.在pc机上,打开Keil C。 2.在Keil C中,新建一个工程文件,点击“Project->New Project…”菜单。 3.选择工程文件要存放的路径 ,输入工程文件名 LED, 最后单击保存。 4. 在弹出的对话框中选择 CPU 厂商及型号。 5.选择好 Atmel 公司的 89c51 后 , 单击确定。 6.在接着出现的对话框中选择“是”。 7.新建一个 C51 文件 , 点击file菜单下的NEW,或单击左上角的 New File快捷键。 8.保存新建的文件,单击SAVE。 9.在出现的对话框中输入保存文件名MAIN.C,再单击“保存”。 10.保存好后把此文件加入到工程中方法如下 : 用鼠标在 Source Group1 上单击右键 , 然后再单击 Add Files to Group ‘Source Group 1'。 11.选择要加入的文件 , 找到 MAIN.C 后 , 单击 Add, 然后单击Close。 12.在编辑框里输入代码如下: #include "reg51.h" //包含头文件 sbit led=P1^5; //表示用led等效于P1^5, P1^0就是指头文件里定义的P1寄存器的第5BIT #define uchar unsigned char #define uint unsigned int

MATLAB通信系统仿真实验报告1

MATLAB通信系统仿真实验报告

实验一、MATLAB的基本使用与数学运算 目的:学习MATLAB的基本操作,实现简单的数学运算程序。 内容: 1-1要求在闭区间[0,2π]上产生具有10个等间距采样点的一维数组。试用两种不同的指令实现。 运行代码:x=[0:2*pi/9:2*pi] 运行结果: 1-2用M文件建立大矩阵x x=[0.10.20.30.40.50.60.70.80.9 1.11.21.31.41.51.61.71.81.9 2.12.22.32.42.52.62.72.82.9 3.13.23.33.43.53.63.73.83.9] 代码:x=[0.10.20.30.40.50.60.70.80.9 1.11.21.31.41.51.61.71.81.9 2.12.22.32.42.52.62.72.82.9 3.13.23.33.43.53.63.73.83.9] m_mat 运行结果: 1-3已知A=[5,6;7,8],B=[9,10;11,12],试用MATLAB分别计算 A+B,A*B,A.*B,A^3,A.^3,A/B,A\B. 代码:A=[56;78]B=[910;1112]x1=A+B X2=A-B X3=A*B X4=A.*B X5=A^3 X6=A.^3X7=A/B X8=A\B

运行结果: 1-4任意建立矩阵A,然后找出在[10,20]区间的元素位置。 程序代码及运行结果: 代码:A=[1252221417;111024030;552315865]c=A>=10&A<=20运行结果: 1-5总结:实验过程中,因为对软件太过生疏遇到了些许困难,不过最后通过查书与同学交流都解决了。例如第二题中,将文件保存在了D盘,而导致频频出错,最后发现必须保存在MATLAB文件之下才可以。第四题中,逻辑语言运用到了ij,也出现问题,虽然自己纠正了问题,却也不明白错在哪了,在老师的讲解下知道位置定位上不能用ij而应该用具体的整数。总之第一节实验收获颇多。

北邮scilab_通信原理软件实验报告

信息与通信工程学院通信原理软件实验报告

实验二时域仿真精度分析 一、实验目的 1. 了解时域取样对仿真精度的影响 2. 学会提高仿真精度的方法 二、实验原理 一般来说,任意信号s(t)是定义在时间区间(-无穷,+无穷)上的连续函数,但所有计算机的CPU 都只能按指令周期离散运行,同时计算机也不能处理这样一个时间段。为此将把s(t)按区间[-T/2 ,+T/2 ]截短为按时间间隔dert T均匀取样,得到的取样点数为N=T/dert T. 仿真时用这个样值集合来表示信号s(t)。Dert T反映了仿真系统对信号波形的分辨率,越小则仿真的精确度越高。据通信原理所学,信号被取样以后,对应的频谱是频率的周期函数,其重复周期是1/t; 。如果信号的最高频率为 那么必须有 才能保证不发生频域混叠失真,这是奈奎斯特抽样定理。设 则称为仿真系统的系统带宽。如果在仿真程序中设定的采样间隔是,那么不能用 此仿真程序来研究带宽大于这的信号或系统。换句话说,就是当系统带宽一定的情况下,信号的采样频率最小不得小于2*Bs,如此便可以保证信号的不失真,在此基础上时域采样频率越高,其时域波形对原信号的还原度也越高,信号波形越平滑。也就是说,要保证信号的通信成功,必须要满足奈奎斯特抽样定理,如果需要观察时域波形的某些特性,那么采样点数越多,可得到越真实的时域信号。 三、实验步骤 1.将正弦波发生器模块、示波器模块、时钟模块按下图连接:

时钟设置0.01,得到的结果如下: 时钟设置0.3,以后得到的结果如下:

五、思考题 (1)观察分析两图的区别,解释其原因。 答:因为信号周期是1,而第一个图的采样周期是0.01,所以一个周期内能采样100个点,仿真出来的波形能较精确地显示成完整波形,而第二个图采样周期是0.3,所以一个周期内只有三个采样点,故信号失真了。 (2)将示波器的控制时钟的period的参数改为0.5,观察仿真结果,分析其原因。 结果如下:

通信原理实验报告

AM调制和解调的仿真原理:1)AM调制的原理是,发射信号的一侧将信号加到高频振荡上,然后通过天线发射出去。在此,高频振荡波是载波信号,也称为载波。调幅是通过调制信号来控制高频载波的幅度,直到其随调制信号线性变化。在线性调制系列中,第一幅度调制是全幅度调制或常规幅度调制,称为am。在频域中,调制频谱是基带调制信号频谱的线性位移;在时域中,调制包络与调制信号波形具有线性关系。设正弦载波为:C(T)= ACOS (WCT +φ0),其中a为载波幅度;WC是载波角频率;φ0是载波的初始相位(通常假设φ0 = 0)。调制信号(基带信号)为m(T)。根据调制的定义,幅度调制信号(调制信号)通常可以表示为:如果调制信号M(T)的频谱为m(W),则SM(T)= am(T)cos(WCT),则调制信号的频谱SM(T):SM(W)= a [M(W + WC)+ m(w﹥6 ﹣1wc)] /22。从高频调制信号中恢复调制信号的过程称为解调。)也称为检测。对于幅度调制信号,解调是从幅度变化中提取调制信号的过程。解调是调制的逆过程。产品类型的同步检波器可用于解调振幅。可以将调制信号与本地恢复载波信号相乘,并且可以通过低通滤波来获得解调信号。下图显示了AM解调的原理:原理图和仿真结果:参数设置:正弦波WAVE1和正弦波WAVE2

模块分别在发送器和接收器处生成载波信号,并且角频率ωC设置为60 rad / s,并且调幅系数为1;调制信号M(T)由正弦波模块产生,为正弦波信号,角频率为5rad / s,幅度为1V。直流分量A0恒定。低通滤波器模块的截止频率设置为6rad / s。承运人:sin60t;调制信号:sin(5T)sin(60t)2 2. B DSB调制和解调模拟调制原理:在幅度调制的一般模型中,如果滤波器是全通网络(= 1),则滤波器中没有DC分量。调制信号,则输出调制信号是没有载波分量(DSB)的双边带调制信号。当源信号的极性改变时,调制信号的相位将突然改变π。SDSB (T)= m(T)coswct调制的目的是将调制信号的频谱移动到所需位置,从而提高系统信息传输的有效性和可靠性。DSB调制原理的框图如图4-3所示:图1:DSB信号本质上是基带信号和载波的乘法,而卷积在频域中。表达式为:调制后,s DSB(W)= [M(W + WC)+ m (W?6?1 WC)] / 2(1),已调制信号的带宽变为原始基带信号带宽的两倍:模拟基带信号的带宽为W。则调制信号的带宽为2W;(2)在调制信号中没有离散的载波频率分量,因为原始的模拟基带信号不包含离散的DC分量。(3)(4)某个信号的频谱或随机信号的功率谱是基带信号的频谱/功率谱的线性位移。因此,它称为线性调制。解调原理:DSB只能进

通信原理实验一、二实验报告

通信原理 实验一 实 验 报 告 实验日期: 学院: 班级: 学号: 姓名: 指导老师:

实验一数字基带传输系统的MA TLAB仿真 一、实验目的 1、熟悉和掌握常用的用于通信原理时域仿真分析的MATLAB函数; 2、掌握连续时间和离散时间信号的MATLAB产生; 3、牢固掌握冲激函数和阶跃函数等函数的概念,掌握卷积表达式及其物理意义,掌握 卷积的计算方法、卷积的基本性质; 4、掌握利用MATLAB计算卷积的编程方法,并利用所编写的MA TLAB程序验证卷积的 常用基本性质; 5、掌握MATLAB描述通信系统中不同波形的常用方法及有关函数,并学会利用 MATLAB求解系统功率谱,绘制相应曲线。 基本要求:掌握用MATLAB描述连续时间信号和离散时间信号的方法,能够编写 MATLAB程序,实现各种常用信号的MA TLAB实现,并且以图形的方式再现各种信号的波形。 二、实验内容 1、编写MATLAB 程序产生离散随机信号 2、编写MATLAB 程序生成连续时间信号 3、编写MATLAB 程序实现常见特殊信号 三、实验原理 从通信的角度来看,通信的过程就是消息的交换和传递的过程。而从数学的角度来看, 信息从一地传送到另一地的整个过程或者各个环节不外乎是一些码或信号的交换过程。例如 信源压缩编码、纠错编码、AMI编码、扰码等属于码层次上的变换,而基带成形、滤波、调 制等则是信号层次上的处理。码的变换是易于用软件来仿真的。要仿真信号的变换,必须解 决信号与信号系统在软件中表示的问题。 四、实验步骤 (1)分析程序program1_1 每条指令的作用,运行该程序,将结果保存,贴在下面的空白 处。然后修改程序,将dt 改为0.2,并执行修改后的程序,保存图形,看看所得图形的效果 怎样。 dt=0.01 时的信号波形 Sinusoidal signal x(t) -2-1.5-1-0.500.51 1.52 Time t (sec) dt=0.2 时的信号波形

通信原理实验报告systemview-数字信号的基带传输

通信原理实验报告 实验名称:数字信号的基带传输 一.实验目的 (1)理解无码间干扰数字基带信号的传输; (2)掌握升余弦滚降滤波器的特性;

(3)通过时域、频域波形分析系统性能。 二、仿真环境 SystemView 仿真软件 三、实验原理 (1)数字基带传输系统的基本结构 它主要由信道信号形成器、信道、接收滤滤器和抽样判决器组成。为了保证系统可靠有序地工作,还应有同步系统。 1.信道信号形成器 把原始基带信号变换成适合于信道传输的基带信号,这种变换主要是通过码型变换和波形变换来实现的。 2.信道 是允许基带信号通过的媒质,通常为有线信道,信道的传输特性通常不满足无失真传输条件,甚至是随机变化的。另外信道还会进入噪声。 3.接收滤波器 滤除带外噪声,对信道特性均衡,使输出的基带波形有利于抽样判决。 4.抽样判决器 在传输特性不理想及噪声背景下,在规定时刻(由位定时脉冲控制)对接收滤波器的输出波形进行抽样判决,以恢复或再生基带信号。而用来抽样的位定时脉冲则依靠同步提取电路从接收信号中提取。 (2) 奈奎斯特第一准则 奈奎斯特准则提出:只要信号经过整形后能够在抽样点保持不变, 即使其波形已经发生了变化,也能够在抽样判决后恢复原始的信号, 因为信息完全恢复携带在抽样点幅度上。 奈奎斯特准则要求在波形成形输入到接收端的滤波器输出的整个 传送过程传递函数满足: 令k′=j -k , 并考虑到k′也为整数,可用k 表示: 在实际应用中,理想低通滤波器是不可能实现的,升余弦滤波器 是在实际中满足无码间干扰传输的充要条件,已获得广泛应用的滤波 器。 升余弦滤波器满足的传递函数为: ???=+-0)(1])[(0或其它常数t T k j h b k j k j ≠=???=+0 1)(0t kT h b 00≠=k k

单片机原理及应用习题答案

思考与练习题1 1.1单项选择题 (1)单片机又称为单片微计算机,最初的英文缩写是( D ) A.MCP B.CPU C.DPJ D.SCM (2)Intel公司的MCS-51系列单片机是( C )的单片机。 A.1位 B.4位 C.8位 D.16位 (3)单片机的特点里没有包括在内的是( C ) A.集成度高 B.功耗低 C.密封性强 D.性价比高 (4)单片机的发展趋势中没有包括的是( B ) A.高性能 B.高价格 C.低功耗 D.高性价比 (5)十进制数56的二进制数是( A ) A.00111000B B.01011100B C.11000111B D.01010000B (6)十六进制数93的二进制数是( A ) A.10010011B B.00100011B C.11000011B D.01110011B (7)二进制数11000011的十六进制数是( B ) A. B3H B.C3H C.D3H D.E3H (8)二进制数11001011的十进制无符号数是( B ) A. 213 B.203 C.223 D.233 (9)二进制数11001011的十进制有符号数是( B ) A. 73 B.-75 C.-93 D.75 (10)十进制数29的8421BCD压缩码是( A ) A.00101001B B.10101001B C.11100001B D.10011100B (11)十进制数-36在8位微机中的反码和补码是( D ) A.00100100B、11011100B B.00100100B、11011011B C.10100100B、11011011B D.11011011B、11011100B (12)十进制数+27在8位微机中的反码和补码分别是( C ) A.00011011B、11100100B B.11100100B、11100101B C.00011011B、00011011B D.00011011B、11100101B (13)字符9的ASCII码是( D ) A.0011001B B.0101001B C.1001001B D.0111001B (14)ASCII码1111111B的对应字符是( C ) A. SPACE B.P C.DEL D.{ (15)或逻辑的表达式是( B ) A.A?B=F B. A+B=F C. A⊕B=F D.(A?B)=F (16)异或逻辑的表达式是( C ) A.A?B=F B. A+B=F C. A⊕B=F D.(A?B)=F (17)二进制数10101010B与00000000B的“与”、“或”和“异或”结果是( B ) A.10101010B、10101010B、00000000B B.00000000B、10101010B、10101010B C.00000000B、10101010B、00000000B D.10101010B、00000000B、10101010B (18)二进制数11101110B与01110111B的“与”、“或”和“异或”结果是( D ) A.01100110B、10011001B、11111111B B.11111111B、10011001B、01100110B C.01100110B、01110111B、10011001B D.01100110B、11111111B、10011001B (19)下列集成门电路中具有与门功能的是( D ) A.74LS32 B.74LS06 C.74LS10 D.74LS08

通信工程系统仿真实验报告

通信原理课程设计 实验报告 专业:通信工程 届别:07 B班 学号:0715232022 姓名:吴林桂 指导老师:陈东华

数字通信系统设计 一、 实验要求: 信源书记先经过平方根升余弦基带成型滤波,成型滤波器参数自选,再经BPSK ,QPSK 或QAM 调制(调制方式任选),发射信号经AWGN 信道后解调匹配滤波后接收,信道编码可选(不做硬性要求),要求给出基带成型前后的时域波形和眼图,画出接收端匹配滤波后时域型号的波形,并在时间轴标出最佳采样点时刻。对传输系统进行误码率分析。 二、系统框图 三、实验原理: QAM 调制原理:在通信传渝领域中,为了使有限的带宽有更高的信息传输速率,负载更多的用户必须采用先进的调制技术,提高频谱利用率。QAM 就是一种频率利用率很高的调制技术。 t B t A t Y m m 00sin cos )(ωω+= 0≤t ≤Tb 式中 Tb 为码元宽度t 0cos ω为 同相信号或者I 信号; t 0s i n ω 为正交信号或者Q 信号; m m B A ,为分别为载波t 0cos ω,t 0sin ω的离散振幅; m 为 m A 和m B 的电平数,取值1 , 2 , . . . , M 。 m A = Dm*A ;m B = Em*A ; 式中A 是固定的振幅,与信号的平均功率有关,(dm ,em )表示调制信号矢量点在信号空

间上的坐标,有输入数据决定。 m A 和m B 确定QAM 信号在信号空间的坐标点。称这种抑制载波的双边带调制方式为 正交幅度调制。 图3.3.2 正交调幅法原理图 Pav=(A*A/M )*∑(dm*dm+em*em) m=(1,M) QAM 信号的解调可以采用相干解调,其原理图如图3.3.5所示。 图3.3.5 QAM 相干解调原理图 四、设计方案: (1)、生成一个随机二进制信号 (2)、二进制信号经过卷积编码后再产生格雷码映射的星座图 (3)、二进制转换成十进制后的信号 (4)、对该信号进行16-QAM 调制 (5)、通过升余弦脉冲成形滤波器滤波,同时产生传输信号 (6)、增加加性高斯白噪声,通过匹配滤波器对接受的信号滤波 (7)、对该信号进行16-QAM 解调 五、实验内容跟实验结果:

通信原理实验报告

实验一常用信号的表示 【实验目的】 掌握使用MATLAB的信号工具箱来表示常用信号的方法。 【实验环境】 装有MATLAB6.5或以上版本的PC机。 【实验内容】 1. 周期性方波信号square 调用格式:x=square(t,duty) 功能:产生一个周期为2π、幅度为1 ±的周期性方波信号。其中duty表示占空比,即在信号的一个周期中正值所占的百分比。 例1:产生频率为40Hz,占空比分别为25%、50%、75%的周期性方波。如图1-1所示。 clear; % 清空工作空间内的变量 td=1/100000; t=0:td:1; x1=square(2*pi*40*t,25); x2=square(2*pi*40*t,50); x3=square(2*pi*40*t,75); % 信号函数的调用subplot(311); % 设置3行1列的作图区,并在第1区作图plot(t,x1); title('占空比25%'); axis([0 0.2 -1.5 1.5]); % 限定坐标轴的范围 subplot(312); plot(t,x2); title('占空比50%'); axis([0 0.2 -1.5 1.5]); subplot(313); plot(t,x3); title('占空比75%'); axis([0 0.2 -1.5 1.5]);

图1-1 周期性方波 2. 非周期性矩形脉冲信号rectpuls 调用格式:x=rectpuls(t,width) 功能:产生一个幅度为1、宽度为width、以t=0为中心左右对称的矩形波信号。该函数横坐标范围同向量t决定,其矩形波形是以t=0为中心向左右各展开width/2的范围。Width 的默认值为1。 例2:生成幅度为2,宽度T=4、中心在t=0的矩形波x(t)以及x(t-T/2)。如图1-2所示。 t=-4:0.0001:4; T=4; % 设置信号宽度 x1=2*rectpuls(t,T); % 信号函数调用 subplot(121); plot(t,x1); title('x(t)'); axis([-4 6 0 2.2]); x2=2*rectpuls(t-T/2,T); % 信号函数调用

通信原理软件仿真实验报告-实验3-模拟调制系统—AM系统

成绩 西安邮电大学 《通信原理》软件仿真实验报告 实验名称:实验三模拟调制系统——AM系统院系:通信与信息工程学院 专业班级:通工 学生姓名: 学号:(班内序号) 指导教师: 报告日期:2013年5月15日

实验三模拟调制系统——AM系统 ●实验目的: 1、掌握AM信号的波形及产生方法; 2、掌握AM信号的频谱特点; 3、掌握AM信号的解调方法; 4*、掌握AM系统的抗噪声性能。 ●仿真设计电路及系统参数设置: 图1 模拟调制系统——AM系统仿真电路 建议时间参数:No. of Samples = 4096;Sample Rate = 20000Hz 1、记录调制信号与AM信号的波形和频谱; 调制信号为正弦信号,Amp= 1V,Freq=200Hz; 直流信号Amp = 2V; 余弦载波Amp = 1V,Freq= 1000Hz; 频谱选择|FFT|; 2、采用相干解调,记录恢复信号的波形和频谱; 接收机模拟带通滤波器Low Fc = 750Hz,Hi Fc = 1250Hz,极点个数6;接收机模拟低通滤波器Fc = 250Hz,极点个数为9;

3、采用包络检波,记录恢复信号的波形和频谱; 接收机包络检波器结构如下: 其中图符0为全波整流器Zero Point = 0V; 图符1为模拟低通滤波器Fc = 250Hz,极点个数为9; 4、在接收机模拟带通滤波器前加入高斯白噪声; 建议Density in 1 ohm = 0.00002W/Hz; 观察并记录恢复信号波形和频谱的变化; 5*、改变高斯白噪声的功率谱密度,观察并记录恢复信号的变化。 仿真波形及实验分析: 1、记录调制信号与AM信号的波形和频谱; 图1-1 调制信号波形 图1-2 AM已调信号波形

单片机原理及应用实验报告

单片机原理实验报告 专业:计算机科学与技术 学号: :

实验1 计数显示器 【实验目的】 熟悉Proteus仿真软件,掌握单片机原理图的绘图方法 【实验容】 (1)熟悉Proteus仿真软件,了解软件的结构组成与功能 (2)学习ISIS模块的使用方法,学会设置图纸、选元件、画导线、修改属性等基本操作 (3)学会可执行文件加载及程序仿真运行方法 (4)理解Proteus在单片机开发中的作用,完成单片机电路原理图的绘制【实验步骤】 (1)观察Proteus软件的菜单、工具栏、对话框等基本结构 (2)在Proteus中绘制电路原理图,按照表A.1将元件添加到编辑环境中(3)在Proteus中加载程序,观察仿真结果,检测电路图绘制的正确性 表A.1

Switches&Relays BUT BUTTON 【实验原理图】 【实验源程序】 #include sbit P3_7=P3^7; unsigned char x1=0;x2=0 ; unsigned char count=0; unsigned char idata buf[10]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void delay(int time) { int k,j;

for(;time<0;time--) for(k=200;k>0;k--) for(j=500;j<0;j--); } void init() { P0=buf[x1]; delay(10); P2=buf[x2]; delay(10); } void main() { init(); while(1) { x1=count/10; x2=count%10; P0=buf[x1]; delay(10);

OFDM系统仿真实验报告

无线通信——OFDM系统仿真

一、实验目的 1、了解OFDM 技术的实现原理 2、利用MATLAB 软件对OFDM 的传输性能进行仿真并对结论进行分析。 二、实验原理与方法 1 OFDM 调制基本原理 正交频分复用(OFDM)是多载波调制(MCM)技术的一种。MCM 的基本思想是把数据流串并变换为N 路速率较低的子数据流,用它们分别去调制N 路子载波后再并行传输。因子数据流的速率是原来的1/N ,即符号周期扩大为原来的N 倍,远大于信道的最大延迟扩展,这样MCM 就把一个宽带频率选择性信道划分成N 个窄带平坦衰落信道,从而“先天”具有很强的抗多径衰落和抗脉冲干扰的能力,特别适合于高速无线数据传输。OFDM 是一种子载波相互混叠的MCM ,因此它除了具有上述毗M 的优势外,还具有更高的频谱利用率。OFDM 选择时域相互正交的子载波,创门虽然在频域相互混叠,却仍能在接收端被分离出来。 2 OFDM 系统的实现模型 利用离散反傅里叶变换( IDFT) 或快速反傅里叶变换( IFFT) 实现的OFDM 系统如图1 所示。输入已经过调制(符号匹配) 的复信号经过串P 并变换后,进行IDFT 或IFFT 和并/串变换,然后插入保护间隔,再经过数/模变换后形成OFDM 调制后的信号s (t ) 。该信号经过信道后,接收到的信号r ( t ) 经过模P 数变换,去掉保护间隔以恢复子载波之间的正交性,再经过串/并变换和DFT 或FFT 后,恢复出OFDM 的调制信号,再经过并P 串变换后还原出输入的符号。 图1 OFDM 系统的实现框图 从OFDM 系统的基本结构可看出, 一对离散傅里叶变换是它的核心,它使各子载波相互正交。设OFDM 信号发射周期为[0,T],在这个周期内并行传输的N 个符号为001010(,...,)N C C C -,,其中ni C 为一般复数, 并对应调制星座图中的某一矢量。比如00(0)(0),(0)(0)C a j b a b =+?和分别为所要传输的并行信号, 若将

通信原理实验报告

通信原理实验报告 一.实验目的 熟悉掌握MATLAB软件的应用,学会对一个连续信号的频谱进行仿真,熟悉sigexpand(x2,ts2/ts1)函数的意义和应用,完成抽样信号对原始信号的恢复。 二.实验内容 设低通信号x(t)=cos(4pi*t)+1.5sin(6pi*t)+0.5cos(20pi*t); (1)画出该低通信号的波形 (2)画出抽样频率为fs=10Hz(亚采样)、20Hz(临界采样)、50Hz(过采样)的抽样序列 (3)抽样序列恢复出原始信号 (4)三种抽样频率下,分别分析对比模拟信号、离散采样信号、恢复信号的时域波形的差异。 原始信号与恢复信号的时域波形之差有何特点?有什么样的发现和结论? (5)三种抽样频率下,分别分析对比模拟信号、离散采样信号、恢复信号的频域特性的差异。 原始信号与恢复信号的频域波形之差有何特点?有什么样的发现和结论? 实验程序及输出结果 clear; close all; dt=0.05; t=-2:dt:2 x=cos(4*pi*t)+1.5*sin(6*pi*t)+0.5*cos(20*pi*t); N=length(t); Y=fft(x)/N*2; fs=1/dt; df=fs/(N-1); f=(0:N-1)*df; subplot(2,1,1) plot(t,x) title('抽样时域波形') xlabel('t') grid; subplot(2,1,2) plot(f,abs(Y)); title('抽样频域信号 |Y|'); xlabel('f'); grid;

定义sigexpand函数 function[out]=sigexpand(d,M) N=length(d); out=zeros(M,N); out(1,:)=d; out=reshape(out,1,M*N); 频域时域分析fs=10Hz clear; close all; dt=0.1; t0=-2:0.01:2 t=-2:dt:2 ts1=0.01 x0=cos(4*pi*t0)+1.5*sin(6*pi*t0)+0.5*cos(20*pi*t0); x=cos(4*pi*t)+1.5*sin(6*pi*t)+0.5*cos(20*pi*t); B=length(t0); Y2=fft(x0)/B*2; fs2=1/0.01; df2=fs2/(B-1); f2=(0:B-1)*df2; N=length(t); Y=fft(x)/N*2;

哈工程通信原理软件仿真实验报告

实验报告 哈尔滨工程大学教务处制

实验一基带码型仿真 (一)单、双极性归零码仿真 一、实验原理 1.1归零码 归零码,是信号电平在一个码元之内都要恢复到零的编码方式,它包括曼彻斯特编码和差分曼彻斯特编码两种编码方式。 1.2单、双极性归零码 对于传输数字信号来说,最常用的方法是用不同的电压电平来表示两个二进制数字,即数字信号由矩形脉冲组成。 A)单极性不归零码,无电压表示”0”,恒定正电压表示”1”,每个码元时间的中间点是采样时间,判决门限为半幅电平。 单极性归零码(RZ)即是以高电平和零电平分别表示二进制码1 和0,而且在发送码1 时高电平在整个码元期间T 只持续一段时间τ,其余时间返回零电平.在单极性归零码中,τ/T 称为占空比.单极性归零码的主要优点是可以直接提取同步信号,因此单极性归零码常常用作其他码型提取同步信号时的过渡码型.也就是说其他适合信道传输但不能直接提取同步信号的码型,可先变换为单极性归零码,然后再提取同步信号 B)双极性不归零码,”1”码和”0”码都有电流,”1”为正电流,”0”为负电流,正和负的幅度相等,判决门限为零电平。 双极性归零码是二进制码0 和1 分别对应于正和负电平的波形的编码,在每个码之间都有间隙产生.这种码既具有双极性特性,又具有归零的特性.双极性归零码的特点是:接收端根据接收波形归于零电平就可以判决1 比特的信息已接收完毕,然后准备下一比特信息的接收,因此发送端不必按一定的周期发送信息.可以认为正负脉冲的前沿起了起动信号的作用,后沿起了终止信号的作用.因此可以经常保持正确的比特同步.即收发之间无需特别的定时,且各符号独立地构成起止方式,此方式也叫做自同步方式.由于这一特性,双极性归零码的应用十分广泛。 1.3 功率谱密度 求信号的功率谱,功率谱= 信号的频率的绝对平方/ 传输序列的持续时间,求得的 功率谱进行单位换算以dB值表示

《单片机原理及应用》实验报告

《单片机原理及应用》 实验报告 2017/2018 学年第1 学期 系别计算机学院 专业软件工程 班级17软件工程班 姓名XXXXXX 学号8888888888 授课老师******

实验一:流水灯实验 1.实验目的 (1)学习编译和仿真环境使用 (2)学习P3口的使用方法 (3)学习延时子程序的编写 2实验内容 (1)通过对P3口地址的操作控制8位LED流水点亮,从而认识单片机的接口;(2)通过改变并行口输出电平控制LED灯的点亮与否,通过延时程序控制亮灯时间。 3.实验运行结果图 4.源代码 //流水灯实验 #include //包含单片机寄存器的头文件 sfr x=0xb0; //P3口在存储器中的地址是b0H,通过sfr可定义8051内核单片机 //的所有内部8位特殊功能寄存器,对地址x的操作也就是对P1口的

操作 /**************************************** 函数功能:延时一段时间 *****************************************/ void delay(void) { unsigned char i,j; for(i=0;i<255i++) for(j=0;j<255j++) ; //利用循环等待若干机器周期,从而延时一段时间 } /***************************************** 函数功能:主函数 ******************************************/ void main(void) { while(1) { x=0xfe; //第一个灯亮 delay(); //调用延时函数 x=0xfd; //第二个灯亮 delay(); //调用延时函数 x=0xfb; //第三个灯亮 delay(); //调用延时函数 x=0xf7; //第四个灯亮 delay(); //调用延时函数 x=0xef; //第五个灯亮 delay(); //调用延时函数 x=0xdf; //第六个灯亮

通信系统仿真实验报告(DOC)

通信系统实验报告——基于SystemView的仿真实验 班级: 学号: 姓名: 时间:

目录 实验一、模拟调制系统设计分析 -------------------------3 一、实验内容-------------------------------------------3 二、实验要求-------------------------------------------3 三、实验原理-------------------------------------------3 四、实验步骤与结果-------------------------------------4 五、实验心得------------------------------------------10 实验二、模拟信号的数字传输系统设计分析------------11 一、实验内容------------------------------------------11 二、实验要求------------------------------------------11 三、实验原理------------------------------------------11 四、实验步骤与结果------------------------------------12 五、实验心得------------------------------------------16 实验三、数字载波通信系统设计分析------------------17 一、实验内容------------------------------------------17 二、实验要求------------------------------------------17 三、实验原理------------------------------------------17 四、实验步骤与结果------------------------------------18 五、实验心得------------------------------------------27

相关文档
最新文档