第 16 卷 第 1 期
2009 年 2 月
兰州工业高等专科学校学报
Journal of Lanzhou Polytechnic College
Vol. 16 ,No. 1
Sum. ,2009
文章编号 :1009 - 2269 (2009) 01 - 0015 - 04
3
基于 Matlab 的 Gold 码序列的仿真与实现
严三国
(成都电子机械高等专科学校 机械系 ,成都 610031)
摘要 : Gold 码是一种伪随机序列 ,由于其可供使用的伪随机序列数量较多 ,多用于多址通信中.
本文介绍了 Gold 码的构造方法 ,并利用 Matlab 中的 Simulink 仿真系统进行仿真分析 ,仿真结果
证明了该方法的正确性和可行性. 并对 Gold 码序列的自相关函数值和同族内的互相关函数值进
行了仿真计算.
关 键 词 : Gold 码 ;Matlab ;仿真 ;相关系数
中图分类号 : TN 911
文献标识码 : A
Gold 码是通过 m 序列进行构造的 ,码序列具
有较高的复杂程度 ,具有优良的自相关与互相关
特性 ,且随着级数的增加 ,其序列数目有较大的增
加 ,因此广泛应用于多址通信系统中.
1 m 序列的产生
m 序列又称最长线性移位寄存器序列[1 ] , 是
通过线性移位寄存器和反馈网络产生的. m 序列
是线性反馈移位寄存器产生的最长周期序列. 图 1
表示一个二进制 n 级线性反馈移位寄存器[2 ,3 ] , 可
产生周期序列. 其周期用 p 表示 , 而且 p ≤2 n - 1 ,
当 p = 2 n - 1 ,这个序列是 n 级最长周期线性移位
寄存器序列 ,也就是要产生的 m 序列.
{ an} ,可用其序列多项式 G( x) 表示[2 ] .
G( x) = a0 + a1 x + a2 x2 + …+ an x n = ∑
ai x i (1)
n
i = 0
该式又称为序列生成多项式 ,序列{ an} 与 G( x)
是一一对应的[2 ] . 式中 ai ( i = 0 , 1 , 2 , …, n) 取 0 或
1 值. 符号 x i 表示序列元素的位置. 因此 , 只要知
道了 G( x) ,就可以求出序列{ an} . 而对于反馈移位
寄存器所产生的序列 , 取决于其反馈系数 ci , 对于
反馈移位寄存器 , 其反馈逻辑可用 (2) 式表示 , 也
就是序列的特征多项式[2 ] . 反馈 ci 系数一旦确定 ,
所产生的序列就确定了. 因为 G( x) =
1
f ( x)
, 只是
当移位寄存器的初始状态不同时 , 所产生的周期
序列的初相不同 ,也就是观察的初始值不同 , 是同
一周期序列.
f ( x) = c0 + c1 x + c2 x2 + …+ cn x n = ∑
ci x i (2)
n
i = 0
图 1 n 级线性反馈移位寄存器
2 Gold 码序列的产生及特性
在图 1 中 a0 , a1 , …, an - 1 为移位寄存器的状
态. c0 , c1 , …, cn 为对应级数移位寄存器的反馈系
数 ,其含义是 ,当 ci = 0 时 , 反馈断开 ; ci = 1 时 , 反
馈存在. 而 c0 = cn = 1 为恒定值. 对于一个序列
随着级数 n 的增加 , Gold 码序列的数量远超
过同级数的 m 序列的数量[3 ] ,且 Gold 码序列具有
良好的自相关特性和互相关特性 , 得到了广泛的
应用. 产生 Gold 码序列的结构形式有两种 , 一种
收稿日期 :2008 - 08 - 07
作者简介 :严三国 (1965 - ) ,男 ,四川万源人 ,高级工程师.
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
·61·
兰 州 工 业 高 等 专 科 学 校 学 报 第 16 卷
是将两个 m 序列发生器串联成级数为 2 n 的线性
移位寄存器 ,另一种是将两个 n 级 m 序列发生器
并联[3 ] . 其结构如图 2 和图 3 所示[4 ] .
利用 Matlab 编程环境求解本原多项式 ,其运
行结果如表 1 所示. 选择 n = 7 ,采用 7 级移位寄存
器 ,产生的序列周期是 127 , 其程序如下所示.
图 2 并联结构
图 3 串联结构
Gold 码序列的特性 :
1) 平衡性 : Gold 码序列分为平衡码和非平衡
码. 当 n 为奇数时 , 平衡码数量占 50 % , 非平衡码
数量占 50 %. 当 n 为偶数 , 但不能被 4 整除时 , 平
衡码占 75 % ,非平衡码占 25 %[2 ] .
2) 自相关特性 : Gold 证明了 Gold 码序列的自
相关函数的所有非最高峰的取值是三值[5 ] . 其自
相关函数值所有非最高峰取值 R 如下 (3) 式[5 ] . 其
中 p = 2 n - 1 ,为 Gold 码序列的周期.
R =
-
-
1
p
t
p
t - 2
p
(3)
n = 7 ;
x = gfp rimf d ( n ,‘all’)
表 1 n = 7 时的本原多项式
序号 本原多项式 八进制数 序号 本原多项式 八进制数
1 1 1 0 0 0 0 0 1
2 1 0 0 1 0 0 0 1
3 1 1 1 1 0 0 0 1
4 1 0 0 0 1 0 0 1
5 1 0 1 1 1 0 0 1
6 1 1 1 0 0 1 0 1
7 1 1 0 1 0 1 0 1
8 1 0 0 1 1 1 0 1
9 1 1 1 1 1 1 0 1
301
221
361
211 #
271
345 #
325 #
235 #
375
10 1 0 0 0 0 0 1 1
11 1 1 0 1 0 0 1 1
12 1 1 0 0 1 0 1 1
13 1 0 1 0 1 0 1 1
14 1 0 1 0 0 1 1 1
15 1 1 1 1 0 1 1 1
16 1 0 0 0 1 1 1 1
17 1 1 1 0 1 1 1 1
18 1 0 1 1 1 1 1 1
203 #
323
313 #
253
247
367 #
217 #
357
277 #
上面的多项式中 ,仅有 9 个是独立的. 因为第一行
和第十行 ,第二行和四行 ,第三行和第十六行 ,第
五行和第八行 ,第六行和第十四行 ,第七行和第十
三行 ,第九行和第十八行 ,第十一行和第十二行 ,
第十五行和第十七行是两两对称的. 用八进制数
表示 时 , 所 选择 的本 原多 项式为 211 、217 、235 、
367 、277 、325 、203 、313 和 345 共 9 条. 在这 9 条本
原多项式中 ,选择一个基准本原多项式 ,再按要求
选择另一本原多项式与之配对 ,构成 m 序列优选
对.
3. 2 利用 Simulink 构建反馈移位寄存器
在位移 k = 0 , R 取得最高峰 ,即 R = 1 ,此时同
m 序列一样 , 具有尖锐的自相关峰值. 因此 Gold
码序列应具有四个值的自相关函数值. 式 ( 3) 中 t
的取值是 ,当 n 为奇数时 , t = 2
2 + 1. 当 n 为偶数 ,
且不是 4 的整倍数时 , t = 2
n + 1
2 + 1 .
n + 1
3) 互相关特性 : Gold 码序列具有较好的互相
关特性 , Gold 码序列的互相关函数值的最大值不
超过其 m 序列优选对的互相关值. Gold 码也具有
三值互相关函数值 ,其取值同 (3) 式. 当 n 为奇数
时 ,序列族中约有 50 %的码序列的互相关函数值
为 - 1/ p ;而 n 为偶数时 , 有 75 %的码序列的互相
关函数值为 - 1/ p[3 ] .
3 Gold 码序列的 Matlab 仿真
3. 1 产生本原多项式
图 4 Gold 码序列仿真图
根据产生 Gold 码序列的方法 ,从上述本原多
项式中选择一对 m 序列优选对 ,以 211 作为基准
本原多项式 ,217 作为配对本原多项式[ 3 ] ,通过并
联结构形式来产生 Gold 码序列[ 6 ] . 其仿真结构如
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
第 1 期 严三国 :基于 Matlab 的 Gold 码序列的仿真与实现
·71·
图 4. 两 m 序列移位寄存器的初始状态都选择为
(1000000) . 通过仿真生成 Gold 码波形图如图 5 ,
其周期是 127. 产生的 Gold 码序列频谱仿真分析
图如图 6 所示.
数据进行仿真计算 ,并绘出自相关函数值的曲线
图 ,如图 7 所示. Gold63 模块的数据保存类型应设
置成 st ruct ure (结构型) ,以便仿真计算自相关函
数值时 ,自动读取所生成的 Gold 码序列的值.
其仿真程序如下 :
clear
open goldma1. mdl ; %打开 Simulink 构建的
Gold 码文件 sim (‘goldma1. mdl’) ; %进行仿真
f = [ Gold63. signals. values ] ; %读 取 Gold
码数据
a = f’ ; b = a; N b = lengt h ( b) ;
N = 140 ; for k = 1 : N
c = xor ( a , b) ; D = sum ( c) ; A = N b - D ;
图 5 Gold 码序列波形图
Gold 码波形图是通过提取仿真图中 Scope 模
块中的数据 ,利用 Matlab 编程绘出的. Scope 的数
据格式应设成 St ruct ure wit h time 方式.
clear
open goldma1. mdl ;
sim (‘goldma1. mdl’) ;
t = ScopeData. time ;
plot (k ,R ,’g’) ; %绘图
grid ;
signal = ScopeData. signals ;
wave = signal. values ;
plot (t ,wave) ;axis ( [ 0 ,200 ,0 ,1. 4 ]) ;
图 6 Gold 码频谱分析图
3. 3 用 Matlab 仿真 Gold 码序列的自相关函数值
利用 Matlab 进行编程计算 Gold 码序列的自
相关函数值 ,在编程时直接读取 Gold63 模块中的
图 7 Gold 码序列自相关系数仿真图
R ( k) = ( A - D) / ( A + D) ; %计算相关系数
b = [ b( N b) , b(1 : ( N b - 1) ) ] ;
end
k = 0 : ( N - 1) ;
plot ( k , R ,‘ro’) ; %绘图
hold on
通过上述方法产生的 Gold 码序列的周期是
127. 从图 7 中可以看出 , Gold 码序列自相关函数
值的所有非最高峰的取值是三值. 其自相关函数
值 R ,在位移 k = 0 时 , 取得最高峰值 , 即 R = 1. 与
m 序列相同 ,具有尖锐的自相关峰. 0 < k < 127 时 ,
相关 峰值 较小 , 其值 为 0. 118 、- 0. 008 和 - 0.
134. 根据 Gold 码序列自相关函数值 (3) 式 ,计算
其自相关函数值如下.
n = 7 , t = = 2
n + 1
2 + 1 = 24 + 1 = 17 , 周期 p = 27
- 1 = 127
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
·81·
兰 州 工 业 高 等 专 科 学 校 学 报 第 16 卷
R =
-
1
p
-
t
p
t - 2
p
= -
= -
1
127
17
127
17 - 2
127
=
= - 0. 00787
- 0. 1338
= 0. 01181
自相关函数值的仿真结果与理论分析计算相
一致.
3. 4 同族 Gold 码序列的互相关函数值的仿真
保持基准移位寄存器产生的 m 序列不变 ,通
过移位配对 m 序列 ,再同基准 m 序列模 2 和 ,就可
以产生同族 Gold 码序列. 在图 4 中 211 移位寄存
器的初值仍为 (1000000) ,通过改变 217 移位寄存
器的初始状态 ,也就是对 217 移位寄存器产生的
m 序列进行移位. 在仿真中 217 移位寄存器的初
始状态设为 10000001 ,建立第二个仿真模型 , 用
Gold633 模快来存放新产生的 Gold 码序列. 仿真
结果如图 8 所示.
图 8 Gold 码序列互相关系数仿真图
其仿真程序与自相关仿真不同部分如下.
clear
open goldma1. mdl ;
sim (‘goldma1. mdl’) ;
open goldma2. mdl ; %打开移位后的文件
sim (‘goldma2. mdl’) ;
f = [ Gold63. signals. values ] ; %读 取 Gold
码数据
a = f ’;
g = Gold633. signals. values ; %读取移位的
Gold 码数据
b = g’;
从图 8 中可以看出 , Gold 码序列的互相关函
数值具有三值特性. 三值是 - 0. 008 , - 0. 134 和
0. 118. 按照 (3) 式进行计算其三是 , - 0. 00787 、-
0. 1338 和 0. 01181.
仿真结果与理论计算一致. 其互相关函数值
很小 , Gold 码序列具有良好的互相关特性.
4 结语
利用本文给出的相关函数值计算及绘图程
序 ,略加修改 ,可用于研究不相同族 Gold 码序列
的互相关特性.
参考文献 :
[ 1 ] 王 昆 ,陈昕志. m 序列产生和性能的 Matlab 仿真
[J ]. 水利电力机械 ,2007 ,29 (12) :170
171.
[ 2 ] 何世彪 ,谭晓衡. 扩频技术及其实现 [ M ]. 西安 :西安
电子科技大学出版社 ,2007.
[ 3 ] 查光明 ,熊贤祚. 扩频通信[ M ]. 西安 :西安电子科技
大学出版社 ,1990.
[4 ] 周慧琴. 扩频通信系统中伪随机序列的研究[J ]. 信息
通信 ,2008 ,21 (2) :12
14.
[5 ] 仇佩亮 ,陈惠芳 ,谢 磊. 数字通信基础[ M ]. 北京 :电
子工业出版社 ,2007.
Gold Sequence Simulation and Implementation Based on Matlab
YAN San - guo
( The Department of Mechanical Engineering , Chengdu Electromechanical College , Chengdu 610031 , China)
Abstract : Gold sequence is a p seudo - rando m sequence , and it has greater number of sequence which can
be used in multiple - access communication system. This paper int roduces Gold sequence co nst ruction
met hod , and it has been p roduced and simulated by Simulink of Matlab. The simulation result s show t he
correct ness and feasibilit y of t his met hod. Auto - correlation f unction and cro ss - correlation f unction in
t he same Gold family have been simulated.
Key words :gold sequence ; Matlab ; simulation ; correlation factor
© 1994-2009 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net