Ri(?) 1.46 1.46 2.90 2.93 2.73 2.71 0.73 0.73 0.80 0.80 0.80 0.81 0.68 0.68 0.59 0.60 0.59 0.59 1.00 1.00 0.99 1.00 1.00 1.00 Rij(?) Riii(?) Riij(?) Rijj(?) Rijm(?) 表4.5 N=511 Gold码相关旁瓣统计
单位:N
相关函数 最大旁瓣值(平绝对值的平均值 绝对值的均方根 均方根 均值) Ri(?) 1.51 1.51 2.46 2.46 2.35 2.35 0.75 0.75 0.81 0.81 0.81 0.80 0.66 0.66 0.58 0.58 0.59 0.59 1.00 0.99 1.00 1.00 1.00 1.00 Rij(?) Riii(?) Riij(?) Rijj(?) Rijm(?) 表4.6 N=127 Gold码相关旁瓣统计
由表4.4, 表4.5, 表4.6 可见Gold码的各种相关函数的旁瓣特性接近一致,数量级均为
N,与码长基本无关;最大旁瓣值在1?1~3?N 范围,而均方根值等于N。
4.5 平衡Gold码
早在50年代,哈尔凯维奇就从理论上证明:要克服多径衰落干扰的影响,信道中传输的最佳信号形式应该是具有白噪声统计特性的信号形式。扩频函数(伪码)逼近白噪声的统
26
计特性,因而扩频通信具有抗多径干扰的能力。香农也指出:在高斯噪声的干扰下,有限平均功率的信道上,实现有效和可靠通信的最佳信号是具有白噪声统汁特性的信号。而白噪声统计特性中的一个重要特性就是平衡特性。
Gold序列具有序列多、相关值低等特点,但其平衡性不一致。R.Gold的研究认为,Gold序列的平衡性有三种,即Gold序列有三种0,1分布情况:一种是l码元数目比0码元数目仅多一个,这就是平衡Gold序列;另一种是l码元过多;再一种是l码元过少,这两种部是非平衡序列。当p为奇数时,在周期N=2r?1的2r?1个Gold序列中,有2r?1个序列平衡,即序列中l码元数为2r?1个,比0码元数多一个;有2(r?1)?2(r?1)2个序列,序列中l码元数为2(r?2)?2(r?3)2个,即l码元过多;另外有2(r?1)?2(r?1)2个序列,序列中l码元数有
2(r?2)?2(r?3)2个,即l码元过少。对n为奇数的Gold序列集合,有50%的序列是平衡的。当n
为偶数(但不为4的倍数)时,在N=2r?1的N+2个Gold序列中,有2r?1?2r?2?1个序列是平衡的,为Gold序列集合巾序列数的75%。
在扩频通信中,序列的平衡性对通信质量影响很大。在扩频系统中伪随机序列是用正电平和负电平来表示的,平衡序列中正负电平大致相当,使得发送信号的直流分量小,而且具有更好的频谱特性。这不仅在工程中更容易实现,而且可以有效抑制载频、降低发射功率、不易被侦破等。反之,如果序列不平衡,将破坏扩频通信系统的保密、抗干扰和抗侦破能力。
27
第五章 序列的仿真及其仿真比较
5.1 m序列的仿真
我们以7阶移位寄存器为例,来产生m序列。
先求其本原多项式,打开Matlab程序,输入primpoly(7,’all’)能得到7阶移位寄存器所对应的所有的本原多项式。输出结果为:
Primitive polynomial(s) = D^7+D^1+1 D^7+D^3+1
D^7+D^3+D^2+D^1+1 D^7+D^4+1
D^7+D^4+D^3+D^2+1 D^7+D^5+D^2+D^1+1 D^7+D^5+D^3+D^1+1 D^7+D^5+D^4+D^3+1 D^7+D^5+D^4+D^3+D^2+D^1+1 D^7+D^6+1
D^7+D^6+D^3+D^1+1 D^7+D^6+D^4+D^1+1 D^7+D^6+D^4+D^2+1 D^7+D^6+D^5+D^2+1 D^7+D^6+D^5+D^3+D^2+D^1+1 D^7+D^6+D^5+D^4+1 D^7+D^6+D^5+D^4+D^2+D^1+1 D^7+D^6+D^5+D^4+D^3+D^2+1
再以其中一个特征多项式f(x)?x7?x3?1为本原多项式,亦即反馈连接形式为输出序列为m序列。移位寄存器结构如下图5.1[C1,C2,C3,C4,C5,C6,C7]?[0,0,1,0,0,0,1]时,
28
所示。
图5.1 移位寄存器结构
以下是产生m序列的程序代码:fbconnection=[0 0 1 0 0 0 1];
mseq=m_sequence(fbconnection);
保存为mxulie.m运行后在MATLAB命令窗口输入mseq=m_sequence([0 0 1 0 0 0 1]),返回结果为:1
0 0 0 0 0 0 1 0 0 1 0 0 1 1 0 1 0 0
1 1 1 1 0 1 1 1 0 0 0 0 1 1 1 1 1 1 1 0 00 1 1 1 0 1 1 0 0 0 1 0 1 0 0 1 0 1 1 1 11 0 1 0 1 0 1 0 0 0 0 1 0 1 1 0 1 1 1 1 00 1 1 1 0 0 1 0 1 0 1 1 0 0 1 1 0 0 0 0 01 1 0 1 1 0 1 0 1 1 1 0 1 0 0 0 1 1 0 0 10 0 0
其中自编函数m_sequence.m用来产生m序列,输入参数为由本原多项式所对应的反馈连接形式。其代码如下:
function[mseq]=m_sequence(fbconnection); n=length(fbconnection); N=2^n-1;
register=[zeros(1,n-1) 1]; %赋初始值; mseq(1)=register(n); for i=2:N
newregister(1)=mod(sum(fbconnection.*register),2); %进行模2加计算; for j=2:n
newregister(j)=register(j-1); end;
29
register=newregister; mseq(i)=register(n); end
m序列仿真图如下图5.2所示:
m sequence1.41.210.80.60.40.20-0.2-0.4051015202530
图5.2 m序列仿真图
5.2 Gold序列的仿真
以6阶移位寄存器为例,在Matlab程序里输入primpoly(6,’all’)我们共能得到6个本原多项式,Primitive polynomial(s) =
D^6+D^1+1
D^6+D^4+D^3+D^1+1 D^6+D^5+1
D^6+D^5+D^2+D^1+1 D^6+D^5+D^3+D^2+1 D^6+D^5+D^4+D^1+1
它们分别产生6组对应的m序列:1
0 0 0 0 0 1 1 1 1 1 1
0 1 0 1 0 1 1 0 0 1 1 0 1 1 1 0 1 1 0 1 00 1 0 0 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 0 10 0 0 1 1 0 0 0 0
30