西安电子科技大学通信系统实验实验报告文档格式.docx
《西安电子科技大学通信系统实验实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《西安电子科技大学通信系统实验实验报告文档格式.docx(45页珍藏版)》请在冰豆网上搜索。
b.接收端按照既定的规则校验信息码元与监督码元之间的关系,一旦传输发生差错,则信息码元与监督码元的关系就受到破坏,从而接收端可以发现错误乃至纠正错误。
蓝牙基带包中采用的差错控制编码。
a.包头附加循环冗余校验码以保证包头的完整性,该差错控制通常被称为包头检查(HEC);
b.有效载荷中附加16比特的循环冗余校验码(由CRC-CCITT多项式210041(8进制表示)生成);
c.基带包附加CRC码后,一般还应进行前向纠错控制(FEC)。
包头检查(HEC,headererrorcorrection)
HEC的生成示意图见图4-1。
在产生HEC前,线性移位反馈寄存器(LFSR)需要初始化。
为易于理解,初始化值采用设备的高8位地址(UAP)。
输入数据为10位的包头信息(低位先入)。
输出数据为包头信息(10位,低位先出)+HEC(8位,低位先出)。
图1-1 HEC的生成示意图
在接收端,恢复包头信息的示意图与图1同。
此时,输入数据为18位的附加HEC的包头数据。
若8位寄存器的结果值全为0,则说明包头信息传输正确;
反之,则说明包头信息传输错误,需重传。
有效载荷校验(采用CRC,Cyclicredundancycheck)
添加到有效载荷中的16位CRC循环冗余校验码,用来判断有效载荷数据传送得是否正确。
该16位码通过CRC-CCITT多项式210041(8进制表示)生成,见图4-2的生成示意图。
在生成CRC码前,采用设备的高8位地址初始化线性反馈移位寄存器。
实验中规定输入数据为80位的有效载荷信息(低位先入)。
输出为有效载荷(80位,低位先出)+CRC码(16位,低位先出)。
图1-2 有效载荷校验码的生成示意图
在接收端,恢复有效载荷信息的示意图与图2同。
此时,输入数据为96位的附加CRC的有效载荷数据。
若16位寄存器的结果值全为0,则说明有效载荷信息传输正确;
反之,则说明有效载荷信息传输错误,需重传。
前向纠错(FEC,ForwardErrorCorrection)
本实验包含两类FEC码:
1/3FEC和2/3FEC。
对包进行FEC纠错的目的是减少重传的次数。
但在可以允许一些错误的情况下,使用FEC会导致效率不必要的减小,因此对于不同的包,是否使用FEC是灵活的。
因为包头包含了重要的链路信息,所以总是用1/3FEC进行保护。
1/3FEC仅仅是使对每个信息位重复三次,见图4-3的1/3FEC码示意图。
图1-3 1/3FEC码示意图
2/3FEC码则是个缩短的(15,10)汉明码。
该码用于有效载荷数据的纠错控制。
其生成示意图见下页的图4-4。
图1-4 2/3FEC码的生成示意图
2/3FEC码能纠正1位错码,且能检出所有2位错码。
(2)跳频扩频原理:
跳频图案的生成;
跳频通信方法。
什么是跳频扩频?
a.扩频通信技术是广泛运用在公网和专网的一种无线通信技术。
扩频通信主要有直序列扩频和跳频扩频两种,本实验重点研究跳频技术,以具体的蓝牙技术跳频方案为例介绍跳频扩频技术。
直序扩频技术请参见其它资料。
b.所谓跳频,就是指用一定码序列进行选择的多频率频移键控。
也就是说,用扩频码序列去进行频移键控调制,使载波频率不断地跳变。
跳频通信的优点
a.具有抗干扰、抗截获的能力,并能作到频谱资源共享;
b.可以抗衰落、抗多径、抗网间干扰和提高频谱利用率。
蓝牙系统中的跳频方案
对于使用79个频道的蓝牙系统,它的工作频段为2400-2483.5MHz,射频信道为2402+kMHz(k=0,1,…,78),每个信道带宽为1MHz。
蓝牙系统一共定义了5种跳频序列。
为易于理解,本实验只介绍其中的3种:
查询状态跳频序列,查询扫描状态跳频序列和连接状态跳频序列。
跳频计算框图见图4-5。
图1-5 跳频计算框图
查询和查询扫描状态是联系在一起的。
如果一个蓝牙设备希望发现在其工作范围内有哪些未知地址的设备,就进入查询状态,成为主设备;
而一个蓝牙设备允许自己被其它设备发现,就进入查询扫描状态来响应查询消息,成为从设备。
二者的跳频速率都由本地时钟(28比特计数器)决定。
查询状态跳频序列以3200跳/秒的速率进行跳变,而查询扫描跳频序列则以1.28秒/跳的变化率进行跳变。
当查询设备的跳频频率与查询扫描设备的跳频频率发生击中时,从设备就向主设备发送ID包,从而完成链路建立的第一步。
当主、从蓝牙设备进入连接状态,跳频频率都由主设备的地址码和时钟决定。
连接状态的跳频速率为1600跳/秒。
(3)保密通信原理:
加密系统的组成部分;
密钥的作用;
常规密钥密码体制和公开密钥密码体制。
加密系统的组成部分
1)未加密的报文,也即明文。
2)加密后的报文,也即密文。
3)加密解密设备或算法。
4)加密解密的密钥。
密钥的作用
对明文进行加密需要加密密钥;
对密文进行解密需要解密密钥。
加密密钥和解密密钥可以相同也可以不同。
信息发送方用加密密钥,通过加密设备或算法,将信息加密后发送出去;
接收方在收到密文后,用解密密钥将密文解密,恢复为明文。
如果传输中有人窃取,由于没有解密密钥,他只能得到无法理解的密文,从而对信息起到保密作用。
蓝牙加密技术
蓝牙加密技术属于常规密钥密码体制。
所谓常规密钥密码体制,即加密密钥与解密密钥
是相同的密码体制。
常规密钥密码体制的保密性取决于对密钥的保密,而算法是公开的。
蓝牙加密算法的示意图如图4-6所示。
图1-6 蓝牙加密算法示意图
RSA
RSA属于公开密钥密码体制。
公开密钥密码体制使用不同的加密密钥与解密密钥,是一种由已知加密密钥推导出解密密钥在计算上是不可行的密码体制。
公开密钥密码体制的示意图如图4-7所示。
图1-7 公开密钥密码体制示意图
1.3实验内容及结果分析
1.蓝牙基带包的差错控制技术
(1)记录包头校验FEC
无误码:
如图所示,UAP:
0x56;
HEAD:
0x128
图1-8 无误码的差错控制编码的生成示意图
如图所示,HEC包头数据为:
000101001000001000
图1-9 无误码的差错控制编码的传输示意图
信道传输正确或产生不可检错误码!
校验结果(移位寄存器结果值)为:
00000000
有误码:
0x128;
HEC包头数据为:
0001010011000001000
图1-10 有误码的差错控制编码示意图
信道传输产生误码!
此时接收的包头数据为(LSB->
MSB):
111110001111001110
11010000
结论:
包头校验可以校验出误码但是无法纠错。
(2)有效载荷校验CRC
图1-11 无误码CRC编码示意图
循环冗余校验CRC码(MSB-->
LSB):
0001101110000001
附加CRC码的信息比特(MSB-->
0001000000000000000100000000000011111111000000001111111100000000
00000000000000001011101100111000
此时接收的信息比特为(MSB-->
0001000000000000000100000000000011111111000000001111111100000000
校验结果为:
0000000000000000
1011101100111100
图1-12 有误码的CRC编码示意图
0001101110000001000100000000000000010000000000001111111100000000
000000000000000000000000
1101010000100000
循环冗余校验CRC码可以校验并纠正一位错码,对于两位错码只能检出但无法纠正。
(3)1/3FEC
无误码:
图1-13 无误码的1/3FEC编码示意图
编码前的二进制序列为(MSB-->
LSB):
000100000001000111101110
0000000001000100
经1/3FEC编码后的二进制序列为(MSB-->
000000000111000000000000000000000111000000000111111111111000111111111000
000000000000000000000000000111000000000111000000
图1-14 无误码的1/3FEC编码示意图2
信道传输正确!
译码结果为:
有误码:
图1-15 有误码的1/3FEC编码示意图
此时接收的二进制序列为:
000000000000011000000000000111000000000111000000
0000100001000100
结论:
1/3FEC码可以检验并纠正一位错码,对于两位以上错码只能检出但无法正确译码。
(4)2/3FEC
图1-16 无误码的2/3FEC编码示意图
编码前的二进制信息序列为(MSB-->
1001011111
经2/3FEC编码后的二进制信息序列为(MSB-->
100001001011111
图1-17 无误码的2/3FEC编码示意图二
信道传输正确或产生不可检错的误码序列!
接收序列为:
100001001011111
1001011111十六进制结果为:
25F
0000011111
0100000000111111
图1-18 有一位误码的2/3FEC编码示意图
信道传输产生1位错码!
可纠错!
该码位于第13位,译码结果为:
1001011111十六进制结果为:
图1-19 有2位或2位以上误码的1/3FEC编码示意图
信道传输产生2位或2位以上错码!
不可纠错!
1001111011十六进制结果为:
27B
2/3FEC码可以检验并纠正一位错码,对于两位以上错码只能检出但无法正确译码。
2蓝牙系统的跳频原理
软件界面如下:
图1-20查询状态第一页
a)查询状态
查询设备时钟:
5555555
查询接入码:
1111111
跳频个数:
100
2225414201733102676
138246851430294512
60213921872901664
16222541420173310
267613824685143029
45126021392187290
16641622254142017
331026761382468514
3029451260213921872
901664162225414
图1-21查询状态第二页
图1-22查询扫描状态第一页
图1-23查询扫描状态第二页
b)
查询扫描状态
查询扫描设备时钟:
5242584056466244602
1801662242010268
24143012283450324838
54365242584056466244
6021801662242010
2682414301228345032
48385436524258405646
6244602180166224
2010268241430122834
50324838543652425840
图1-24连接状态第一页
图1-25连接状态第二页
c)连接状态下
主设备时钟:
主设备地址:
2626788912257156
757216132029060476
4219463526663035023
5439347038740174433
2464281482152373268
3651011142728133029
52475463361538314041
4257249262548435059
32113427765378696021
623755577168237039
分析结果:
跳频序列具有较强的随机性。
且跳频图案由查询设备时钟、查询扫描设备时钟、查询接入码、主设备时钟、主设备地址等参数的综合选择有关,任一参数改变,跳频图案将会发生变化。
(3)数据流的加密与解密
图1-26数据流的加密解密和RSA示意图
加密与解密:
常规密钥密码体制——蓝牙保密技术:
已加密的数据流:
C1943D1A44B791D9C6124076FED84BD5EF40361CA367D657
已解密的数据流:
000000001111111100001111FFFFFFFF0000000000001111
公开密钥密码体制——RSA:
因为n的二进制形式为1110000011,所以将明文的二进制形式以长度为9进行分组
对明文的二进制形式进行分组后,各个分组的十进制形式为(高位-->
低位):
2733468136006351151151151138400000
对各分组分别进行加密算法-->
得到各分组的密文十进制形式(高位-->
191352243487004978989898989000000
对各分组进行解密算法-->
得到各分组解密明文的十进制形式(高位-->
解密明文的十六进制形式为:
000000000111111111000000FFFFFFFFFFF0000000000000
(4)编程实验
在VisualC++环境中,按照幻灯片中图1-4 2/3FEC码的生成示意图,试
编写2/3FEC编/译码程序。
程序执行结果与实验所得数据是否相符
2/3FEC编码流程图1-9:
读入数据
输出结果
判断数据合法性
输入待编数据
警告
输出译码
根据监督矩阵和信息位的关系:
求监督位
图1-252/3FEC编码流程
1.4思考题
1.接收端收到1/3FEC码后如何进行纠错?
接收端收到1/3FEC码后(假定已同步),将码元按三个一组进行分组。
如果三个码元一样则
无错;
若不一致,则判为个数为2的码元。
接收端收到1/3FEC码后能纠正一个错误。
当出现一个错误时,若收到的是(001)、(010)、(100),则译为0;
当出现一个错误时,若收到的是(110)、(101)、(011),则译为1;
若出现两个时,则无法纠正。
2.包头的两种差错控制1/3FEC和HEC,他们的先后顺序如何?
为什么?
应先进行HEC,再做1/3FEC,这样可减少运算量。
对包进行HEC纠错的目的是减少重传的次数。
但在可以允许一些错误的情况下,使用FEC会导致效率不必要的减少,因此对于不同的包,是否使用FEC是灵活的。
因为包头包含了重要的链路信息,所以总是用1/3FEC进行保护。
1/3FEC仅仅是对每个信息位重复三次。
3.在接收端如何对1/3FEC码进行译码?
如果三个码元一样则无错;
4.三种跳频序列分别有无规律可循?
三种跳频序列无规律可循。
下图为跳频序列产生的原理图,基本上,输入为当前地址和本地时钟,地址输入由28位构成,时钟输入由27位构成,根据跳频序列的不同分类,地址输入和时钟输入采取不同的选择方案。
由于输入的随机性变化,决定了输出为在79跳之间变化的一个伪随机序列。
5.公开密钥密码体制的一个重要保证是什么?
公开密钥密码体制中,对每一用户分配一对密钥,其中一个是使用者本人掌握的密钥成为私有密钥,它只用于解密,另一个公开密钥,它只用于加密,两个密钥必须通过算法结成一一对应的关系,只有通过对应的私有密钥才能解开用公开密钥所加的密。
这样我们根本不需要直接传送密钥,因此具有很高的安全性。
所以公开密钥密码体制的一个重要保证是:
公钥与私钥必须匹配,且应该保持密钥的安全。
实验二、通信传输的有效性与可靠性分析
2.1实验目的
(1)理解点对点数据传输中的流量控制,差错控制的方法。
(2)结合实验原理分析无误码情况下速率测试的结果;
加上误码之后,在通信的可靠性和有
效性之间做出折衷。
(3)理解多点共享信道的常用技术和它们的性能。
2.2实验原理
(1)数据传输的流量控制
a)停止等待协议
DATA
ACK
图2-1停止等待协议中数据帧和应答帧的时序
tT
正确传输一个数据帧平均所需时间为
每秒成功发送的最大帧数就是链路的最大吞吐量λmax,λmax=1/tav。
b)连续ARQ协议
1
2
3
4
5
图2-2连续ARQ时序
重传
送主机
丢弃
连续ARQ协议一方面因连续发送数据帧而提高了效率,但另一方面,在重传时又必须把原来正确传过的数据帧进行重传(仅因为这些数据帧前有一个帧出错),这种做法又使传送效率降低。
因此,若传输信道的传输质量很差时,连续ARQ并不优于停止等待协议。
c)信道利用率和最佳帧长
信道利用率和最佳帧长的关系如下:
数据帧取得很短,控制信息占的比例增大,导致信道利用率下降,如果帧长取得太长,数据帧在传输过程中出错的概率就增大,于是重传的次数就增大,这也会使信道利用率下降。
所以,存在一个最佳帧长,在此帧长下信道利用率最高。
对于陆地链路,取往返时延=100ms。
链路容量为4.8Kb/s和48Kb/s两种数值。
对于卫星链路,取往返时延=700ms。
设每帧中信息长度为=48bit,误比特率=0.00001。
可以求出在这种信道下,最佳帧长大体在1000-2000bit之间。
(2)误码和差错控制
●检错重发ARQ
a)需要通信两端具有双向信道。
编译码器比较简单,纠错能力较强。
但实时性较差。
b)本实验中使用CRC-16
●前向纠错FEC
a)不需要反向信道,也不需要有反复重发引起的延误时间,故实时性较好。
但设备较复杂。
b)本实验中使用(32,24)的线性分组码改自(31,26),监督字节中第三位无意义,高五位能够纠正32个位置的单比特错误。
编码效率为1-r/n=3/4
(3)信道共享技术
在实际工作中,经常会遇到有多个用户要同时和一个主机相连。
分布式共享信道的方式称为多址接入的方式。
最简单的多址接入的方式是复用,例如无线通信中的频分复用和时分