无线网络通信实验报告(精选多篇)

时间:2020-10-18 12:41:25下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《无线网络通信实验报告》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《无线网络通信实验报告》。

第一篇:无线网络通信实验报告

Compilation of reports 20XX 报 告 汇 编

课程名称:

无线网络通信技术

实验项目:

无线网络通信技术实验

实验地点:

逸夫楼

404

教室

专业班级:

软 1121 班 学号:

2011005541

学生姓名:

指导教师:

张巍

2014 年月

报告文档·借鉴学习

太原理工大学实验报告一

学院名称 软件学院 专业班级 1121 实验成绩

学生姓名 高贝 学号 2011005541

实验日期 2014.5.9 课程名称 无线网络通信技术

实验题目 实验一

四相移相键控(QPSK)调制及解调实验 一、实验目的和要求:

1、掌握 QPSK 调制解调原理及特性。

2、掌握利用 MATLAB 编程实现调制及解调的方法。

二、实验内容: 1、利用 MATLAB 编程实现 QPSK 调制及解调。

2、观察 I、Q 两路基带信号的特征及与输入 NRZ 码的关系。

3、观察 I、Q 调制解调过程中各信号变化。

三、主要仪器设备 Win7 32 位操作系统笔记本电脑及 MATLAB R2009a 四、主要操作方法与实验步骤 在 matlab 下运行下列代码:

程序代码 %日期

2013.1.14 %功能

QPSK的调制解调,基带信号点数t(限偶数),基波频率w0可设置 clear all;

nb=32;

% 传输的比特数

T=1;

% 基带信号宽度,也就是基波频率 fc=8/T;

% 载波频率 ml=2;

% 调制信号类型的一个标志位(选取2的原因见23行)

c = 4*nb;

%单周期采样点数 delta_T=T/c;

% 采样间隔 fs=1/delta_T;

% 采样频率 t=0:delta_T:nb*T-delta_T

% 限定t的取值范围 c * nb N=length(t);

% 采样数

报告文档·借鉴学习%%%%%%%%%%%%%%%%%%%

调制部分 % 基带信号的产生 data=fix(2*rand(1,nb));

% 调用一个随机函数(0 or 1),输出到一个1*100的矩阵 datanrz=data.*2-1;

% 变成极性码 for i=1:nb

data1((i-1)/delta_T+1:i/delta_T)=datanrz(i);% 将极性码变成对应的波形信号 end

% 将基带信号变换成对应波形信号 for i=1:nb

data0((i-1)/delta_T+1:i/delta_T)=data(i);% 将基带信号变成对应的波形信号 end

% 串并转换,将奇偶位数据分开 idata=datanrz(1:ml:(nb-1));

% 将奇偶位分开,因此间隔m1为2

qdata=datanrz(2:ml:nb);% QPSK信号的调制 for i=1:nb/2

ich(2*((i-1)/delta_T+1):2*(i/delta_T))=idata(i);end for ii=1:N/T

a(ii)=(1/sqrt(2))*cos(2*pi*fc*t(ii));

end idata1=ich.*a;

% 奇数位数据与余弦函数相乘,得到一路的调制信号 for j=1:nb/2

qch(2*((j-1)/delta_T+1):2*(j/delta_T))=qdata(j);end

for jj=1:N/T

b(jj)=(1/sqrt(2))*sin(2*pi*fc*t(jj));end qdata1=qch.*b;% 偶数位数据与余弦函数相乘,得到另一路的调制信号 st = idata1-qdata1;%%%%%%%%%%%%%%%%%%%%%%%%信道中 SNR=0;

% 信噪比 stn = awgn(st,SNR);%%%%%%%%%%%%%%%%%%%%%%%%解调%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%设计滤波器%%%%%%%% [B,A] = butter(3,0.01,“low”);[h1,w] = freqz(B,A);%%%%%%%%%%%%%%%%%%%%%%%%%%%%相干解调 ist = stn.* a;p =length(ist)qst = stn.*(-b);

报告文档·借鉴学习%%%%%%%%%%%%%%%%%%%%滤波 istl = filter(B,A,ist);qstl = filter(B,A,qst);%%%%%%%%%%%%%%%%%%%%%%%%%抽样判决%%%%%%%%%%

for i = 1 : nb/2

if istl(2*(p/nb)*(i-1)+(1*(p/nb)))>= 0

in(i)= 1;

else in(i)= 0;

end

if qstl(2*(p/nb)*(i-1)+(1*(p/nb)))>= 0

qn(i)= 1;

else qn(i)= 0;

end end %%%%%%%%%%%%%%%%%并串转换 for i = 1 : nb/2

y(2*i-1)= in(i);

y(2*i)= qn(i);end for i = 1 : nb

yy((i-1)/delta_T+1:i/delta_T)= y(i);end data y N figure;subplot(4,1,1)plot(data0*0.7),title(“基带信号,4096维二进制序列,对应向量是data0”);subplot(4,1,2)plot(data1*0.7),title(“双极性信号,4096维双极性序列,对应向量是data1”);subplot(4,1,3)plot(ich*0.7),title(“I路数据,4096维双极性序列,对应向量是ich”);subplot(4,1,4)plot(qch*0.7),title(“Q路数据,4096维双极性序列,对应向量是qch ”);figure;subplot(4,1,1)plot(ist),title(“相干解调I路信号,4096维且值为(-1,1)的序列,对应向量是ist ”);subplot(4,1,2)plot(qst),title(“相干解调Q路信号,4096维且值为(-1,1)的序列,对应向量是qst ”);subplot(4,1,3)plot(istl),title(“I路解调波形,4096维且值为(-1,1)的序列,对应向量是istl ”);subplot(4,1,4)plot(qstl),title(“Q路解调波形,4096维且值为(-1,1)的序列,对应向量是qstl ”);

报告文档·借鉴学习%%%%%%%%%%%%%%%%%画图%%%%%%%%%%%%%%%%%%%%%%%%%%% figure;subplot(4,2,1);plot(data0*0.7),title(“基带信号”);subplot(4,2,2);psd(abs(fft(data0))),title(“基带信号频谱”);subplot(4,2,3);plot(st),title(“调制信号”);subplot(4,2,4);psd(abs(fft(st))),title(“调制信号频谱”);subplot(4,2,5);plot(stn),title(“stn信道波形”);subplot(4,2,6);psd(abs(fft(stn))),title(“经过高斯信道信号频谱”);subplot(4,2,7);plot(yy*0.7),title(“解调后的基带信号”);subplot(4,2,8);psd(abs(fft(yy))),title(“解调后的基带信号频谱”);五、实验结果与分析 结果附图:

报告文档·借鉴学习

报告文档·借鉴学习

六、讨论、心得 第一个实验因为老师把代码已经附给我们,直接在 MATLAB 下运行此代码就可出现结果。通过学习老师的实验一 PPT 以及实验指导书,了解 掌握 QPSK 调制解调原理及特性,和掌握利用 MATLAB 编程实现调制及解调的方法。

七 七.辅导教师点评:

教师签字:

报告文档·借鉴学习

太原理工大学实验报告二

学院名称 软件学院 专业班级 1121 实验成绩

学生姓名 高贝 学号 2011005541

实验日期 2014.5.10 课程名称 无线网络通信技术

实验题目 m 序列产生及其特性实验 一.

实验目的和要求:

通过本实验掌握 m 序列的产生方法、特性及应用。

二、实验内容: 1、编写 MATLAB 程序生成并观察 m 序列,识别其特征。

2、编写程序验证 m 序列的相关性质,要求至少验证一条性质。

三、主要仪器设备 Win7 32 位操作系统笔记本电脑及 MATLAB R2009a 四、主要操作方法与实验步骤:

(1)按照图 2-1,设计 4 阶 m 序列产生方法。

1a2a3a4a移位时钟信号模 模2 相加器序列输出

图 2-1阶移位寄存器序列生成器

编写MATLAB程序并上机调试,最后要求输出周期为15的m序列

(3)编写程序验证 m 序列的相关性质,要求至少验证一条性质。

m m 序列的特点 ①平衡特性 

在 m 序列的一周期中,“1”的个数仅比“0”的个数多 1,即“1”的个数为(N+1)/2,“0”的个数为(N-1)/2。(N 为周期)

报告文档·借鉴学习 例如,由 4 阶移位寄存器序列生成器产生的序列 *** 中,“1”的个数为 8,“0”的个数为 7。

②游程分布特性

 把一个序列中取值相同的那些连在一起的元素合称为一个“游程”。

 在一个游程中元素的个数称为游程长度。例如,同样是在*** 序列,共有 000、1111、0、1、0、11、00 和 1 共 8 个游程。

 其中,长度为 4 的游程有 1 个;长度为 3 的游程有 1 个;长度为 2 的游程有 2 个;长度为 1 的游程有 4 个。

 在 m 序列中,长度为 1 的游程占游程总数的 1/2;长度为 2 的游程占游程总数的 1/4;长度为 3 的游程占游程总数的 1/8……。

③延位相加特性

一个 m 序列 M1 与其经任意次迟延移位产生的另一个不同序列 M2 进行模 2 相加,得到的仍是 M1 的某次迟延移位序列 M3。即:

M3=M1 ⊕ M2 例如,m=7 的 m 序列 M1 =1110010,M2 =0111001,1110010⊕0111001=1001011。而将 M1向右移位 5 次即得到 1001011 序列。

五、实验结果与分析 1、按照课本 P182 图 5-5,设计 4 阶 m 序列产生方法。

如下代码产生:

X1=1;X2=0;X3=0;X4=0;%移位寄存器输入Xi初T态(1000),Yi为移位寄存器各级输出 m=15;

%置M序列总长度 for i=1:m

%1#

Y4=X4;

Y3=X3;

Y2=X2;

Y1=X1;

X4=Y3;

X3=Y2;

X2=Y1;

X1=xor(Y1,Y4);

%异或运算

if Y4==0

U(i)=0;

else

U(i)=Y4;end end M=U fprintf(“1的个数”)sum(M==1)fprintf(“0的个数”)sum(M==0)

2、编写 MATLAB 程序并上机调试,最后要求输出周期为 15 的 m 序列“***”。

输入上面代码,产生如下图结果:

报告文档·借鉴学习

3、编写程序验证 m 序列的相关性质,如平衡特性,游程分布特性,延位相加特性。要求至少验证一条性质。

上面代码验证了平衡特性。

在 m 序列的一周期中,“1”的个数仅比“0”的个数多 1,即“1”的个数(N+1)/2,“0”的个数为(N-1)/2。(N 为周期)

上面代码实现的结果 1 的个数为 8,0 的个数为 7.六、讨论、心得

此次实验中应注意:X1=xor(Y1,Y4);

%异或运算,是这个实验代码的难点,通过老师的提点,和在网上找资料,终于解决了这个实验。通过本实验也掌握 m序列的产生方法和特性。

七、辅导教师点评:

报告文档·借鉴学习教师签字:

太原理工大学实验报告三

学院名称 软件学院 专业班级 1121 实验成绩

学生姓名 高贝 学号 2011005541

实验日期 2014.5.16 课程名称 无线网络通信技术

实验题目 信道编码 一、实验目的和要求:

1、学习并理解信道编码的根本目的、技术要求等基本概念 2.学会使用MATLAB实现奇偶监督码的检错模拟与分析 二、实验内容: 1、输入任意行任意列的一个二进制序列,也即发送码组,再加上 1 位监督位,在接收端使用奇偶监督码中的偶数监督码进行检错。

2、若发送码组为 1100111,要求加上 1 位监督位,在接收端使用奇偶监督码中的偶数监督码进行检错。

三、主要仪器设备 Win7 32 位操作系统笔记本电脑及 MATLAB R2009a 四、主要操作方法与实验步骤: 1、输入任意行任意列的一个二进制序列,也即发送码组,再加上 1 位监督位,在接收端使用奇偶监督码中的偶数监督码进行检错。

如下代码输入 matlab 中:

方法一:

clc;clear;

m=input(“请输入行:”);

n=input(“请输入列:”);

A=randint(m,n);

A

for k=1:2

sum=zeros(1,m);

l=input(“请选择奇偶校验(0、偶校验

1、奇校验):”);

for i=1:m

报告文档·借鉴学习for j=1:n

sum(i)=sum(i)+A(i,j);

z=sum(i);

end

if rem(z,2)==l

A(i,n+1)=0;

else

A(i,n+1)=1;

end

end

A

end

方法二:

%奇偶校验 2 的源代码

clc;clear;

m=input(“请输入行:”);

n=input(“请输入列:”);

A=randint(m,n);

A

for k=1:2

sum=zeros(1,m);

for i=1:m

for j=1:n

sum(i)=sum(i)+A(i,j);

z=sum(i);

end

if rem(z,2)==k-1

A(i,n+1)=0;

else

A(i,n+1)=1;

end

end

if k==1

fprintf(“偶校验:”)

else

fprintf(“奇校验:”)

end

A

end

报告文档·借鉴学习

运行后得到如下结果:

2、若发送码组为 1100111,要求加上 1 位监督位,在接收端使用奇偶监督码中的偶数监督码进行检错。

把上面代码的随机函数改为固定的发送码 1100111,得到如下代码:

clc;clear;

m=input(“请输入行:”);

n=input(“请输入列:”);

A=[1 1 0 0 1 1 1];

A

for k=1:2

sum=zeros(1,m);

l=input(“请选择奇偶校验(0、偶校验

1、奇校验):”);

for i=1:m

for j=1:n

sum(i)=sum(i)+A(i,j);

z=sum(i);

end

if rem(z,2)==l

A(i,n+1)=0;

报告文档·借鉴学习else

A(i,n+1)=1;

end

end

A

end

得到如下结果:

五、讨 论、心得 这次实验刚开始不理解实验的意图,通过网上查找资料了解之后才理解,学会了使用 MATLAB 实现奇偶监督码的检错模拟和分析,要注意之后老师给了两个代码中要用到的重要的函数:

randint(m,n)表示随机产生一个二进制序列;

rem(x,y)表示x 除以 y 的余数,对实验的完成起到一定帮助。

六、辅导教师点评:

报告文档·借鉴学习教师签字:

太原理工大学实验报告四

学院名称 软件学院 专业班级 1121 实验成绩

学生姓名 高贝 学号 2011005541

实验日期 2014.5.17 课程名称 无线网络通信技术

实验题目 基于 Simulink 的通信系统建模与仿真 实验目的和要求:

1、通过利用 matlab simulink,熟悉 matlab simulink 仿真工具。

2、通过实验更好地掌握课本相关知识,熟悉 2ASK 的调制与解调。

二、实验内容: 使用 MATLAB 中的 Simulink 工具箱搭建 ASK 调制及解调的框图(使用模拟相乘法及相干解调法)三、主要仪器设备 Win7 32 位操作系统笔记本电脑,及软件 MATLAB R2009a 四、主要操作方法与实验步骤: 1、首先进入 matlab,在命令窗口输入 simulink,进入 simulink 界面。

2、然后使用 Simulink 中的工具,画出如下的 ASK 调制及解调的框图。

3、simulink 中包括很多模块,比如积分模块,传递函数模块等,simulink 功能非常强大。要想在 simulink 中建模,首先要建立一个空白页,然后将所需要的模块从模块库中拖入,然后对模块设置参数即可。完成框图后,再单击 File 菜单中的 Save 命令进行保存,保存的扩展名为.mdl 文件。

报告文档·借鉴学习

五、实验结果与分析 1、打开 MATLAB 使用 Simulink 中的工具,画出 ASK 调制及解调的框图,然后对模块设置参数(参数为实验指导书所要求)。

2、点击黑色三角按钮运行,双击示波器,出现如下波形:

报告文档·借鉴学习

由仿真结果可知,相比而言,ASK 调制在解调时对于滤波器与噪声参数的设置最为敏感,在理论值情况下,其解调波形边沿仍存在不规则形状。

1.ASK 信号解调时对于滤波器参数敏感,应注意根据实际调整滤波器参数。而且,与其他数字调制方式相比,ASK 对噪声更为敏感。

2.当 ASK 信号信源幅度为 1 时,判决器判决门限并非 0.5,而应该设置为0.25。这是因为:假设信源为 m(t),载波为 cos 错误!。

未找到引用源。,则解调信号为 m(t)* co 错误!未找到引用源。= m(t)*(错误!未找到引用源。)= 错误!未找。

到引用源。+ 错误!。

未找到引用源。,经过低通滤波器后仅剩下 错误!未找到引用源。一项,故判决时应将门限设置此项的一半,即 0.25。

六、讨论、心得 此实验要主意示波器的两个输入,才能链接序列产生器。利用 MATLAB 的Simulink 的工具,很容易的进行 2ASK 的调制与解调的仿真实验,相对前两个实验,难度较低些,只要按照老师的实验指导书一步步的做,很容易得到实验结果。

七 七.辅导教师点评:

报告文档·借鉴学习

教师签字:

第二篇:无线课程设计实验报告

扩频实验报告

学 院: 电子信息工程学院

专 业: 通信工程 组员: 12211008 吕兴孝 12211010 牟文婷 12211096 郑羲 12211004 冯顺 任课教师: 姚冬萍 1实验四 扩频实验

一、实验目标

在本实验中你要基于labview+usrp平台实现一个扩频通信系统,你需要在对扩频技术有一定了解的基础上编写程序,完成所有要求的实验任务。在这一过程中会让你对扩频技术有更直接和感性的认识,并进一步掌握在labview+usrp平台上实现通信系统的技巧。

二、实验环境与准备

软件环境:labview 2012(或以上版本);

硬件环境:一套usrp和一台计算机;

实验基础:了解labview编程环境和usrp的基本操作;

知识基础:了解扩频通信的基本原理。

三、实验介绍

1、扩频通信技术简介

扩频通信技术是一种十分重要的抗干扰通信技术,可以大大提高通信系统的抗干扰性能,在电磁环境越来越恶劣的情况下,扩频技术在诸多通信领域都有了十分广泛的应用。

扩频技术简单来讲就是将信息扩展到非常宽的带宽上——确切地说,是比数据速率大得多的带宽。在扩频系统中,发端用一种特定的调制方法将原始信号的带宽加以扩展,得到扩频信号;然后在收端对接收到的扩频信号进行解扩处理,把它恢复为原始的窄带信号。

扩频系统之所有具有较强的抗干扰能力,是因为接收端在接收到扩频信号后,需要通过相关处理对接收信号进行带宽的压缩,将其恢复成窄带信号。对于干扰信号而言,由于与扩频信号不相关,所以会被扩展到很宽的频带上,使之进入信号带宽内的干扰功率大幅下降,即增加了相关器输出端的信号/干扰比。因此扩频系统对大多数人为干扰都具有很强的抵抗能力。

22、发射端程序简介

本实验包括发射端和接收端两个主程序,其中发射端主程序top_tx的前面板如图1所示。

图1 发射端程序前面板

前面板上部的选项卡控件中可以配置各项参数。在硬件参数部分中可以配置usrp的ip地址、载波频率等参数;在信号参数部分中可以配置调制方式、设配采样速率、成型滤波器等参数;在信道模型参数部分中你可以选择不同的信道模型并设置噪声功率;在右侧你可以设置扩频码的长度。在前面板下方为显示界面,包括发送信号的时域/频域波形以及星座图和眼图。

发射端的程序框图主要由两部分组成。

主程序框图左侧的transmitter子程序完成发射信号的生成、扩频、调制等功能,程序框图如图2所示。

3图2 transmitter的程序框图

3、接收端程序简介

接收端主程序top_rx的前面板如图3所示。

图3 接收端程序前面板

与发射端程序类似,接收端主程序前面板上部为各项参数的输入,例如硬件参数、扩频参数、同步参数等。前面板下部显示生成的图形,包括星座图、眼图、信噪比/误码率曲线等。接收端端的程序框图也主要由两部分组成。

主程序框图右侧的receiver.vi子程序主要完成发射信号的接受、同步、解扩和解调等功能,程序框图如图3所示。4 图3 receiver.vi 的程序框图

matched filter子程序完成匹配滤波;其中rx init子程序是接收机的初始化;

synch子程序使同步模块,完成收发同步;channel estimated子程序完成信道估计;equalize子程序的作用是信道均衡;strip control子程序用来删除控制信息,即训练序列;decode子程序实现信号的解调;de-dsss子程序用来实现解扩;error detect子程序的作用是计算误码率。

接收端主程序框图的其他部分主要用来完成usrp的配置、计算信噪比/误码率曲线以及生成所需的图形。

四、实验任务

1、ds-ss.vi子程序

ds-ss子程序的作用是对信源进行直接扩频(direct sequence spread spectrum)。其原理是利用10个以上的chips来代表原来的0或1,使得原来较高功率、较窄的频谱变成具有较宽频的低功率频谱,这种特性类似于噪声功率谱,因此接收端只有知道正确的扩频码才能进行正确的接收,进而增加了传输的可靠性。它是一种数字调制方法,具体说,就是将信源与一定的pn码(伪随机码、chip)进行同或运算。例如,在发射端用11000100110代替1,用00110010110代替0,这个过程就实现了扩频。上述过程如图4所示。

图4 扩频的实现过程

前面板:

图6 ds-ss前面板 ds-ss程序框图:

图7 ds-ss程序框图

实验步骤:

1、首先产生所需长度的伪随机序列(pn序列): pn序列(pseudo-noise sequence)即伪噪声序列,这类序列具有类似随机噪声的一些统计特性,但和真正的随机信号不同,它可以重复产生和处理,故称作

pn码最见的用途是在扩频系统中用来扩展信号频谱;伪随机噪声序列。此外pn 码也可以用来作为信源信息。

图8 mt generate bits输入输出

其中total bits为生成的伪随机序列的总长度、pn sequence order用来设定pn序列的循环周期(如果pn sequence order设为n,则周期为)、seed in指定pn序列生成器移位寄存器的初始状态(默认为0xd6bf7df2);output bit stream为伪随机序列的输出。

此外mt generate bits函数还有user defined模式,在此模式下函数可以 根据用户自定义的输入序列生成所需长度的循环序列。其输入输出如图9所示:

图9 user defined模式的输入输出 其中user base bit pattern为用户指定的序列,控件会不断循环用户指定的序列output bit stream为生成序列的直到输出序列的长度达到total bits所设定的值。输出。

本例中用到了三个mt generate bits函数,分别用来生成保护序列、同步序列和信息序列。

2、利用产生的序列对信源序列进行扩展:

图10 扩频模块

输入信源bit码、pn扩频码、误差;输出扩频码、误差。

72、de-dsss.vi子程序

de-dsss子程序的作用是在接收端实现对信号的解扩。解扩操作即扩频操作的逆过程。继续使用上面的例子,当你在发射端用11000100110代替1,而用00110010110代替0后,在接收机处只要把收到的序列是11000100110恢复成1,而00110010110恢复成0,这就是解扩。上述过程如图0所示。

图11 解扩的实现过程

前面板:

图12 de-dsss前面板 de-dsss程序框图:

图13 de-dsss程序框图

五、实验步骤:

1、产生所需长度的并与发射端相同伪随机序列(pn序列),同ds-ss;

2、然后利用产生的序列对接收信号进行解扩:

输入:将信源与pn序列通过“数组大小”模块返回其长度,相除得到的商作为搜索深度;输入经信道传输后的扩频码、与发送端同步的扩频序列以及误差。输出得解扩后码序列以及误差。

3、实验验证

在ds-ss子程序中,你可以手动输入一串0/1作为信源序列,并设置好pn序列的长度(设为n)。单独运行ds-ss子程序,观察输出的序列长度是否扩展了n倍,并注意输出序列中pn码是否与相应的0或者1对应。验证成功的话便表明你的ds-ss子程序编写正确。并利用类似的方法验证de-dsss子程序的正确性。

然后验证发射端主程序是否能正确的发射我们想要的扩频信号。首先正确的连接usrp并合理的配置发射端的各项参数,运行程序。

然后你可能会看到如图

9至图所示的发射信号时域波形和频域波形。

图14不扩频的时域信号

图16扩频后的时域信号

图17扩频后的频域信号 图15不扩频的频域信号

10可以看出经过扩频的发射信号与不经过扩频的发射信号相比,在频域上进行

了展宽,在时域上变得更加密集。这与扩频的基本原理相符,说明发射端的设计基本正确。

在接收端,我们需要使得参数能够与发射端匹配,这样才能正常的接收。特

别需要注意capture time、packet length和rx sample rate这几个参数,你首先需要理解它们的意义,这样才能够正确的配置它们。如果你在发射端没有修改默认参数的话,接收端的默认参数恰好能够与发射端匹配。你需要同时运行发射端和接收端程序,在发射端正确运行时观察接收端能否正确接收。程序会计算当前信噪比下的误码率,并逐渐增大信噪比、最终得出一条信噪比/误码率曲线,如图3-4-11所示。你可能需要稍等一段时间才能够看到程序运行完成的结果。在接收端程序运行的同时,你可以进入receiver子程序中的ber detected子程序,在里面观察当前信噪比接收到的数据数和误码数,如图3-4-12所示。

图18误码率曲线 图19运行时的数据显示

然后你可以尝试改变收发端的各项参数,观察不同参数对运行结果的影响。最后你需要按照要求完成实验报告。

六、实验结果 qpsk: 将usrp连接电脑,更改ip地址等参数。频率使用915mhz避免干扰。如下图20: 11 发送端前面板调制参数以及发送星座图发送时域波形如下图21:

发送端眼图和发送端频域波形如下,眼图的尖锐程度和发送频率有关,如图22:

接收端的硬件参数和误码率如下图,如图23:

接收端眼图如图24所示: bpsk: 调制参数如下: 14bpsk:发送端硬件参数

发送端星座图:

接收端眼图:

接收端星座图及误码率曲线(信噪比较低):

五、实验扩展

1、解释接收端同步模块的具体实现方式及其利用的基本原理。

(1)初始同步,或称粗同步、捕获。它主要解决载波频率和码相位的不确定性,保

证解扩后的信号能通过相关器后面的中频滤波器,这是所有问题中最难解决的问题。

(2)跟踪,或称精同步。

接收机对接收到的信号,首先进行搜索,对收到的信号与本地码相位差的大小进行判断,若不满足捕获要求,即收发相位差大于一个码元,则调整时钟再进行搜索。直到使收发相位差小于一个码元时,停止搜索,转入跟踪状态。图3-4-5同步流程图

图3-4-6跟踪流程图

2、扩频通信技术除了有较强的抗干扰能力外,还具有哪些优点?逐一例举出来并简述扩频技术具有这些优点的原因。

(1)易于重复使用频率,提高了无线频谱利用率

无线频谱十分宝贵,虽然从长波到微波都得到了开发利用,仍然满足不了社会

17的需求。在窄带通信中,主要依靠波道划分来防止信道之间发生干扰。为此,世界各国都设立了频率管理机构,用户只能使用申请获准的频率。扩频通信发送功率极低,采用了相关接收技术,且可工作在信道噪声和热噪声背景中,易于在同一地区重复使用同一频率,也可与各种窄道通信共享同一频率资源。所以,在美国及世界绝大多数国家,扩频通信无须申请频率,任何个人与单位都可以无执照使用。

(2)抗干扰性强,误码率低

扩频通信在空间传输时所占用的带宽相对较宽,而接收端又采用相关检测的办法来解扩,使有用宽带信息信号恢复成窄带信号,而把非所需信号扩展成宽带信号,然后通过窄带滤波技术提取有用的信号。这样,对于各种干扰信号,因其在接收端的非相关性,解扩后窄带信号中只有很微弱的成分,信噪比很高,因此抗干扰性强。在商用的通信系统中,扩频通信是唯一能够工作在负信噪比条件下的通信方式。

(3)隐蔽性好,对各种窄带通信系统的干扰很小

由于扩频信号在相对较宽的频带上被扩展了,单位频带内的功率很小,信号湮没在噪声里,一般不容易被发现,而想进一步检测信号的参数如伪随机编码序列就更加困难,因此说其隐蔽性好。再者,由于扩频信号具有很低的功率谱密度,它对使用的各种窄带通信系统的干扰很小。

(4)可以实现码分多址

扩频通信提高了抗干扰性能,但付出了占用频带宽的代价。如果让许多用户共用这一宽频带,则可大大提高频带的利用率。由于在扩频通信中存在扩频码序列的扩频调制,充分利用各种不同码型的扩频码序列之间优良的自相关特性和互相关特性,在接收端利用相关检测技术进行解扩,则在分配给不同用户码型的情况下可以区分不同用户的信号,提取出有用信号。这样一来,在一宽频带上许多对用户可以同时通话而互不干扰。

(5)抗多径干扰

这两种技术在扩频通信中都易于实现。利用扩频码的自相关特性,在接收端从多径信号中提取和分离出最强的有用信号,或把多个路径来的同一码序列的波形相加合成,这相当于梳状滤波器的作用。另外,在采用频率跳变扩频调制方式的扩频系统中,由于用多个频率的信号传送同一个信息,实际上起到了频率分集的作用。

(6)能精确地定时和测距

电磁波在空间的传播速度是固定不变的光速,人们自然会想到如果能够精确测

18量电磁波在两个物体之间的传播时间,也就等于测量两个物体之间的距离。在扩频通信中如果扩展频谱很宽,则意味着所采用的扩频码速率很高,每个码片占用的时间就很短。当发射出去的扩频信号在被测量物体反射回来后,在接收端解调出扩频码序列,然后比较收发两个码序列相位之差,就可以精确测出扩频信号往返的时间差,从而算出两者之间的距离。测量的精度决定于码片的宽度,也就是扩展频谱的宽度。码片越窄,扩展的频谱越宽,精度越高。

(7)适合数字话音和数据传输,以及开展多种通信业务

扩频通信一般都采用数字通信、码分多址技术,适用于计算机网络,适合于数据和图像传输。

(8)安装简便,易于维护

扩频通信设备是高度集成,采用了现代电子科技的尖端技术,因此,十分可靠、小巧,大量运用后成本低,安装便捷,易于推广应用。

3、伪随机序列有许多种,例如m序列、gold序列、m序列等。尝试使用不同的方法来产生伪随机序列,并用其实现对信号的扩频。

(1)m序列是目前广泛应用的一种伪随机序列,m序列每一周期中 1 的个数比 0 的个数多 1 个。状态“0”或“1”连续出现的段称为游程。游程中“0”或“1” m序列的一个周期(p=2^n-1)中,的个数称为游程长度。游程总数为 2^n-1,“0”、“1”

各占一半。2个彼此移位等价的相异m序列,按模2相加所得的序列仍为m序列,并与原m序列等价。

(2)gold序列gold码序列是一种基于m序列的码序列,具有较优良的自相关和互相关特性,产生的序列数多。gold码的自相关性不如m序列,具有三值自相关特性;互相关性比m序列要好,但还没有达到最佳。是由两个码长相等、码时钟速率相同的m序列优选对通过模2相加而构成的。

4、适当的在系统中添加干扰,以验证扩频的良好的抗干扰能力。

强扩频通信系统扩展的频谱越宽,处理增益越高,抗干扰能力就越强。简单

地说,如果信号频谱展宽10倍,那么干扰方面需要在更宽的频带上去进行干扰,分散了干扰功率,从而在总功率不变的条件下,其干扰强度只有原来的1/10。另外,由于接收端采用扩频码序列进行相关检测,空中即使有同类信号进行干扰,如果不能检测出有用信号的码序列,干扰也起不了太大作用,因此抗干扰性能强是扩频通信的最突出的优点。19 20

第三篇:Android实验报告—网络通信

实验三

Android网络通信

实验目的:

本实验的目的是使学生深入了解利用Intent实现进程间的通信过程。学会利用Intent进行Activity的跳转,以及链接网页信息;学会利用Intent将其他Activity的信息返回到Activity中的方法。体会Activity间通信的过程。

实验要求:

编程实现下述功能:主界面上有一个“登录”按钮和“链接网页”按钮,点击“登录”按钮后打开一个新的Activity;新的Activity上面有输入用户名和密码的控件(如下图所示)点击“链接网页”按钮,新的Activity上面有输入Uri信息的控件,可以链接到相应的网站,在用户关闭这个Activity后,返回到主界面中

程序界面如下图所示:

[实现提示]

1、建立Android工程,其中 工程名称:WebCommunication579

包名称:cn.edu.bistu.dj1001.WebCommunication579 Activity名称:WebCommunication579

2、工程建立完毕后,首先进行界面设计,建立相应的子Layout界面

3、在工程中添加相应的.java文件,处理各个Activity的事件响应

4、在Manifest中添加新建的Activity信息,进行注册。

程序源码:

主界面java文件代码: package cn.deu.bistu.dj1001.WebCommunication579;

import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;

public class WebCommunication579 extends Activity { private Button btnLogin,btnGoToWeb;private TextView show;private static final int SUBACTIVITY1 = 1;@Override

public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.main);btnLogin=(Button)findViewById(R.id.btnLogin);btnGoToWeb=(Button)findViewById(R.id.btnGoToWeb);show=(TextView)findViewById(R.id.A1show);

btnLogin.setOnClickListener(new OnClickListener(){ public void onClick(View v){ Intent intent = new Intent(WebCommunication592.this, activity1.class);

startActivityForResult(intent, SUBACTIVITY1);

}});btnGoToWeb.setOnClickListener(new OnClickListener(){ public void onClick(View v){ Intent intent = new Intent(WebCommunication592.this, activity2.class);startActivity(intent);}});} protected void onActivityResult(int requestCode, int resultCode, Intent data){ super.onActivityResult(requestCode, resultCode, data);switch(requestCode){ case SUBACTIVITY1: if(resultCode == RESULT_OK){Uri uriData = data.getData();show.setText(uriData.toString());} break;}};} 界面一java文件代码:

package cn.deu.bistu.dj1001.WebCommunication579;

import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;

public class activity1 extends Activity { private Button btnOK,btnCancel;private EditText edtInput;public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.activity1);edtInput=(EditText)findViewById(R.id.edtA1Input);btnOK=(Button)findViewById(R.id.btnA1OK);btnCancel=(Button)findViewById(R.id.btnA1Cancel);btnOK.setOnClickListener(new OnClickListener(){

public void onClick(View v){ String uriString = edtInput.getText().toString();Uri data = Uri.parse(uriString);Intent result = new Intent(null, data);setResult(RESULT_OK, result);finish();}});btnCancel.setOnClickListener(new OnClickListener(){ public void onClick(View view){ finish();}});}} 界面二java文件代码:

package cn.deu.bistu.dj1001.WebCommunication579;

import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;

import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;

public class activity2 extends Activity { private EditText edtInput;private Button btnOK,btnCancel;public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.activity2);edtInput=(EditText)findViewById(R.id.edtA2Input);btnOK=(Button)findViewById(R.id.btnA2OK);btnCancel=(Button)findViewById(R.id.btnA2Cancel);btnOK.setOnClickListener(new OnClickListener(){ public void onClick(View v){ Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(edtInput.getText().toString()));startActivity(intent);}});btnCancel.setOnClickListener(new OnClickListener(){

public void onClick(View v){

finish();

}});}} 主界面的xml文件代码:

xmlns:android=“http://schemas.android.com/apk/res/android” android:orientation=“Horizontal” android:layout_width=“fill_parent” android:layout_height=“fill_parent”>

android:text=“登录”

android:id=“@+id/btnLogin”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”>

android:text=“链接网页”

android:id=“@+id/btnGoToWeb”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”>

android:text=“"

android:id=”@+id/A1show“ android:layout_width=”wrap_content“

android:layout_height=”wrap_content“>

界面一的xml文件代码:

android:orientation=”Horizontal“ android:layout_width=”fill_parent“ android:layout_height=”fill_parent“

xmlns:android=”http://schemas.android.com/apk/res/android“>

android:layout_width=”wrap_content“ android:layout_height=”wrap_content“>

android:text=”用户名和密码:“

android:layout_width=”wrap_content“

android:layout_height=”wrap_content“>

android:text=”“

android:id=”@+id/edtA1Input“

android:layout_width=”wrap_content“

android:layout_height=”wrap_content“>

android:layout_width=”wrap_content“ android:layout_height=”wrap_content“>

android:text=”确定“

android:id=”@+id/btnA1OK“

android:layout_width=”wrap_content“

android:layout_height=”wrap_content“>

android:text=”取消 “

android:id=”@+id/btnA1Cancel“

android:layout_width=”wrap_content“

android:layout_height=”wrap_content“>

界面二的xml文件代码:

xmlns:android=”http://schemas.android.com/apk/res/android“>

android:text=”“

android:id=”@+id/edtA2Input“

android:layout_width=”match_parent“

android:layout_height=”wrap_content“>

android:text=”确定“

android:id=”@+id/btnA2OK“

android:layout_width=”wrap_content“

android:layout_height=”wrap_content“>

android:text=”取消“

android:id=”@+id/btnA2Cancel“

android:layout_width=”wrap_content“

android:layout_height=”wrap_content">

程序运行结果:

程序包:

主界面:

点击登录按钮后:

点击确定按钮后:

点击链接网页按钮后:

点击确定按钮后:

实验心得体会:

通过本次实验深入了解了Intent实现进程间的通信过程。熟悉了利用Intent将其他Activity的信息返回到Activity中的方法,可以更熟练的使用安卓编程软件。

第四篇:无线传感网实验报告

Central South University

无线传感器网络 实验报告

学院:

班级: 学号: 姓名:

时间: 指导老师:

第一章 基础实验

了解环境

1.1 实验目的

安装 IAR 开发环境。CC2530 工程文件创建及配置。源代码创建,编译及下载。1.2 实验设备及工具

硬件:ZX2530A 型底板及 CC2530 节点板一块,USB 接口仿真器,PC 机

软件:PC 机操作系统 WinXP,IAR 集成开发环境,TI 公司的烧写软件。

1.3 实验内容

1、安装 IAR 集成开发环境

IAR 集成开发环境安装文件所在光盘目录:物联网光盘工具CD-EW8051-7601

2、ZIBGEE 硬件连接

安装完 IAR 和 Smartrf Flash Programmer 之后,按照图所示方式连接各种硬件,将仿真器的 20 芯 JTAG 口连接到 ZX2530A 型 CC2530 节点板上,USB 连接到 PC 机上,RS-232 串口线一端连接 ZX2530A 型 CC2530 节点板,另一端连接 PC 机串口。

3、创建并配置 CC2530 的工程文件 IAR 是一个强大的嵌入式开发平台,支持非常多种类的芯片。IAR 中的每一个 Project,都可以拥有自己的配置,具体包括 Device 类型、堆/栈、Linker、Debugger 等。(1)新建 Workspace 和 Project 首先新建文件夹 ledtest。打开 IAR,选择主菜单 File-> New-> Workspace 建立新的工作区域。

选择 Project-> Create New Project-> Empty Project,点击 OK,把此工程文件保存到文件夹 ledtest 中,命名为:ledtest.ewp(如下图)。

(2)配置 Ledtest 工程

选择菜单 Project->Options...打开如下工程配置对话框

选择项 General Options,配置 Target 如下 Device:CC2530;

(3)Stack/Heap 设置:XDATA stack size:0x1FF

(4)Debugger 设置:

Driver:Texas Instruments(本实验为真机调试,所以选择 TI;若其他程序要使用 IAR仿真器,可选 Simulator)

至此,针对本实验的 IAR 配置基本结束.4、编写程序代码并添加至工程

选择菜单 File->New->File 创建一个文件,选择 File->Save 保存为 main.c 将 main.c 加入到 ledtest 工程,将实验代码输入

然后选择 Project->Rebuild All 编译工程

编译好后,选择 Project->Download and debug 下载并调试程序 下载完后,如果不想调试程序,可点工具栏上的按钮终止调试。

到此,程序已经下载到了 cc2530 芯片的 flash 内,按下 ZX2530A 上的复位按钮可看到程序的运行效果。

LED 实验 2.1 实验目的

通过 I/O 控制小灯闪烁的过程。

在 ZX2530A 型 CC2530 节点板上运行自己的程序。2.2 实验设备及工具

硬件:ZX2530A 型底板及 CC2530 节点板一块,USB 接口仿真器,PC 机

软件:PC 机操作系统 WinXP,IAR 集成开发环境。2.3 实验结果

1.正确连接下载线和 ZX2530A 型 CC2530 节点板,打开 ZX2530A 型 CC2530 节点板电源。

2.在文件夹“基础实验2 LED”下打开工程 led,编译工程,并下载到 CC2530 节点板。3.观察 LED 的闪烁情况。

4.修改延时函数,可以改变 LED 小灯的闪烁间隔时间。

5.重新编译,并下载程序到 CC2530 节点板,观察 LED 的闪烁情况。

答:增加延时就会发现小灯闪烁的频率降低了。

串口实验 3.1 实验目的

本次实验将会学习如果使用串口实现与 PC 机的通讯。(实验中需要 PC 机与开发板之间使用RS232 交叉串口连接线)。

能正确配置 CC2530 的串口。3.2 实验设备及工具

硬件:ZX2530A 型底板及 CC2530 节点板一块,USB 接口仿真器,PC 机,交叉串口线一根。

软件:PC 机操作系统 WinXP,IAR 集成开发环境、串口调试助手。3.3 实验结果

CC2530 能与上位机通过串口正常通信

1.正确连接下载线和 ZX2530A 型 CC2530 节点板,用串口线正确连接上位机和 ZX2530A 型板,使能通过串口交换数据。

2.在文件夹“基础实验5 uart”下打开工程 uart,编译工程,并下载到 CC2530 节点板。

3.通过上位机上的串口调试助手,发送数据到 cc2530,然后检查 cc2530 回送给上位机的数据。

3.4 实验总结

通过这次实验,让我对无线传感器网络有了进一步的了解。在无线的世界,感觉一切都是那么神奇,二一切又是那么理所当然,记得小时候常常想,那些无线好神秘,画面,声音等怎么可以从一方到达另一方而可以完全不接触。虽然今天做的实验都是很小很简单的,比起显示中那些绚丽的感觉没什么值得赞扬的,但对于我来说,这个更有魅力,那些绚丽的我是以仰望的视角来对待,而这次我能深入它的原理去真正接触它,以平视来看待它。

第二章 射频实验

点对点射频通信实验 1 实验目的

在 ZX2530A 型 CC2530 节点板上运行相应实验程序。熟悉通过射频通信的基本方法。练习使用状态机实现收发功能。2 实验内容

接收节点上电后进行初始化,然后通过指令 ISRXON 开启射频接收器,等待接收数据,直到正确接收到数据为止,通过串口打印输出。发送节点上电后和接收节点进行相同的初始化,然后将要发送的数据输出到 TXFIFO 中,再调用指令 ISTXONCCA 通过射频前端发送数据。3 实验设备及工具

硬件:ZX2530A 型 CC2530 节点板 2 块、USB 接口的仿真器,PC 机 Pentium100 以上。

软件:PC 机操作系统 WinXP、IAR 集成开发环境、串口监控程序。4 实验原理

发送节点通过串口接收用户的输入数据然后通过射频模块发送到指定的接收节点,接收节点通过射频模块收到数据后,通过串口发送到 pc 在串口调试助手中显示出来。如果发送节点发送的数据目的地址与接收节点的地址不匹配,接收节点将接收不到数据。以下为发送节点程序流程图:

以下为接收节点流程图: 实验步骤

1.打开光盘“无线射频实验2.点对点通信”双击 p2p.eww 打开本实验工程文件。2.打开 main.c 文件下面对一些定义进行介绍 RF_CHANNEL 此宏定义了无线射频通信时使用的信道,在多个小组同时进行实验是建议每组选择不同时信道。但同一组实验中两个节点需要保证在同一信道,才能正确通信。

PAN_ID 个域网 ID 标示,用来表示不同在网络,在同一实验中,接收和发送节点需要配置为相同的值,否则两个节点将不能正常通信。SEND_ADDR 发送节点的地址 RECV_ADDR 接收节点的地址

NODE_TYPE 节点类型:0 接收节点,1:发送节点,在进行实验时一个节点定义为发送节点用来发送数据,一个定义为接收节点用来接收数据。

3.修改 NODE_TYPE 的值为 0,并编译下载到节点板。此节以下称为接收节点。

4.修改 NODE_TYPE 的值为 1,并编译下载到另外一个节点板。此节点板以下称为发送节点。

5.将接收节点的串口与 pc 的串口相连,并在 pc 端打开串口调试助手,配置波特率为 115200。

6.先将接收节点上电,然后将发送节点上电。7.从串口调试助手观察接收节点收到的数据。

8.修改发送数据的内容,然后编译并下载程序到发送节点,然后从串口调试助手观察收到的数据。9.修改接收节点的地址,然后重新编译并下载程序到接收节点,然后从发送节点发送数据观察接收节点能否正确接收数据。6 实验数据分析及结论

发送节点将数据发送出去后,接收节点接收到数据,并通过串口调试助手打印输出。发送数据的最大长度为 125(加上发送的据长度和校验,实际发送的数据长度为 128 字节)。7 实验心得

这次实验在原来的短距离无线通信中有所涉猎,所以应该这个对于我们来说还是很简单的,所以很快就做完实验了,就和几个同学好好研究了一下它的原理和一些它的展望,感觉这个学科以后有很大的发展前途,作为一个物联网的学生,对无线射频技术应该得很了解,指望它吃饭呢。这次实验也很简单,但是还是可以解除它的最底层的东西可以更加激发我们的兴趣。第三章 ZStack组网实验

多点自组织组网实验 1 实验目的

理解 zigbee 协议及相关知识。

在 ZX2530A 型 CC2530 节点板上实现自组织的组网。在 ZStack 协议栈中实现单播通信。2 实验内容

先启动协调器节点,协调器节点上电后进行组网操作,再启动路由节点和终端节点,路由节点和终端节点上电后进行入网操作,成功入网后周期的将自己的短地址,父节点的短地址,自己的节点 ID 封装成数据包发送给协调器节点,协调器节点接收到数据包后通过串口传给 PC,从 PC 上的串口监控程序查看组网情况。发送数据格式为(16 进制): FF 源节点(16bit)父节点(16bit)节点编号 ID(8bit)例如 FF 4B 00 00 00 01,表示 01 号节点的网络地址为 004B,发送数据到父节点,其网络地址为 00 00(协调器)。3 实验设备及工具

硬件:DZ2530 型 CC2530 节点板、USB 接口的仿真器,PC 机 Pentium100 以上。

软件:PC 机操作系统 WinXP、IAR 集成开发环境、ZTOOL 程序。4 实验原理

程序执行的流程图如图 5-4 所示,在进行一系列的初始化操作后程序就进入事件轮询状态。

对于终端节点,若没有事件发生且定义了编译选项 POWER_SAVING,则节点进入休眠状态。

协调器是 Zigbee 三种设备中最重要的一种。它负责网络的建立,包括信道选择,确定唯一的PAN 地址并把信息向网络中广播,为加入网络的路由器和终端设备分配地址,维护路由表等。Z-Stack 中打开编译选项 ZDO_COORDINATOR,也就是在 IAR 开发环境中选择协调器,然后编译出的文件就能启动协调器。具体工作流程是:操作系统初始化函数 osal_start_system 调用ZDAppInit 初 始 化 函 数,ZDAppInit 调 用 ZDOInitDevice 函 数,ZDOInitDevice 调 用

ZDApp_NetworkInit 函数,在此函数中设置 ZDO_NETWORK_INIT 事件,在 ZDApp_event_loop 任务中对其进行处理。由 第 一 步 先 调 用 ZDO_StartDevice 启动网络中的设备,再调用NLME_NetworkFormationRequest 函数进行组网,这一部分涉及网络层细节,无法看到源代 码,在库中处理。ZDO_NetworkFormationConfirmCB 和 nwk_Status 函数有申请结果的处理。如果成功则 ZDO_NetworkFormationConfirmCB 先执行,不成功则 nwk_Status 先执行。接着,在ZDO_NetworkFormationConfirmCB 函数中会设置 ZDO_NETWORK_START 事件。由于第三步,ZDApp_event_loop 任务中会处理 ZDO_NETWORK_START 事件,调用 ZDApp_NetworkStartEvt 函数,此函数会返回申请的结果。如果不成功能量阈值会按ENERGY_SCAN_INCREMENT 增加,并将App_event_loop 任务中的事件 ID 置为 ZDO_NETWORK_INIT 然后跳回第二步执行;如果成功则设置 ZDO_STATE_CHANGE_EVT 事件让 ZDApp_event_loop 任务处理。对 于 终 端 或 路 由 节 点,调 用 ZDO_StartDevice 后 将 调 用 函 数 NLME_NetworkDiscoveryRequest 进行信道扫描启动发现网络的过程,这一部分涉及网络层 细节,无法看到源代码,在库中处理,NLME_NetworkDiscoveryRequest函数执行的结果将会返回到函数ZDO_NetworkDiscoveryConfirmCB 中,该 函 数 将 会 返 回 选 择 的 网 络,并 设 置 事 件ZDO_NWK_DISC_CNF,在 ZDApp_ProcessOSALMsg 中对该事件进行处理,调用 NLME_JoinRequest加入指定的网络,若加入失败,则重新初始化网络,若加入成功则调用 ZDApp_ProcessNetworkJoin函数设置 ZDO_STATE_CHANGE_EVT,在对该事件的处理过程 中将调用ZDO_UpdateNwkStatus函数,此函数会向用户自定义任务发送事件 ZDO_STATE_CHANGE。本实验在 Zstack 的事例代码 simpleApp 修改而来。首先介绍任务初始化的概念,由于自定义任务需要确定对应的端点和簇等信息,并且将这些信息在 AF 层中注册,所以每个任务都要初始化然后才会进入 OSAL 系统循环。在 Z-Stack 流程图中,上层的初始 化集中在 OSAL 初始化(osal_init_system)函数中。包括了存储空间、定时器、电源管理和 各任务初始化。其中用户任务初始化的流程如下:

用户任务初始化流程图

任务 ID(taskID)的分配是 OSAL 要求的,为后续调用事件函数、定时器函数提供了参数。网络状态在启动的时候需要指定,之后才能触发 ZDO_STATE_CHANGE 事件,确定设备的类型。目的地址分配包括寻址方式,端点号和地址的指定,本实验中数据的发送使用单播方式。之后设置应 用 对 象 的 属 性,这 是 非 常 关 键 的。由 于 涉 及 很 多 参 数,Z-Stack 专 门 设 计 SimpleDescriptionFormat_t 这一结构来方便设置,其中的成员如下: EndPoint,该节点应用的端点,值在 1-240 之间,用来接收数据。AppProfId,该域是确定这个端点支持的应用 profile 标识符,从 Zigbee 联盟获取具体的 标识符。AppNumInClusters,指示这个端点所支持的输入簇的数目。pAppInClusterList,指向输入簇标识符列表的指针。AppNumOutClusters,指示这个端点所支持的输出簇的数目。pAppOutClusterList,指向输出簇标识符列表的指针。

本实验 profile 标识符采用默认设置,输入输出簇设置为相同 MY_PROFILE_ID,设 置完成后,调用 afRegister 函数将应用信息在 AF 层中注册,使设备知晓该应用的存在,初 始化完毕。一旦初始化完成,在进入 OSAL 轮询后 zb_HandleOsalEvent 一有事件被触发,就会得到及时的处理。事件号是一个以宏定义描述的数字。系统事件(SYS_EVENT_MSG)是强制的,其中包括了几个子事件的处理。ZDO_CB_MSG 事件是处理 ZDO 的响应,KEY_CHANGE 事件 处理按键(针对 TI 官方的开发板),AF_DATA_CONFIRM_CMD 则是作为发送一个数据包 后的确认,AF_INCOMING_MSG_CMD是接收到一个数据包会产生的事件,协调器在收到 该事件后调用函数 p2p_test_MessageMSGCB,将接收到的数据通过 HalUARTWrite 向串口 打印输出。ZDO_STATE_CHANGE 和网络状态的改变相关在此事件中若为终端或路由节点 则发送用户自定义的数据帧:FF 源节点短地址(16bit,调用 NLME_GetShortAddr()获得)、父节点短地址(16bit,调用 NLME_GetCoordShortAddr())、节点编号 ID(8bit,为长地址的最低字节,调用 NLME_GetExtAddr()获得,在启动节点前应先用 RFProgrammer 将非 0XFFFFFFFFFFFFFFFF 的长地址写到 CC2530 芯片存放长地址的寄存器中),协调器不做任何处理,只是等待数据的到来。终端和路由节点在用户自定义的事件 MY_REPORT_EVT中 发 送 数 据 并 启 动 定 时 器 来 触 发 下 一 次 的 MY_REPORT_EVT 事件,实现周期性的发送数据(发送数据的周期由宏定义 REPORT_DELAY 确定)。5 实验步骤

1.打开工程文件夹协议栈实验2.多点自组网ProjectszstackSamplesSimpleAppCC2530DB下的工程文件 SimpleApp.eww。2.选择工程

编译,生成协调器代码,并下载到 ZX2530A 开发板。此节点为协调器节点。3.选择工程

编译,生成终端节点代码,并下载到 ZX2530 开发板。此节点为终端节点。4.选择工程

编译,生成路由器节点代码,并下载到 ZX2530 开发板,此节点为路由器节点。5.用串口线将协调器节点与 pc 连接起来,在 pc 端打开 ZTOOL 程序。(ZTOOL 程序在 zstack 安装后自动安装)6.开启 ZX2530A 型 CC2530 节点板电源。7.在 ZTOOL 程序中观察组网结果。6 实验数据分析及结论

由接收数据的 DebugString 可以看出图中有两个节点加入了网了,其中一个节点的 DEVID 是21,网络地址:4f07,父节点地址是 0 即协调器。另外一个节点的 DEVID 是 11,网络地址:A6F7,父节点地址是 4f07 即上一节点。实验中可以试着改变不同节点的位置,然后通过 ZTOOL 看看组网结果有什么不同。7 实验心得

这次实验感觉比原来的更有趣,可以在手机上看到无线连接的组网,所以和同学们很有兴趣,虽然只有几个分支,但是几个的通信还是可以清晰可见的。同时也让我们看到了大型android手机的模样,以前都是看成品,这次看的是半成品,感觉很有意思。在组网的过程中,遇到了一些问题,刚开始不知道如何解决,就问同学和老师,有的是线的问题,由于实验器材本身的问题,导致一些松动之类的,但最后实验总算是顺利的完成了。在这感谢帮助我的同学和老师。第四章 传感器网络综合实验

Zigbee 节点控制程序设计 1.1 协调器节点工程

SimpleCoordinator 即协调器工程,如下图

协调器的应用功能代码实现文件是 SimpleCoordinator.c 在工程文件夹 App 目录下具体实现可参考源码。按下键盘上的 F7 即个编译协调器工程,编译好之后可将代码下载到协调器节点板。1.2 人体红外传感器节点工程

SimpleInfrared 即人体红外传感器工程,如下图

人体红外传感器节点应用控制代码可参考工程目录 App 下 SimpleInfrared.c 1.3 超声波距离传感器节点工程 SimpleDistanceSensor 即超声波距离传感器工程,如下图

超声波距离传感器节点实现代码可参考工程目录 App 下

SimpleDistanceSensor.c。超声波测距驱动代码请参考 ys-srf05.c 文件。

1.4 湿度传感器节点工程

SimpleHumiditySensor 即湿度传感器节点工程,如下图

湿度传感器应用控制代码可参考工程目录 App 下SimpleHumiditySensor.c 文件,其湿度的测量驱动可参考温湿度传感器驱动 dht11.c 文件

平台控制操作 2.1 启动程序

1)安装好程序后,打开 android 应用程序面板,找到图标 点击进入程序。

2)直接点击登录按钮,进入到系统主界面。第一次进入是系统会自动连接到 zigbee 网关然后去搜索 zigbee 网络,默认的 zigbee 网关地址为本机 IP 地址,即 127.0.0.1。

3)如果你的 zigbee 网关地址不是本机,则需要修改默认网关地址。通过按下系统‘菜单’按键,会出现如下菜单,选择‘设置’菜单,可以设置默认的 zigbee 网关。如下图:

4)设置好网关后,下次启动程序就不用再次设置了。2.2 搜索网络

如果 zigbee 网关设置好,通过菜单选择‘搜索网络’就可以搜索 zigbee 网络了,正常情况下至少会有一个协调器节点,如果程序提示搜索不到网络,请检查你的网络连接和协调器是否正确连接。如果 zigbee 网络上还有其它节点,可以在网络 TOP 图上一起显示出来。如下,是一个zigbee 网络 TOP 图:

图中共有 7 个节点,其中最上面那个是协调器节点,其它为传感器节点,其中地址为 58229的灯光设备带有路由功能,属路由器节点,它下面有两个子节点,分别为人体传感器和温度传感器。2.3 传感器节点操作

通过搜索到的 zigbee 网络 TOP 图,可以了解整个 zigbee 网络的节点分布情况。通过点击屏幕上相应节点的图标可以进入相关节点的控制和监控操作。

下图为温度传感器的监控界面:

其它界面读者可以自行实验,并且去了解。

实验心得

四次实验完成了,虽然不能说自己学到了很多吧,至少对这里面的一些操作有了一定的了解,本科生本来就是为了让我们扩充视角,知道更多的东西。无线传感网络真的感觉很神奇,也很有发展前景,这些高尖端的技术,现在存在一些瓶颈,如果能够突破,对物联天下这个目标将前进了一大步,如果能够把传感器节点造的更节能,更低廉,更小巧,将会实现全球各个地方的实时数据采集,就可以得到更多的信息,为以后生产生活带来巨大的改变。在收集的数据肯定是海量的,将需要其他学科的支撑,一起结合起来,实现真的物物相联。

第五篇:无线数据采集模块实验报告

无线数据采集模块

实验报告

姓名:张兆伟

班级:13 班

学号:2015042130 日期:2016年8月25日

无线数据采集模块实验报告

一、实验背景

数据是指用来描述客观事物的数字、字母和符号等等。数据传输在人类活动中的重要性是不言而喻的。它是计算机与外部物理世界连接的桥梁。数据采集,或称数据获取,既利用一种装置,从系统外部采集数据输入到系统内部。

随着计算机、通信和网络技术的飞速发展,无线传感器网络应运而生。传感测试技术正朝着多功能化、微型化、智能化、网络化、无线化的方向发展。工业无线网络是从新兴的无线传感器网络发展而来的,具有低成本、低能耗、高度灵活性、扩展性强等特点,已经成为继现场总线技术后的又一个研究热点。无线数据采集既要在复杂,恶劣的现场环境下将物理量完整的进行采集,更要将采集到的数据传给远端的主控室。其主要应用领域包括:工业遥控、遥测;石油钻井张力无线监测;短距离无线数据传输;安防设备无线监控;无线RS485、无线PLC;城市管网压力、温度监测;电力线无线报警等。

二、实验过程

无线数据采集既要在复杂,恶劣的现场环境下将物理量完整的进行采集,更要讲采集到的数据传给远端的主控室。DTD110系列无线数传模组广泛应用于无线数传领域,典型应用包括遥控、遥感、遥测系统中的数据采集、检测、报警、过程控制等环节。

DTD110系列无线PLC有4路开关量的传输,4路模拟量的传输,距离100米~3000米均可。即可以实现点对点通信,也可以实现点对多点通信,不需要编写程序,不需要布线,一般电工就可以调试使用。对于工业现场的遥测遥控实施简单、方便、便宜。

1、适用范围

无线数据采集模块具有数据采集、控制、GPRS无线远程通信等功能。采用低功耗设计。该产品可接入各种串口仪表、各种模拟信号输出的变送器、各种脉冲信号输出的雨量计、水表等。广泛用于水务、环保、气象、市政、环境、地质、农业、公安等行业远程监控系统。特别适用于太阳能供电方式的现场应用,可大大降低太阳能供电成本。

2、无线数据采集的特征:

多种配置应用方案,可以满足用户不同的需要;4个开关输入通道,4个开关OC门输出通道;4个模拟量输入通道,4个模拟量输出通道;可以直接代替有线的PLC设备;一体化设计,结构紧凑;多种产品规格适应于不同的传输距离;射频输出功率10mW、500mW、1000mW;GFSK调制,高效前向纠错信道编码技术;软件无线电技术保证高抗干扰能力和低误码率;ISM 频段433MHz,无需申请频点;工业标准设计,能工作于各种恶劣环境;直流9~24V供电,电流小于800mA。

3、主要功能

1)远程通信:GPRS网络和短消息双通道传输数据,支持专线、VPN专网多种组网方式。

2)通讯协议:支持UDP、TCP 协议,支持多中心数据通信。

3)模拟量输入:可采集4-20mA、0-5V等多种电流、电压信号输出模拟量。

4)开关量输入:可采集干接点、有源接点开关量输出信号,可定时采集以降低能耗。

5)脉冲量输入:可采集干接点脉冲信号,用于采集脉冲发讯水表。6)智能仪表接入:提供2路RS232/485串口,可以采集各种智能仪表,如流量计、照相机等。

7)开关量输出:提供三极管集电极信号输出。

8)电源输出:可定时为变送器供电,输出电压:同输入电源电压。9)远程控制:接受远程指令,实现控制。

10)数据显示:可支持2×8中文汉字液晶显示,配有4个数字键盘。

11)数据查询:可本机按键查询,同时支持就地串口查询,远程查询。

12)远程通信:支持RS232/485总线、GPRS、SMS等多种通信。

13)配套软件:配套提供参数设置软件。

4、主要特点

1)工作电流低:GPRS实时在线,平均工作电流<10mA。

2)数据存储容量大:本机循环存储监测数据,掉电不丢失,存储容量:4M。

3)维护方便:支持远程参数设置,远程软件升级。

4)体积小:外型尺寸145×100×65mm

5、技术指标

1)硬件配置:GPRS/GSM无线通信接口、4路AI、4路DI、6路PI、3路DO、2路串口、中文液晶显示和无显示可选、1个4按键键盘可选。

2)采集精度:模拟量采集精度:0.5%,脉冲计数误差:0.01%

3)通信协议:支持标准MODBUS协议,可嵌入其它通信协议。

4)通信接口:GPRS/GSM无线通信接口,1路串口用于维护,2路串口采集仪表,232/485可选。

5)通信速率:300~19200 bit/s

6)工作环境:温度:-25~+70℃、湿度:≤95%、无腐蚀气体、无导电尘埃、无爆炸环境。

7)安装方式:一般采用导轨式安装,特殊场合,可将控制器固定在安装底板上。

8)供电电源:10~28VDC

6、系统功能

系统主要分三层,第一层为服务器,第二层为过渡层,由 Zigbee 协调器和 Zigbee节点构成,第三层为任务层,由 54 个监测单元和 1 个显示单元构成。系统的主要功能为:服务器有选择地查询 54 个监测单元的数据,然后根据需要将某个监测单元的数据发送到显示单元上,让其显示,中间的传输全部由 Zigbee 组网无线通讯。

其服务器主要功能:

1)开辟多个线程,每个线程主动轮询各个节点;与每个节点的通讯必须“有问 必答”,具有超时控制机制; 2)具有广播,组播配置参数功能;

3)对每个节点可以实时监测重量,温度,湿度参数。并且以曲线形式显示; 4)实时采集每个节点的参数并显示;

5)服务器采用 Windows 7 操作系统,开发工具为 C#和 SQL 数据库,最终生成安装文件。

三、实验结果

直观看到显示单元上面显示的值,什么都不选时,数码管上显示 0000,当输入节点编号,并双击鼠标选中温度、湿度或者重量时,点击确定后,数码管

会立即显示具体数值,并且给显示单元发送显示命令。

四、认识与体会

数据采集是整个工厂自动化的最前端,测试精度、速度与实现该功能的成本是几个重要因素,数据采集也正朝着这几个方向发展。高速、实时数据采集在运动控制、医疗设备、快速生产过程和变电站自动化等领域都有非常重要的应用。这些行业中,对高速数据采集的需求远远超过目前实际可以实现的程度。用户的需求促进了技术的发展和新产品的出现,随着工业发达国家和新兴崛起国家为提高其产品在全球市场的竞争力,他们更进一步希望降低包括能源消耗、原材料消耗和劳务成本。对于发达国家来讲,其劳务成本远远高于新兴崛起国家,因此特别重视促进创新和技术进步,采用新的技术手段。正是在这样竞争日益激烈的大背景下,无线数据采集技术在工业中的推广应用则受到了特殊的重视。

下载无线网络通信实验报告(精选多篇)word格式文档
下载无线网络通信实验报告(精选多篇).doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    半双工调频无线对讲机实验报告

    实验十九 半双工调频无线对讲机 一、实验目的 1、 在模块实验的基础上掌握调频发射机、接收机,整机组成原理,建立调频系统概念。 2、 掌握系统联调的方法,培养解决实际问题的能......

    构建小型无线局域网实验报告

    构建小型局域网实验报告 实验名称:构建小型局域网实训 实验起止日期: 小组成员: 实验内容: 1. 知识回顾 a) 对比组建微型局域网多种方式的优劣性 i. 有线局域网的缺点 1.在某些......

    网络通信

    网络通信(电子通信工程学院 刘云)摘要:针对现科技发展及通信技术提高,本学期暑假的暑期实践活动我加入了合肥常宏测控技术责任有限公司。通过本次实习,可以开阔视野,增长见识,拓宽......

    网络通信中国

    网络通信中国(voipchina)消息 迪威视讯高清视频通讯系统的先进性和技术特性 迪威视讯高清视频通讯系统广泛应用于首脑级政要会议、多媒体行政会商、应急指挥、远程教育系统、......

    网络通信年终总结

    随着社会发展和经济进步,科技水平也在不断地提高,计算机网络通信日益成为人们日常生活中信息交流与沟通的重要载体,那么怎么写一份总结呢?下面是小编精心收集的网络通信年终总结......

    《宽带无线接入技术》仿真实验报告 2

    重庆交通大学信息科学与工程学院综合性设计性实验报告专业: 通信工程专业11级学号:姓名:实验所属课程: 宽带无线接入技术实验室(中心): 软件与通信实验中心指 导 教 师 :2014年3月......

    计算机网络通信技术

    1.计算机网络的定义 计算机网络是把地理上分散的且具有独立功能的多个计算机系统通过通信线路和设备相互连接起来,在相应软件支持下实现的数据通信和资源共享的系统。 2.计算......

    网络通信原理教案

    网络通信原理 1.复习上节课内容: 网络硬件组成:1.服务器2.客户机3.传输介质4.通信连接设备 2.新课 网络软件系统: 网络应用软件:网络媒体播放器(暴风影音,可在线也可看本地视频)......