当前位置:
文档之家› .巴克码的编码设计与仿真兰州理工大学
.巴克码的编码设计与仿真兰州理工大学
巴克序列、M序列等都具有这种性质,常被用作数字通信的群同步码。计算机通信中,同步字符选用(026)8(0010110)群同步码是非周期序列。设一非周期序列由符号ai组成(i=l,2,…,n),ai的取值为±1,非周期序列的长度为n,则非周期序列的自相关函数定义为:
公式2.4.1
这种非周期序列的自相关函数称为局部自相关函数。当j=0时,很显然R(j)=n,
|j |
0
1
2
3
4
5
6
>=7
R(j)
7
0
-1
0
-1
0
-1
0
将所求得的结果画成曲线,就得到7位巴克码的自相关函数曲线。
图2.4.1巴克码的自相关函数曲线
-表1-1 已发现的巴克码组
n
巴克码
2
+ +
3
+ + --
4
+ + + --; + + -- +
5
+ + + -- +
7
+ + + -- -- + --
11
+ + + -- -- -- + -- -- + --
13
+ + + + + -- -- + + -- + -- +
其中,“+”表示取值为高电平1,“一”表示取值为低电平0。依要求及上面的巴克码组可知,13位的巴克码发生器应在输入时钟信号作用下依次产生“1111100110101”的码元序列
当接收端对接收到的比特流进行搜索时,一旦检测到这种特殊字符,就知道了帧的开始,并据此划分帧内的码组。群同步(在这种数据格式中称为帧同步)就这样建立起来了。
2.4.1群同步码
在帧的首部插入特殊字符作为群同步码,它应该与随机的数字序列“很不相像”才行。
如何来选择群同步码呢?根据伪随机码的理论分析表明,这种特殊码必须具有尖锐的自相关函数。
1.2.2基本应用
MATLAB产品族可以用来进行以下各种工作:
●数值分析
●数值和符号计算
●工程与科学绘图
●控制系统的设计与仿真
●数字图像处理技术
●数字信号处理技术
●通讯系统设计与仿真
●财务与金融工程
●管理与调度优化计算(运筹学)
MATLAB的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用MATLAB函数集)扩展了MATLAB环境,以解决这些应用领域内特定类型的问题。
表中“+”表示Xi取值为十l,“-”表示Xi取值为-l,以七位巴克码组{+++--+-}
为例,求出它的自相关函数如下:
同样可以求出j=2,3,4,5,6,7时R(j)的值分别为-l,0,-l,0,-l,O。另外,再求出j为负值的自相关函数,两者一起画出的七位巴克码的R(j)与j的关系曲线如图2.2.1所示。由图可见,自相关函数在j=0时具有尖锐的峰值。
图2.3.2巴克码用于帧同步
2.4
在传送数据的数据通信系统中,接收端为了正确恢复所传消息的内容,必须知道每群码元序列的起止位置。
使接收端字、句、帧信号的起止位置与发送端的字、句、帧信号的起止位置对应起来,即进行相位校准,才能恢复发端的数据。群同步的任务就是完成群的相位校准。
为了实现群同步,要在数据序列中插入特殊的同步码或同步字符。
巴克码主要用于通信系统中的帧同步,其特点是具有尖锐的自相关函数,便于与随机的数字信息相区别,易于识别,出现伪同步的可能性小。巴克码是一种具有特殊规律的二进制码组,它是一种非周期序列。
关键词:MATLAB;巴克码;设计与仿真
前言
在通信系统中,同步技术起着相当重要的作用。通信系统能否有效地、可靠地工作,很大程度上依赖于有无良好的同步系统。通信系统中的同步可分为载波同步、位同步、帧同步等几大类。当采用同步解调或相干检测时,接收端需要提供一个与发射端调制载波同频同相的相干载波,获得此相干载波的过程称为载波提取,或称为载波同步。而在数字通信中,消息是一串连续的信号码元序列,解调时常须知道每个码元的起止时刻。因此,就要求接收端必须能产生一个用作定时的脉冲序列,以便与接收的每一个码元的起止时刻一一对齐。在接收端产生与接收码元的重复频率和相位一致的定时脉冲序列的过程称为码元同步或位同步。数字通信中的消息数字流总是用若干码元组成一个“字”,又用若干“字”组成一“句”。因此,在接收这些数字流时,同样也必须知道这些“字”、“句”的起止时刻,在接收端产生与“字”、“句”起止时刻相一致的定时脉冲序列,统称为群同步或帧同步。当通信是在两点之间进行时,完成了载波同步、位同步和帧同步之后,接收端不仅获得了相干载波,而且通信双方的时标关系也解决了,这时,接收端就能以较低的错误概率恢复出数字信息。在数字通信系统中,实现帧同步的方法通常有两种:起止式同步法和集中式插入同步法。起止式同步比较简单,一般是在数据码元的开始和结束位置加入特定的起始和停止脉冲来表示数据帧的开始和结束。另外在计算机RS232串口通信中通常也使用类似方法。而在集中式插入同步法中,要求插入的同步码在接收端进行同步识别时出现伪同步的概率尽可能小,并且要求该码组具有尖锐的自相关函数以便于识别。同时接收机端的同码识别器要尽量简单。目前用得比较广泛的是性能良好的巴克(Barker)码。
巴克码是一种具有特殊规律的二进制码组。它是一个非周期序列,一个n位的巴克码{X1,X2,X3,···Xn。),每个码元只可能取值十1或一1,它的局部自相关函数为:目前已找到的只有7个:
n巴克码组
2++
3++-
4+++-,++-+
5+++-+
7+++--+-
11+++---+--+-
13+++++--++-+-+
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。
*******************
实践教学
*******************
兰州理工大学
计算机与通信学院
2012年春季学期
计算机通信与网络课程设计
题 目:差错控制编码的编译码设计与仿真
专业班级:通信一班
姓 名:
学 号:********
**************
成 绩:
摘要
本课程设计主要是利用设计一个七位MATLAB设计仿真13位巴克码(X1111100110101)代码的差错控制编码,当识别到一组代码时,输出一个高电平脉冲。
通常称它为自相关函数的主峰。当1≤j≤n-1时,|R(j)|称为自相关函数的其他取值,在这些取值中一般都有副峰。
希望群同步码具有尖锐的自相关函数,也就是希望它的主峰与其他取值中的副峰之比越大越好,特别是靠近主峰的副峰应尽量小。
由此我们可以定义巴克码序列:
如果一个n长序列的自相关函数取值为
公式2.4.2
2.1.1检测图框
2.图框
2.1.2产生图框
3.思路
检测:本实验通过7位移位寄存器来实现对串行输入数据的存储。然后通过比较是不是巴克码,然后实现判断。产生:通过对7位移位寄存器的数据的循环输出即可实现巴克码的产生功能。移位寄存器存储巴克码数据。
4.状态转移图
状态转移图2.1.3
2.2
帧同步的概念比较简单,但又十分重要,在一般的移动通信系统中采用集中插入同步法,集中插入方式的帧同步码,要求在接收端进行同步识别时出现伪同步的可能性尽量小,并要求此码组具有尖锐的自相关函数,以便识别。另外,识别器也要尽量简单,目前用得最广泛的是性能良好的“巴克码”(Barker)。
MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
1.2 MATLAB
MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
1.2.1基本功能
MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
公式2.4.2
以7位巴克码位列:计算n=7的巴克码序列1110010的自相关函数R(j),ai的则取值为+1或-1,分别对应码元“1”或“0”。
当j=0时,R(0)表示原序列逐位自乘后相加,即R(0)=a1a1+ a2a2+ a3a3+ a4a4+ a5a5+ a6a6+ a7a7= 7