通信系统综合实验报告 1.docx
《通信系统综合实验报告 1.docx》由会员分享,可在线阅读,更多相关《通信系统综合实验报告 1.docx(44页珍藏版)》请在冰点文库上搜索。
![通信系统综合实验报告 1.docx](https://file1.bingdoc.com/fileroot1/2023-6/2/70939e21-ebf2-494f-b955-6f3d99ce0c33/70939e21-ebf2-494f-b955-6f3d99ce0c331.gif)
通信系统综合实验报告1
实验一数字基带仿真
1.1实验目的
此实验软件主要对蓝牙(Bluetooth)技术中基带信号处理方法作了仿真,包括差错控制方法、跳频扩频原理以及保密通信等。
本实验要求实验人员利用本软件对通信系统特别是无线通信系统的基带信号处理方法有较深入的认识和理解,具体有以下几个目的:
1、理解基带传输中的差错控制方法、差错控制编码分类及其纠检错能力;了解差错控制编码的生成和纠、检错方法;
2、理解扩频通信(特别是跳频扩频通信)的基本概念、原理及其优缺点;
3、理解两种加密体制的异同;了解保密通信的全过程,以及密钥在保密通信中的作用。
1.2实验原理
本实验原理主要包括差错控制原理,调频扩频原理,保密通信原理等。
1.2.1差错控制原理
数字信号在传输过程中,由于受到干扰的影响,码元波形将变坏。
接收端收到后可能发生错误判决。
一般理论中,合理设计基带信号,选择调制解调方式,采用时域、频域均衡,以此来降低比特误码率,但是在实际中,许多通信系统的比特误码率并不能满足实际的需求,因此我们需要进行差错控制。
常用的差错控制方法有检错重发(简称ARQ)、前向纠错(FEC)、混合纠错(HEC)。
通常差错控制编码的实现方法:
在发送端将被传输的信息附上一些监督码元,这些多余的码元与信息码元之间以某种确定的规则相互关联,然后在接收端按照既定的规则校验信息码元与监督码元之间的关系,一旦传输发生错误,则信息码元与监督码元的关系就受到破坏,从而接收端可以发现错误乃至纠正错误。
蓝牙基带包中采用的差错控制编码如下:
1、包头附加循环冗余校验码以保证包头的完整性,该差错控制通常被称为包头检查(HEC)。
HEC的生成示意图如图1-1。
在产生HEC前,线性移位反馈寄存器(LFSR)需要初始化。
为易于理解,初始化值采用设备的高8位地址(UAP)。
输入数据为10位的包头信息(低位先入)。
输出数据为包头信息(10位,低位先出)+HEC(8位,低位先出)。
在接收端,恢复包头信息的示意图与图1-1同。
此时,输入数据为18位的附加HEC的包头数据。
若8位寄存器的结果值全为0,则说明包头信息传输正确;反之,则说明包头信息传输错误,需重传。
图1-1HEC的生成示意图
2、有效载荷校验(采用CRC,cyclicredundancycheck)。
添加到有效载荷中的16位CRC循环冗余校验码,用来判断有效载荷数据传送得是否正确。
该16位码通过CRC-CCITT多项式210041(8进制表示)生成,见图1-2的生成示意图。
在生成CRC码前,采用设备的高8位地址初始化线性反馈移位寄存器。
实验中规定输入数据为80位的有效载荷信息(低位先入)。
输出为有效载荷(80位,低位先出)+CRC码(16位,低位先出)。
在接收端,恢复有效载荷信息的示意图与图1-2同。
此时,输入数据为96位的附加CRC的有效载荷数据。
若16位寄存器的结果值全为0,则说明有效载荷信息传输正确;反之,则说明有效载荷信息传输错误,需重传。
图1-2有效载荷校验码的生成示意图
3、前向纠错(ForwardErrorCorrection,FEC)。
本实验包含两类FEC码:
1/3FEC和2/3FEC。
对包进行FEC纠错的目的是减少重传的次数。
但在可以允许一些错误的情况下,使用FEC会导致效率不必要的减小,因此对于不同的包,是否使用FEC是灵活的。
因为包头包含了重要的链路信息,所以总是用1/3FEC进行保护。
1/3FEC仅仅是使对每个信息位重复三次,见图1-3的1/3FEC码示意图。
图1-31/3FEC码示意图
2/3FEC码则是个缩短的(15,10)汉明码。
该码用于有效载荷数据的纠错控制。
其生成示意图见下页的图1-4。
2/3FEC码能纠正1位错码,且能检出所有2位错码。
图1-42/3FEC码示意图
1.2.2跳频扩频原理
扩频通信技术是广泛运用在公网和专网的一种无线通信技术。
扩频通信主要有直序列扩频和跳频扩频两种,本实验重点研究跳频技术,以具体的蓝牙技术跳频方案为例介绍跳频扩频技术。
直序扩频技术请参见其它资料。
所谓跳频,就是指用一定码序列进行选择的多频率频移键控,也就是说,用扩频码序列去进行频移键控调制,使载波频率不断地跳变。
由于跳频具有抗干扰、抗截获的能力,并能作到频谱资源共享以及可以抗衰落、抗多径、抗网间干扰和提高频谱利用率等而被业界广泛使用。
对于使用79个频道的蓝牙系统,它的工作频段为2400-2483.5MHz,射频信道为2402+kMHz(k=0,1,…,78),每个信道带宽为1MHz。
蓝牙系统一共定义了5种跳频序列。
为易于理解,本实验只介绍其中的3种:
查询状态跳频序列,查询扫描状态跳频序列和连接状态跳频序列。
跳频计算框图见图1-5。
图1-5跳频计算框图
查询和查询扫描状态是联系在一起的。
如果一个蓝牙设备希望发现在其工作范围内有哪些未知地址的设备,就进入查询状态,成为主设备;而一个蓝牙设备允许自己被其它设备发现,就进入查询扫描状态来响应查询消息,成为从设备。
二者的跳频速率都由本地时钟(28比特计数器)决定。
查询状态跳频序列以3200跳/秒的速率进行跳变,而查询扫描跳频序列则以1.28秒/跳的变化率进行跳变。
当查询设备的跳频频率与查询扫描设备的跳频频率发生击中时,从设备就向主设备发送ID包,从而完成链路建立的第一步。
当主、从蓝牙设备进入连接状态,跳频频率都由主设备的地址码和时钟决定。
连接状态的跳频速率为1600跳/秒。
1.2.3保密通信原理
加密系统通常由未加密的报文(即明文)、加密后的报文(即密文)、加密解密设备或算法以及加密解密的密钥组成。
对明文进行加密需要加密密钥;对密文进行解密需要解密密钥。
加密密钥和解密密钥可以相同也可以不同。
信息发送方用加密密钥,通过加密设备或算法,将信息加密后发送出去;接收方在收到密文后,用解密密钥将密文解密,恢复为明文。
如果传输中有人窃取,由于没有解密密钥,他只能得到无法理解的密文,从而对信息起到保密作用。
蓝牙加密技术属于常规密钥密码体制。
所谓常规密钥密码体制,即加密密钥与解密密钥是相同的密码体制。
常规密钥密码体制的保密性取决于对密钥的保密,而算法是公开的。
蓝牙加密算法的示意图如图1-6所示。
图1-6蓝牙加密算法示意图
RSA属于公开密钥密码体制。
公开密钥密码体制使用不同的加密密钥与解密密钥,是一种由已知加密钥推导出解密密钥在计算上是不可行的密码体制。
公开密钥密码体制的示意图如图1-7所示。
图1-7公开密钥密码体制示意图
1.3实验内容
1、蓝牙基带包的差错控制技术
1)包头检查(HEC),用于保证包的完整性;
2)数据有效载荷信息的循环冗余校验;
3)包的前向纠错(FEC)控制。
2、蓝牙系统的跳频原理
1)查询状态的跳频原理;
2)查询扫描状态的跳频原理;
3)连接状态的跳频原理。
3、数据流的加密与解密
1)蓝牙加密技术(常规密钥密码体制的加密与解密);
2)RSA公开密钥密码体制的加密与解密过程。
1.4实验结果及数据分析
1.4.1差错控制
1、包头校验:
(a)不加误码时的校验结果:
图1-8不加入误码时的校验结果
UAP:
99;HEAD:
111-->HEC包头数据为:
100010001011110111
--------------------------------------------------------------------------
信道传输正确或产生不可检错误码!
校验结果(移位寄存器结果值)为:
00000000
==========================================================================
(b)加入误码时的校验结果
信道传输产生误码!
此时接收的包头数据为(LSB->MSB):
100010001011110110
校验结果(移位寄存器结果值)为:
11100101
==========================================================================
结论:
包头校验可以校验出误码但是无法纠错。
2、有效载荷校验:
(a)不加误码时校验结果
图1-9不加入误码时的校验结果
循环冗余校验CRC码(MSB-->LSB):
0111001101010111
附加CRC码的信息比特(MSB-->LSB):
000100010001000100010001000100010001000100010001000100010001000100010001000100010111001101010111
--------------------------------------------------------------------------------
信道传输正确或产生不可检错误码!
此时接收的信息比特为(MSB-->LSB):
011100110101011100010001000100010001000100010001000100010001000100010001000100010001000100010001
校验结果为:
0000000000000000
================================================================================
(b)加入误码时的校验结果
信道传输产生误码!
此时接收的信息比特为(MSB-->LSB):
011100110101011100010001000100010001000100010001000100010001000100010001000100010001000000010001
校验结果为:
1000100110101010
================================================================================
结论:
循环冗余校验CRC码可以校验并纠正一位错码,对于两位错码只能检出但无法纠正。
3、1/3FEC校验
(a)不加误码时校验结果
图1-10不加入误码时的校验结果
编码前的二进制序列为(MSB-->LSB):
0001000100010001000100010001000100010001
经1/3FEC编码后的二进制序列为(MSB-->LSB):
000000000111000000000111000000000111000000000111000000000111000000000111000000000111000000000111000000000111000000000111
--------------------------------------------------------------------------------
信道传输正确!
译码结果为:
0001000100010001000100010001000100010001
================================================================================
(b)加入误码时的校验结果
信道传输产生误码!
此时接收的二进制序列为:
000000000111000000000111000000000111000000000111000000000111000000000111000000000111000000000111000000000111000000000110
译码结果为:
0001000100010001000100010001000100010001
================================================================================
结论:
1/3FEC码可以检验并纠正一位错码,对于两位以上错码只能检出但无法正确译码。
4、2/3FEC校验
(a)不加误码时校验结果
图1-11不加入误码时的校验结果
编码前的二进制信息序列为(MSB-->LSB):
010*******
经2/3FEC编码后的二进制信息序列为(MSB-->LSB):
010*******
--------------------------------------------------------------
信道传输正确或产生不可检错的误码序列!
接收序列为:
010*********
译码结果为:
010*******十六进制结果为:
111
================================================================================
(b)加入误码时的校验结果
信道传输产生1位错码!
可纠错!
该码位于第13位,译码结果为:
010*******十六进制结果为:
111
================================================================================
信道传输产生2位或2位以上错码!
超出2/3FEC码纠错范围,不可纠错!
译码结果为:
010*******
十六进制结果为:
117
================================================================================
结论:
2/3FEC码可以检验并纠正一位错码,对于两位以上错码只能检出但无法正确译码。
1.4.2蓝牙系统的跳频跳频
1、查询状态
查询设备时钟:
ff231;查询接入码:
ee3423;跳频个数:
136
图1-12查询状态扫描结果
调频点分布如下:
426627268743714050
11247758136130602114
7568765928445121052
197342662726874371
40501124775813613060
2114756876592844512
1052197342662726874
3714050112477581361
30602114756876592844
5121052197342662726
874371405011247758
13613060211475687659
2844512105219734266
2726874371
2、查询扫描状态
查询扫描设备时钟:
1111111;查询接入码:
1111111;跳频个数:
111
图1-13查询扫描状态扫描结果
调频点分布如下:
48385436524258405646
6244602180166224
2010268241430122834
50324838543652425840
56466244602180166
224201026824143012
28345032483854365242
584056466244602180
16622420102682414
30122834503248385436
5242584056466244602
18
3、连接状态
主设备时钟:
1111111;主设备地址:
1111111;跳频个数:
111
图1-14连接状态扫描结果
调频点分布如下:
2165401144152458
28624219462326663070
48275231327436785035
5439343387891213
71567560101714217364
77681625202932253427
52655467363338357245
74475613581576537855
602162231613636429
663156977168377039
4041424324926114449
46
4、分析结果
跳频序列具有较强的随机性。
且跳频图案由查询设备时钟、查询扫描设备时钟、查询接入码、主设备时钟、主设备地址等参数的综合选择有关,任一参数改变,跳频图案将会发生变化。
1.4.3加密解密
实验结果截图如下:
图1-15加密解密结果
常规密钥密码体制-蓝牙保密技术:
已加密的数据流:
B2E32D5CDC30B90EA6E620B18F030D9EF8306EB02DDC3395
----------------------------------------------------------------
已解密的数据流:
123132331313131321352552035245236442213454364343
================================================================
公开密钥密码体制-RSA:
因为n的二进制形式为1000100101111,所以将明文的二进制形式以长度为12进行分组
对明文的二进制形式进行分组后,各个分组的十进制形式为(高位-->低位):
8012390806867659157780623543552337159353028913131314274
对各分组分别进行加密算法-->得到各分组的密文十进制形式(高位-->低位):
341735714035142838462494035304729212246256513783407227720601448
-----------------------------------------------------------------------------
对各分组进行解密算法-->得到各分组解密明文的十进制形式(高位-->低位):
8012390806867659157780623543552337159353028913131314274
解密明文的十六进制形式为:
321956326363293629326932163921639212121521522112
=============================================================================
1.5编程实验
在VisualC++环境中,按照上面图1-4中的2/3FEC码生成示意图,试编写2/3FEC编/译码程序,比较程序执行结果与实验所得数据是否相符。
2/3FEC编码流程图1-16:
注:
编程实验代码见《通信系统综合实验程序》部分。
图1-162/3FEC编码流程
1.6思考题
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码进行译码?
答;接收端收到1/3FEC码后(假定已同步),将码元按三个一组进行分组。
如果三个码元一样则无错;若不一致,则判为个数为2的码元。
接收端收到1/3FEC码后能纠正一个错误。
当出现一个错误时,若收到的是(001)、(010)、(100),则译为0;当出现一个错误时,若收到的是(110)、(101)、(011),则译为1;若出现两个时,则无法纠正。
4、三种跳频序列分别有无规律可循?
为什么?
答:
三种跳频序列无规律可循。
基本上,输入为当前地址和本地时钟,地址输入由28位构成,时钟输入由27位构成,根据跳频序列的不同分类,地址输入和时钟输入采取不同的选择方案。
由于输入的随机性变化,决定了输出为在79跳之间变化的一个伪随机序列。
5、公开密钥密码体制的一个重要保证是什么?
答:
公开密钥密码体制中,对每一用户分配一对密钥,其中一个是使用者本人掌握的密钥成为私有密钥,它只用于解密,另一个公开密钥,它只用于加密,两个密钥必须通过算法结成一一对应的关系,只有通过对应的私有密钥才能解开用公开密钥所加的密。
这样我们根本不需要直接传送密钥,因此具有很高的安全性。
所以公开密钥密码体制的一个重要保证是:
公钥与私钥必须匹配,且应该保持密钥的安全。
实验二语音传输
2.1实验目的
本实验软件主要对蓝牙语音编码技术和通信网络中的语音传输过程进行了介绍,做此次实验的主要目的有:
1、理解蓝牙支持的三种语音编码方式的异同;
2、随机错误和突发错误对传输的影响;
3、理解语音传输与数据传输的异同:
ACL和SCO链路;
4、通过实际编程加深对实验原理的理解,提高实践能力。
2.2实验原理
2.2.1脉冲编码调制
PCM是把模拟信号变换为数字信号的一种调制方式,把连续输入的模拟信号变换为在时域和振幅上都离散的量,然后将其转化为二进制码形式传输。
通常PCM分为抽样、量化、编码三个步骤。
抽样过程为
其中
为抽样函数。
语音信号的频率为0.3KHZ–4KHZ,由采样定理可知,采样频率应大于或等于模拟信号最高频率的两倍,故语音信号的采样频率为8KHZ。
量化就是把离散时间的模拟样值信号近似地用有限个数的数值来表示。
量化过程中存在一定的量化误差,量化误差为实际信号与量化信号的差值。
为了便于用数字电路实现,其量化电平数一般为2的整数次幂,有利于采用二进制编码表示。
通常,量化