调整后的m序列、Gold序列

第一章扩展频谱通信的基本概念

1.1扩频通信的理论基础
1948年,香农提出了著名的香农公式。香农用信息论的理论推导出了带宽受限且有高斯白噪声干扰的信道的极限、无差错的信息传输速率。
香农信道公式是在高斯白噪声下推倒的,此条件下通信系统的极限传输速率(信道容量)为

C为信道容量(比特/秒)B为信道带宽(Hz),S为信道内所传信号平均功率(W),N为信道内部的高斯噪声功率(W)。
由香农公式可以看出:
(1)增加信道容量的方法:增加信号带宽B;增加信噪比S/N。
(2)C为常数时,B和S/N可以互换.可以增加带宽B来降低信噪比S/N的要求。
(3)当B增加到一定程度后,信道容量C将增加缓慢,并趋于有限值。
调整后的m序列、Gold序列_第1张图片1.2扩频通信的定义
扩频通信即扩展频谱通信(Spread Spectrum Communication),是在发送端将待传送的信息数据被伪随机编码(扩频序列: Spread Sequence) 调制,实现频谱扩展后再传输,接收端则采用相同的编码进行解调及相关处理,恢复原始信息数据。
《Theory of Spread Spectrum Communicatims- A Tutorial》[[[] IEEE TRANSACTION S ON COMM UNICATION S, VOL. COM- 30, NO. 5, M AY 1982.]]一文中对扩展频谱有如下定义:“扩展频谱是一种传输方式 ,在这种传输方式中信号占据的带宽远远大于发送信息所必需的最小频带宽度。频带的扩展通过一个独立的码序列来完成,在接收机中用同样的码进行同步接收、解扩和数据恢复。”
调整后的m序列、Gold序列_第2张图片在扩频发信机中,射频载波通常经过两次调制过程:一次同常规调制一样,被信息信号所调制;另一次由码序列进行扩频调制,相应地在收信机中先用约定的码序列做相关处理(解扩),然后再进行信息信号的解调。
在发端输入的信息先经信息调制形成数字信号,然后由扩频码发生器产生的扩频码序列去调制数字信号以展宽信号的频谱。展宽后的信号再调制到射频发送出去。
在接收端收到的宽带射频信号,变频至中频,然后由本地产生的与发端相同的扩频码序列去相关解扩。再经信息解调、恢复成原始信息输出。
由此可见,—般的扩频通信系统都要进行三次调制和相应的解调。一次调制为信息调制,二次调制为扩频调制,三次调制为射频调制,以及相应的信息解调、解扩和射频解调。
与一般通信系统比较,扩频通信就是多了扩频调制和解扩部分。
调整后的m序列、Gold序列_第3张图片调整后的m序列、Gold序列_第4张图片显然,当接收端不知道发送的扩频信号所使用的伪随机码时,要进行扩频解调是很困难 的、甚至可以说是不可能的。从而实现了信息数据的保密通信。
这种通信方式与常规的窄道通信方式是有区别的:一是信息的频谱扩展后形成宽带传输,二是相关处理后恢复成窄带信息数据。正是由于这两大特点,使扩频通信有如下的优点:
(1) 抗干扰能力强; (2) 抗噪音; (3) 抗多径衰落; (4) 具有保密性; (5) 功率谱密度低,具有隐蔽性和低的截获概率; (6)可多址复用和任意选址; (7) 高精度测量,等等。(可扩展叙述)
正是由于扩频通信技术具有上述优点 ,自50年代中期美国军方便开始研究,到了80年代它已广泛应用于军事通信、电子对抗以及导航,测量等各个领域。为了满足日益增长的 民用通信容量的需求和有效地利用频谱资源,各国都纷纷提出在数字峰窝移动通信、卫星移动通信和未来的个人通信中采用扩频技术。
第二章 扩频系统使用的伪随机码
扩频系统通过信息与扩频码相乘来实现扩频。扩频系统的抗干扰、保密、多址、 捕获与跟踪等都与扩频码的设计密切相关,因此扩频码的生成和性能评估是扩频系统的关键核心技术,决定了系统的性能甚至成败。
扩频系统对扩频序列的要求是:
①尖锐的自相关特性,既每个扩频序列的自相关函数应该是一个冲激函数,即除零时延外,其值应处处为O;
②每对扩频序列的互相关函数值应该处处为O尽可能小的互相关值;
③足够多的序列数;
④序列平衡性好;
⑤工程上易实现。
根据随机序列的特点,我们发现用纯随机序列作扩频码是最理想的。随机序列是具有白噪声统计特性的信号,可克服多径干扰实现有效和可靠的保密信息传输。但真正的随机序列是没有周期,无法复制的。更重要的是,这种不可复现性使得扩频通信无法完成。因为在扩频通信系统的接收机中为了解扩应当有一个同发送端扩频码同的副本,系统必须复制出当初扩频时的那个扩频码,这样才能剥离载波,还原信息。因此,在实际扩频通信中只能使用有周期的伪随机序列作为扩频码。伪随机序列一方面它是可以预先确定的,并且是可以重复地生产和复制的,一方面它又具有某种随机序列的随机特性。伪随机序列系列具有良好的随机性和接近于白噪声的相关函数,并且有预先的可确定性和可重复性。这些特性使得伪随机序列得到了广泛的应用,在扩展频谱系统中,常使用伪随机码来扩展频谱。扩频码中应用最广的是 m序列、Gold序列,还有截短m序列、M序列以及L序列和霍尔序列等。下面着重介绍一下m序列和Gold序列。
2.1 m序列
2.1.1伪随机序列
通常产生伪随机序列(PN,Pseudo—randomNumber)的电路为一反馈移位寄存器, 线性反馈移位寄存器(linear feedback shift register, LFSR)是指,给定前一状态的输出,将该输出的线性函数再用作输入的移位寄存器。异或运算是最常见的单比特线性函数:对寄存器的某些位进行异或操作后作为输入,再对寄存器中的各比特进行整体移位。
调整后的m序列、Gold序列_第5张图片调整后的m序列、Gold序列_第6张图片2.1.2 m序列
调整后的m序列、Gold序列_第7张图片调整后的m序列、Gold序列_第8张图片调整后的m序列、Gold序列_第9张图片调整后的m序列、Gold序列_第10张图片调整后的m序列、Gold序列_第11张图片
调整后的m序列、Gold序列_第12张图片2.2、Gold序列原理流程图
调整后的m序列、Gold序列_第13张图片
第三章m序列、Gold序列编译实现
4.1 m序列的实现和测试

4.1.1Matlab、C语言生成m序列
1)寄存器级数为4时
clear;
reg1=[1 0 0 0]; %寄存器初始状态0001
coeff1=[1 1 0 0 1]; %设置系数,取决于特征多项式10011
N=2^length(reg1)-1; %产生m序列
for k=1:N %计算一个周期的m序列输出
a_n=mod(sum(reg1.*coeff1(1:length(coeff1)-1)),2); %反馈
reg1=[reg1(2:length(reg1)),a_n]; %寄存器移位反馈
out1(k)=reg1(1);
stairs(out1);
End
调整后的m序列、Gold序列_第14张图片调整后的m序列、Gold序列_第15张图片调整后的m序列、Gold序列_第16张图片可以通过更改第二、三行寄存器初始状态及特征多项式来绘制不同级数下的m序列
2)寄存器级数为6时
clear;
reg1=[1 0 0 0 0 0]; %寄存器初始状态000001
coeff1=[1 0 0 0 0 1 1]; %设置系数,取决于特征多项式1000011
N=2^length(reg1)-1; %产生m序列
for k=1:N %计算一个周期的m序列输出
a_n=mod(sum(reg1.*coeff1(1:length(coeff1)-1)),2); %反馈
reg1=[reg1(2:length(reg1)),a_n]; %寄存器移位反馈
out1(k)=reg1(1);
stairs(out1);
End
调整后的m序列、Gold序列_第17张图片#include
#include
#include

int main(int argc, char *argv[]) //命令行参数
{
int a[100] = {0}; //定义初始化数组a
int c[101] = {0}; //定义反馈选择接入数组c
int max = atoi(argv[1]); //将字符型的“最大指数”转化为整型数
int temp; //temp用于存放反馈量
int p; //定于p为周期变量

for(int i=1;i

}
调整后的m序列、Gold序列_第18张图片调整后的m序列、Gold序列_第19张图片通过比较使用matlab、C语言两种编译语言两种级数的m序列产生的结果完全一致。
测试相关函数和频谱特征,得出扩频前后的对比
1)测试m序列的自相关特性与互相关特性
4.2 Gold序列的实现和测试
4.2.1 MATLAB、C语言生成Gold序列
r=6;
N=2^r-1;
s1(1:6)=[1 0 0 0 0 0];
s2(1:6)=[1 0 0 0 0 0];
f1=[1 0 0 0 0 1 1];
f2=[1 1 0 0 1 1 1];
for n=r+1:N
s1(n)=mod(sum(s1(n-r:n-1).*f1(1:r)),2);
end
for n=r+1:N
s2(n)=mod(sum(s2(n-r:n-1).*f2(1:r)),2);
end
s=mod(s1+s2,2);
gold = s;
stairs(gold);
调整后的m序列、Gold序列_第20张图片#include
#include
#include
#include
int main(int argc, char *argv[]) //命令行参数
{
int temp1,temp2;
int mark;
int count_c1,count_c2;
int p; //定义p为周期变量
int max = atoi(argv[1]); //灏将字符型的“最大指数”转化为整型数

int a1[100] = {0};     //定义初始化数组a1,a2
                       //定义反馈选择接入数组c1,c2
int c1[101] = {0}; 
int a2[100] = {0};
int c2[100] = {0};

for(int i=1;i

}
调整后的m序列、Gold序列_第21张图片调整后的m序列、Gold序列_第22张图片

你可能感兴趣的:(调整后的m序列、Gold序列)