基于5级m序列的探究及仿真 - 图文

更新时间:2024-04-01 15:01:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

通信系统综合设计与实践

题目 基于5级m序列 的反馈系数的探究

院(系)名称 专业名称 学生姓名

信息工程学院 通信工程

金宇、张艳丽、赵春阳

学生学号 0 90110079、090110085、090110026 指导教师

赵春雨

2012年05月21日

目录

1背景及原理 ........................................................ 1 1.1探究n级m序列的反馈系数背景及目的........................... 1 1.2 生成m序列的原理及方法........................................... 1 2 确定反馈系数的方法 ............................................... 3 2.1 判断本原多项式的方法 ........................................ 3 2.2 基于5级循环序列发生器特征方程组中满足本原多项式的反馈系数的分析 .............................................................. 3 2.3 基于5级循环序列发器反馈系数的程序 .......................... 5 3 m序列的相关性质 ................................................. 8 3.1 m序列的性质................................................ 8 3.2 不同反馈系数对应m序列的性质的分析 ......................... 8

3.2.1、平衡性................................................ 8 3.2.2、自相关性.............................................. 9 3.2.3 互相关性分析......................................... 12

4 不同反馈系数对应的m序列对扩频通信系统抗干扰性能影响 ........... 16 4.1 m序列在直接序列扩频通信系统应用的simulink的仿真观察...... 16 4.2 不同/相同长度的不同m序列对扩频通信系统性能影响的matlab的仿真 ............................................................. 19 总结............................................................... 22 参考文献........................................................... 23 附录............................................................... 24 附录A.......................................................... 24 附录B.......................................................... 24 附录C.......................................................... 25 附录D.......................................................... 26 指导教师评语:..................................................... 31

基于5级m序列的反馈系数的探究

摘要

m序列易于从干扰信号中被识别和分离出来,又可以方便地产生和重复,有随机噪声的优点,易于实现相关接受或匹配接受, 因此伪随机序列在相关辩识、伪码测距、扩频通信、多址通信、分离多径、误码测试、数据加扰、信号同步等方面均有广泛的应用。n级循环序列生成器生成m序列和自身的反馈系数密切相关,本文我们提供了n级循环序列发生器能产生m序列的反馈系数的判断方法,及分析了不同的反馈系数对扩频通信系统性能的影响,并在matlab环境下运行了模拟仿真。

首先,我们利用本原多项式生成算法,确定一个伪随机序列的特征方程中对应的m序列,进而确定相关m序列的反馈系数。又对m序列的性质进行的相关分析,我们得出了m序列平衡性为1,m序列越尖锐自相关性越明显,且仅在k=0时出现峰值。我们又进一步利用matlab仿真并分析不同m序列在直接扩频通信系统中的仿真,我们可知在实际应用中选择自相关性大、互相关小的m序列作为扩频序列,另外m序列越长可以提高系统的抗干扰能力、降低系统的误码率及增加系统的容量,由此选择最佳的反馈系数生成最优的m序列对于提高扩频通信系统性能指标具有非常重要的意义。

关键词: 伪随机序,m序列,反馈系数,仿真

1背景及原理

1.1探究n级m序列的反馈系数背景及目的

伪随机序列(Pseudo Random Sequences)既有随机序列的随机特性,又有随机序列所不具备的规律性,可以方便地重复和产生。而m序列是目前广泛应用的一种伪随机序列,其在通信领域有着广泛的应用,窃密者若要获取信息就必须准确知道所用m序列的长度、种类和初始状态,但不同长度的m序列有无数种,同一长度的m序列当级数较大时也有很多种,所以窃密是比较困难的,提高了通讯的安全性。因此m序列在信息安全上有着广泛地应用。如扩频通信,卫星通信的码分多址,数字数据中的加密、加扰、同步、误码率测量等领域。

扩频通信是近年发展非常迅速的一种技术,它与光纤通信、卫星通信,一同被誉为进入信息时代的三大高技术通信传输方式。它不仅在军事通信中发挥出了不可取代的优势,而且广泛地渗透到了社会的各个领域,如通信、遥测、监控、报警和导航等。在直扩系统中,用伪随机序列将传输信息扩展,在接收时又用它将信号压缩,并使干扰信号功率扩散,提高了系统的抗干扰能力,由此可知扩频通信的抗干扰能力强,误码率低。另外,扩频通信还具有隐蔽性好、频率利用率高、易于数字化等特点。在扩频通信中通常的做法是用一扩频序列与信号相乘从而得到频谱的扩展或压缩,因而扩频序列的性能直接决定着通信质量。而伪随机序列中的m序列最常用作扩频序列。之所以采用m序列作为扩频码,是因为其具有良好的自相关性。由于m序列的生成和n级移位寄存器的反馈系数有一定的联系,所以探究n级移位寄存器的反馈系数对于生成怎样的m序列来提高扩频通信系统性能的m序列具有重要大的意义。 1.2 生成m序列的原理及方法

m 序列是最长线性反馈移位寄存器序列的简称,m 序列是由带线性反馈的移位寄存器产生的.由n级串联的移位寄存器和反馈逻辑线路可组成动态移位寄存器,如果反馈逻辑线路只由模2和构成,则称为线性反馈移位寄存器。带线性反馈逻辑的移位寄存器设定初始状态后,在时钟触发下,每次移位后各级寄存器会发生变化。其中任何一级寄存器的输出,随着时钟节拍的推移都会产生一个序

列,该序列称为移位寄存器序列【1】。

n级线性移位寄存器的如图3.1所示:

?????cn?1c0?1c1c2c3cn?1an?1an?2an?3?a1a0输

图3.1 n级线性移位寄存器

图中Ci表示反馈线的两种可能连接方式,Ci=1表示连线接通,第n-i级输出加入反馈中;Ci=0表示连接线断开,第n-i级输出未参加反馈。

因此,一般形式的线性反馈逻辑表达式为

nan?C1an?1?C2an?2???Cna0??Caii?1n?i(mod 2)

代入上式,则上式可改写

n将等式左面的an移至右面,并将ann?C0an(C0?1)0?为

?Caii?0n?1F(x)?定义一个与上式相对应的多项式

n?Ci?0xii其中x的幂次表示

F(x)?元素的相应位置。

?Ci?0ixi式称为线性反馈移位寄存器的特征多项式,特

征多项式与输出序列的周期有密切关系.当F(x)满足下列三个条件时,就一定能产生m序列:

(1) F(x)是不可约的,即不能再分解多项式; (2) F(x)可整除

px?1,这里p?2?1;

nq(3) F(x)不能整除x?1,这里q

满足上述条件的多项式称为本原多项式.这样产生m序列的充要条件就变成了如何寻找本原多项式。

2 确定反馈系数的方法

2.1 判断本原多项式的方法

由线性反馈移位寄存器能产生m序列的充要条件为:反馈移位寄存器如果生成的序列为m序列,则对其应的特征多项式必须为本原多项式。当一个多项式满

p足下列条件: F(x)是既约的;F(x)可整除x?1,这里p?2?1; F(x)不能整除

nx?1,这里q

q反馈系数为何值时满足这几个条件,下面我们来讨论如何确定一个多项式为本原多项式:

(1)给定二元多项式 f(x)= x +an-1x

n

n-1

+an-2x

n-2

+?.+ a1x+a0 (a0=1)

设a是f(x)扩域中的一个元素,且f(a)=0,则有:

an= an-1a n-1 +an-2a n-2 +?.+ a1a+a0 (5)

(2)从a开始,计算a的的连续幂。在计算过程中,当遇到a的幂次等于n时,将(5)式代入,一直计算到a m -2,其中m= 2 n;再计算到a m -1,其中m= 2 n;若a m -1=l

q nn其中m= 2 n,则证明f(x)能整除xm+l(m=p?2?1“),而不能整除x+1(q

n定为本原多项式。在计算a的连续幂过程中,若aq=l(q

n除xq+1,但pq

2.2 基于5级循环序列发生器特征方程组中满足本原多项式的反馈系数的分析

找出GF(2)(注:扩域)上5次部分本原多项式

【2】

的方法如下:5次二元多项

式的通式为f(x)=x5+a4 x4+a3x3+a2x2+a1x+ao其中,a4、a3、a2、a1、ao在GF(2)域上取值,所以共有2=32个5次多项式。因为ao=1,还有16个多项式, 由于本原多项式对应的项数必须为奇数个,所以,可以排除项数为偶数的可能,因为a5= a0=1 ,只须考虑a4 、a3 、a2 、a1为奇数个一的情况,下面为筛选后8个多项式的系数“1”的个数为奇数的情况,其中括号里面a5 、a4 、a3 、a2 、a1 、a0表示对应的二元值:

5

F0(x)= x5 +x+1 (100011) F1(x)= x5 +x 4 +1(110001) F2(x)= x5 +x 3 +1(101001) F3(x)= x +x+1(100101)

F4(x)= x5+x 3+x 2 + x+1(101111) F5(x)= x5+x 4+x 3+x 2 +1(101111) F6(x)= x5+x 4+x 2 + x +1(110111) F7(x)= x5+x 4+x 3 + x +1(111011)

而F0(x) 与F1(x)、F2(x) 与F3(x)、F7(x) 与F5(x)、F6(x) 与F4(x)

为互反多项式,只需判断其中之一。所以筛选以后需要判别的多项式只有4个,即F0(x)、F2(x)、F4(x)、F6(x) (1)判断f0(x)=x5+x+1

设e是由f(x)的扩域GF(2)中的一个元素,且f0(e)=0,

则e5=e+1(这里由于多项式的系数在二元域(0或1)内取值不考虑正负),计算e的连续幂如下: e6 =e2 +e e7 =e3 +e2 e=e+e

8

4

3

55 2

e9=e5+e4=e4+e+1(代入e5=e+1,下同) e9=e5+e2+e=e+1+e2+e=e2+1 e10=e3+e e11=e4+e2 e12=e5+e3=e+1+e3 e=e+e+e

e14=e5+e3+e2=e+1+e3+e2 e14=e3+e2+e+1 e15=e4+e3+e2+e

e16=e5+e4+e3+e2=e+1+e4+e3+e2

e17=e5+e4+e3+e2+e=e+1+e4+e3+e2+e=e4+e3+e2+1

13

4

2

e18=e5+e4+e3+e=e+1+e4+e3+e=e4+e3+1 e19=e5+e4+e=e+1+e4+e=e4+1 e20=e5+e=e+1+e=1

说明f0(x)能整除xq+l=x20+l,而q=20<2-l=31,所以f0(x) 不是本原多项式。 (2)判断f2(x)=x+x+1

设e是由f(x)的扩域GF(2)中的一个元素,且f2(e)=0, 则e=e+1,计算e的连续幂如下: e6=e3+e e7=e4+e2 e8=e5+e3=e2+1+e3 e9=e4+e3+e ...

e=e+e=e+1+e=1 由于e2-15552

552

315222

=e=1,因此f2(x)是本原多项式。

31 判断其他多项式是否为本原多项式【3】的方法相同,由此方法可以得出 F2(x)= x5 +x 3 +1(101001) F3(x)= x5 +x 2+1(100101)

F4(x)= x5+x 3+x 2 + x+1(101111) F5(x)= x5+x 4+x 3+x 2 +1(101111) F6(x)= x+x+x + x +1(110111) F7(x)= x5+x 4+x 3 + x +1(111011)

为本原多项式。由此推广得到n级循环序列发生器特征方程组中满足本原多项式的反馈系数。

2.3 基于5级循环序列发器反馈系数的程序

5级循环序列发生器特征方程组中满足本原多项式的反馈系数程序如下: 主程序如下(函数gfprimfd调用部分见附录A):

5

4

2

clear all;

n=5;%移位寄存器级数

C=gfprimfd(n,'all') %求出所有的反馈系数

for i=1:size(C)%由系数序列写出m序列、解析式,循环语句是依次写出所有的m序列、本原多项式

fbconnection=[C(i,2:n+1)];%反馈系数

[mxulie]=m_sequence1(fbconnection)%求解m序列并返回结果 gfpretty(C(i,:));%求本原多项式 end

运行结果如下: C =

1 0 1 0 0 1 1 0 0 1 0 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 F2(x)= x5 +x 3 +1(101001)2 F3(x)= x5 +x 2+1(100101)

F4(x)= x5+x 3+x 2 + x+1(101111) F5(x)= x5+x 4+x 3+x 2 +1(111101) F6(x)= x+x+x + x +1(110111) F7(x)= x5+x 4+x 3 + x +1(111011)

n级循环序列发生器的反馈系数采用八进制的表示方法,由此运行的结果可知,5级循环序列发生器的反馈系数为(45)8、(51)8、(57)8、(75)8、(67)8、(73)8时,5级循环序列发生器生成的序列为m序列。表2.3中就是程序运行出n级移位寄存器对应的反馈系数,由此可以看出,因当循环序列发生器的级数较多时,通过本原多项式算法求解n级循环序列发生器的反馈系数运量非常大,但运用程序更能方便快速的得出n级循环序列发生器的反馈系数。因此

5

4

2

用程序更能快捷的求解,比较实用。 下表2.3就是利用此程序求解出的结果:

表2.3

级数 3 4 5 6 7 8 9 10 16 17 周期 7 15 31 63 127 255 511 1021 65535 131071 反馈系数ci(八进制) 13、15 23、31 45、51、57、、67、73、75 141、155、103、163、133、147 301、221、361、211、271、345、325、345、367?. 435、453、537、543、545、551、703、747?. 1021、1055、1131、1157、1167、1175?.. 2011、1033、2157、2433、2745、3471?? 210013、233303、307572、311405、347433?.. 400011、411335、444257、527427、646775??

3 m序列的相关性质

3.1 m序列的性质

(1)平衡性:在m序列的— 个周期中,“1 ”的个数比“0”的个数只多一个。这表明,序列平均值很小,它可降低载漏发射功率,防止载漏干扰。 (2)尖锐的自相关特性:易于同步捕捉。如图3.1所示:

周期序列的互相关函数的定义为 p(j)?A?D (3.1) 式中A为m序列与其j次移位序列一个周期中对应元素相同的个数,D为m序列与其

j次移位序列一个周期中对应元素不同的个数。

(3)m序列的互相关特性,根据m序列的采样特性,可以将同级m序列互相关函数的计算归结为m序的互相关函数的计算。

m序列是一双值自相关序列,有优良的自相关特性。但是,在码分多址通信中,不同地址的扩频码互相关值要小,以便互不干扰,使用m序列作为地址码时,组成互相关值小的序列集很少。用一对周期和速率均相同的m序列优选对模2加后得到的Gold序列具有良好的自、互相关特性。Gold序列具有较好的平衡性,较好的自相关特性和较好的互相关特性,进而使m序列的用途更加广泛。 3.2 不同反馈系数对应m序列的性质的分析

下面我们进行n级循环序列发生器生成的不同反馈系数生成的不同m序列进行平衡性和自、互相关性程序及结果如下: 3.2.1、平衡性

map_m=ones(1,period); for q=1:period; if mSequence(q)==0 map_m(q)=-1;

end end

summation=sum(map_m)

结果运行如下: summation =1

3.2.2、自相关性

首先验证猜想的m序列自相关特性。猜想:随着长度的增加m序列越来越呈现出尖锐的自相关特性,而随着长度的增加m序列的互相关特性越来越弱。下面就带着这个猜想进行验证。

下面图形是由程序(见附录B)运行的结果:

7位长度伪随机序列的相关特性8m序列自相关特性m序列互相关特性 642R(k)0-2-4-6 -6-4-20k246图3.2(a)

15位长度伪随机序列的相关特性15m序列自相关特性m序列互相关特性 10R(k)50-5 -15-10-50k51015

图3.2(b)

31位长度伪随机序列的相关特性3530252015R(k) m序列自相关特性m序列互相关特性1050-5-10 -30-20-100k102030

图3.2(c)

127位长度伪随机序列的相关特性140m序列自相关特性12010080 R(k)6040200-20 -150-100-500k50100150

图3.2(d)

255位长度伪随机序列的相关特性300m序列自相关特性250 200150R(k)100500-50 -300-200-1000k100200300图3.2(f)

由图3.2分析可知:随着m序列长度的增加,其自相关的确越来越呈现出尖锐的特性。且自相关峰值出现在k=0(k表示m序列与自身延时k后的相关程度)时候。

我们知道:对于一个周期为数R(k)出现峰值,且峰值为

np?2-1n的m序列当k=0时,m序列的自相关函

p?2-1 (自相关函数系数值(自相关函数值除以m

序列的长度得到的)为1);当k偏离0时,相关函数曲线很快下降;当1

综上知:关于自相关特性的猜想:随着长度的增加m序列越来越呈现出尖锐的自相关特性是正确的。

应用:m序列在k=0时呈现出尖锐的自相关特性是很重要的,相关检测就是利用这一特性,在‘有’或‘无’信号相关函数值的基础上识别信号,检测自相关函数系数值为1的码序列。 多径干扰会造成通信系统的严重衰落甚至无法工作,由扩频序列(m序列)自相关函数的特性知,当两个接受信号序列相对时间超过码元宽度时,相关器输出只为码长的倒数,故被很大程度地抑制掉,因此研究自相关特性非常有意义,它能提高通信系统的抗多径干扰能力。 3.2.3 互相关性分析

首先猜想:随着长度的增加m序列的互相关特性越来越弱;有程序运行结果如表3.2(见附录C):

表3.2

n(移位寄存器级数) 1、2 3 m1(基准序列) m2(待比较序列) b(所有k点的互相关平均值) 只生成一个m序列,没有互相关性。 1001110 1001011 4 100011110101100 100010011010111 1000010010110011111000110111010② 100001100100111 4.4426 2.3846 3.4828 4.9016

5 5 1000010101110110001111100110100① 1101110001010110③ 100001101010010 0010111110110011④ 100001110011011 1110100010010101⑤ 1000010110101000111011111001001⑥ 4.5410 4.4426 4.4426 1000010010110011111000110111010② 1000011001001111101110001010110③ 1000011010100100010111110110011④ 1000011100110111110100010010101⑤ 1000010110101000111011111001001⑥ 4.5410 4.4426 4.4426 4.4426 100001101010010 0010111110110011④ 4.5410 100001100100111 110111000101011010000111001101114.4426

③ 110100010010101⑤ 1000010110101000111011111001001⑥ 4.8689 1000011010100100010111110110011④ 100001110011011 1110100010010101⑤ 1000010110101000111011111001001⑥ 4.8361 4.4426 1000011100110111110100010010101⑤ 1000010110101000111011111001001⑥ 4.5410 由表格知:n=3时,m序列的长度为7位,互相关平均值b=2.3846,n=4时,m序列的长度为15位,互相关平均值b=3.4828,n=5时,m序列的长度为31位,互相关平均值b=4.9016(以第一个为例)。

由此知:不同长度的不同m序列互相关性,随着长度的增加,它们的互相关性并不呈现出越来越弱的特性,反而有所增强。由此知关于随着长度的增加m序列的互相关特性越来越弱的猜想是错误的。

在n=5的情况下,m序列的长度都相同,在有相同的基准序列和有不同的基准序列的情况下,互相关平均值b都有大有小。

由此知:关于相同长度m序列的互相关性有大有小的猜想是正确的。

应用:m 序列的互相关函数是一个多值函数(由r2的值及图形可以看出)。在码分多址系统中,m 序列用作地址码时,互相关函数值越小越好。其中一些互相关函数特性较好而另一些则较差。在实际应用中,应取互相关特性较好的m 序列作为地址码。在CDMA系统中使用的m序列有两种:(1)PN短码,码长为2-1;

42(2)PN长码,码长为2?1.在CDMA系统前向信道中,长码用于扰码,短码用于

15正交扩频(标识基站).若考虑用户为数为2时,我们可以从n=5中选取选取互相关

小的m序列,例如:用1000010101110110001111100110100①、100001100100111 1101110001010110③两个序列来标志不同的用户。另外用两个互相关性比较小的m序列作为优选对来产生Gold序列。

4不同反馈系数对应的m序列对扩频通信系统抗干

扰性能影响

4.1 m序列在直接序列扩频通信系统应用的simulink的仿真观察

图4.1.1直序扩频(先调制后扩频)系统框图

图4.1.2扩频与解扩的图形及频谱

图4.1.3

图4.1.4原始信号的频谱

图4.1.5经m序列扩频后的信号频谱

图4.1.6解扩解调后接收到的信号频谱

4.2 不同/相同长度的不同m序列对扩频通信系统性能影响的matlab的仿真

matlab的仿真程序见附录D,结果表4.2

我们是基于5级的移位寄存器研究:m序列在DS-CDMA在AWGN信道下,在用户数及信噪比一定的情况下,对于相同长度的不同m序列对系统的误比特率影响不明显;对于不同长度的m序列对系统的误比特率影响比较明显。随着用户数的增加,系统的误码率会增大;随着信噪比的提高,系统的误码率会下降,当信噪比增大到一定的值,系统的误码率会减小到零。

当主程序及相关调用子程序做修改后可画出如图(1)、图(2)、图(3)所示图形, n=3、4、5时,生成的两个m序列DS-CDMA在AWGN信道下的误比特率,由图可以得出当在一定信噪比及用户数的情况下,随着m序列长度的增加,其对应特定下信噪比的误比特率越低,并且随着用户数的增多,这种情形越明显。

综上:我们知道,当用户数一定时,我们可以可以增加m序列的长度来降低通信系统的误比特率。若保持通信系统的误比特率不变,随着用户数的增加,我们可以增加m序列的码元长度,来达到目标。从中我们也可以看到增加m序列的码元长度,可以增加通信系统的容量。

100m序列DS-CDMA在AWGN信道下的性能 user=1user=4user=7100m序列DS-CDMA在AWGN信道下的性能 user=1user=4user=71010-1-1误比特率(BER)10-2误比特率(BER)10-210-310-310-410 0-4246信噪比EbNo(dB)81010 0-5246信噪比EbNo(dB)810

图4.2.1 n=3时,生成的两个m序列DS-CDMA在AWGN信道下的性能

100m序列DS-CDMA在AWGN信道下的性能 user=1user=4user=7100m序列DS-CDMA在AWGN信道下的性能 user=1user=4user=710-110-1误比特率(BER)误比特率(BER)246信噪比EbNo(dB)81010-210-210-31010-4-310 0-510 0-4246信噪比EbNo(dB)810

0图4.2.2 n=4时,生成的两个m序列DS-CDMA在AWGN信道下的性能

10m序列DS-CDMA在AWGN信道下的性能 user=1user=4100m序列DS-CDMA在AWGN信道下的性能 user=1user=410-110-1误比特率(BER)10-3误比特率(BER)246信噪比EbNo(dB)81010-210-210-310-410-410 0-510 0-5246信噪比EbNo(dB)810

图4.2.3 n=5时,生成的两个m序列DS-CDMA在AWGN信道下的性能

表4.2中的数据是基于移位寄存器级数n=5的情况下,由六个不同的反馈系数c

对应生成的m序列对通信系统影响的观察统计出来的。

表4.2

用 户 数 误 比 特 s/n c C1 率 C2 C3 C4 C5 C6 2 个 用 户 0 2 4 6 8 10 0.1126 0.0555 0.0191 0.0042 0.0002 0 0.1117 0.0550 0.0200 0.0040 0.1114 0.0524 0.0183 0.0030 0.0002 0 0.1123 0.0553 0.0176 0.0040 0.1121 0.0562 0.0187 0.0034 0.0005 0 0.1130 0.0565 0.0190 0.0041 0.1111 0.0528 0.0182 0.0038 0.0003 0 0.1124 0.0555 0.0187 0.0043 0.1128 0.0539 0.0182 0.0031 0.0002 0.0001 0.1107 0.0559 0.0200 0.0042 0.1097 0.0556 0.0185 0.0039 0.0002 0 0.1107 0.0559 0.0200 0.0042 4 个 用 户 0 2 4 6 8 10 0.0004 0 0.0003 0.0001 0.0004 0 0.0004 0 0.0003 0 0.0003 0 注: c:移位寄存器的反馈系数;s/n:信噪比

结论

通过对基于5级m序列的探究,我们利用本原多项式生成算法,确定一个反馈系数的特征方程对应的m序列,进而确定相关m序列的反馈系数。我们得出对于5级的移位寄存器能生成m序列的反馈系数为(45)8、(51)8、(57)8、(75)8、(67)8、(73)8。又对m序列的性质进行的相关分析,我们得出了m序列平衡性为1,m序列越尖锐自相关性越明显,且仅在k=0时出现峰值;随着m序列长度的增加,互相关性随着增加。我们又进一步利用matlab仿真并分析不同m序列在直接扩频通信系统中的仿真,我们可知在实际应用中选择自相关性大、互相关小的m序列作为扩频序列,另外m序列越长可以提高系统的抗干扰能力、降低系统的误码率及增加系统的容量,由此选择最佳的反馈系数生成最优的m序列对于提高扩频通信系统性能指标具有非常重要的意义。

本文的研究还可以进一步延伸到具体m序列在扩频通信系统性能的要求下选择最佳的反馈系数生成最优的m序列的实例,还可以进一步探究反馈系数和m序列呈现什么样的规律性,将选择出的m序列组成什么样的序列够有利于在通信系统中传输,增加系统的保密性等。

通过这次课程设计,我们对通信系统的仿真有了很大的了解,掌握的仿真设计的方法和思路,提高了对系统的分析能力和解决能力。在这次课程设计中,我们也遇到了许多的困难,如对simulink模块中各个参数的设置,如何将不同的功能框图整合一起以实现所需的功能及编程中出现的语法错误及功能实现困难等等。我们经过两周的不断讨论交流最总做出比较满意的结果,由于时间有限,课题说探究的知识还有许多不尽人意的地方,需要将来做进一步的改善。

参考文献

【1】 期刊论文 陈海龙,李 宏 基于MATLAB 的伪随机序列的产生和分析1006 -

9348 (2005) 05 - 0098 – 03

【2】 期刊论文 俞迎达.祁传达.YU Ying-da.QI Chuan-da GF(2)上本原多项式

的三项倍式的次数研究 -数学的实践与认识2006,36(11)

【3】 期刊论文 吕辉。何晶。王啊伪随机序列中本原多项式生成算1ooo3428(2004】

16—0108—02

【4】 期刊论文熊睿佳,胡万利伪随机m序列特性及C语言实现1672—

7940(2011)01— 0110— 03

附录

附录A 函数调用部分:

function [mxulie]= m_sequence1(fbconnection) a = length(fbconnection);%移位寄存器级数 N = 2^a-1;%m序列的周期

register = [zeros(1,a - 1) 1];%定义移位寄存器的初始状态 mxulie(1)= register(a);%(最后一位)移位寄存器输出 for i = 2:N %控制移位寄存器的状态循环

newregister(1)= mod(sum(fbconnection.*register),2);

%前一个时刻的最后一级移位寄存器的状态移位给当前时刻所定义的新移位寄存器第一级

for j = 2:a %控制移位寄存器状态的赋值循环

newregister(j)= register(j-1);%移位寄存器状态依次移位给所定义的新移位寄存器 end;

register = newregister;%改变原有的各级移位寄存器的状态 mxulie(i) = register(a);%各次移位寄存器状态对应的输出 end

附录B 主程序【4】:

figure

mseq=[ 1 0 0 1 1 1 0

1 0 0 1 0 1 1]; %两行的m序列 ind1=find(mseq == 0);

mseq(ind1) = - 1 ;%把“0”映射成“ - 1” r1 = ccorr (mseq(1,:));

r2= ccorr (mseq(1,:) ,mseq(2,:)) a=length(r2);

b=sum(abs(r2))/a N = length(mseq) ;

axis = - N + 1 :N - 1 ; %定义横轴使自相关峰值移位到0 点 plot (axis ,r2 ,'- .') ; xlabel ('k') ;

ylabel ('R(k)') ;

title ('7位长度伪随机序列的相关特性') ; legend('m序列互相关特性');

函数调用部分:

function r=ccorr(seq1,seq2) if nargin==1 seq2=seq1; end

N=length(seq1); for k=-N+1:-1

seq2_shift=[seq2(k+N+1:N) seq2(1:k+N)]; r(N+k)=seq1*seq2_shift'; end for k=0:N-1

seq2_shift=[seq2(k+1:N) seq2(1:k)]; r(N+k)=seq1*seq2_shift'; end

附录C

主程序:(对应相同长度的m序列只需修改m序列即可)

figure

Clear all;

mseq=[ 1 0 0 1 1 1 0

1 0 0 1 0 1 1]; ind1=find(mseq == 0);

mseq(ind1) = - 1 ;%把“0”映射成“ - 1” r1 = ccorr (mseq(1,:));

r2= ccorr (mseq(1,:) ,mseq(2,:)) a=length(r2);

b=sum(abs(r2))/a N = length(mseq) ;

axis = - N + 1 :N - 1 ; %定义横轴使自相关峰值移位到0 点 plot (axis ,r2 ,'- .') ; xlabel ('k') ;

ylabel ('R(k)') ;

title ('7位长度伪随机序列的相关特性') ; legend('m序列互相关特性'); 调用函数部分:

function r=ccorr(seq1,seq2) if nargin==1 seq2=seq1; end

N=length(seq1); for k=-N+1:-1

seq2_shift=[seq2(k+N+1:N) seq2(1:k+N)]; r(N+k)=seq1*seq2_shift'; end

for k=0:N-1

seq2_shift=[seq2(k+1:N) seq2(1:k)]; r(N+k)=seq1*seq2_shift'; end

附录D 1:主程序:

%m-序列DS-CDMA在AWGN信道下的性能仿真 clear all figure

user=[2 4]; for seq=1:2 seq

for index=1:length(user)

ber(index,:)=dscdma(user(index),seq) end

EbNo=0:2:10;

subplot(1,2,seq),

semilogy(EbNo,ber(1,:),'-kx',EbNo,ber(2,:),'-ro'); legend('user=1','user=4','user=7')

title('m序列DS-CDMA在AWGN信道下的性能') xlabel('信噪比EbNo(dB)') ylabel('误比特率(BER)') end

2:调用函数 子函数1:

%直接序列扩频主程序代码

function [ber] = dscdma(user,seq)

% user: 同时进行扩频通信的用户数

% seq: 扩频码1:M-序列 2:Gold序列 3:正交Gold序列 % ber: 该用户数下的误码率

%**************************** 初始化部分 *****************************

sr = 25600.0; % 符号速率 nSymbol=10000; %每种信噪比下发送的符号数

M = 4; % 4-QAM调制

br = sr * log2(M); % 比特速率

graycode=[0 1 3 2]; % Gray编码规则 EbNo=0:2:10; % Eb/No 变化范围

%************************** 脉冲成形滤波器参数 **************************

delay = 10; % 升余弦滤波器时延

Fs = 8; % 滤波器过采样数

rolloff = 0.5; % 升余弦滤波器滚降因子

rrcfilter = rcosine(1,Fs,'fir/sqrt',rolloff,delay); %设计根升余弦滤波器 %********************** 扩频码产生参数 **********************

% user = user1; % 用户数

%******************** 扩频码的生成 *********************

switch seq

case 1 % M-序列 stage = 5; % m序列的阶数

ptap1= [1 3 4 5]; % m序列1的寄存器连接方式

regi1 = [1 1 1 1 1]; % m序列1的寄存器初始值

code = mseq(stage,ptap1,regi1,user);

case 2 % M-序列 stage = 5; % m序列的阶数

ptap1= [2 3 4 5]; % m序列1的寄存器连接方式

regi1 = [1 1 1 1 1]; % m序列1的寄存器初始值

code = mseq(stage,ptap1,regi1,user); end

code = code * 2 - 1;

clen = length(code);

%************************** 衰落信道参数 **************************

ts = 1 / Fs / sr/ clen; % 信道采样时间间隔

t=(0:nSymbol*Fs*clen-1+2*delay*Fs)*ts; % 每种信噪比下的符号传输时间

y = 160; % 多普勒频移 [Hz]

%h=rayleigh(fd,t);

%**************************** 仿真开始 ****************************

for indx=1:length(EbNo)

%****************************** 发射端 ********************************

data = randsrc(user,nSymbol,[0 :3]) ; % 产生各个用户的发射数据

data1=graycode(data+1); % Gray编码 data1 = qammod(data1,M); % 4-QAM 调制

[out] = spread(data1,code); % 扩频

out1=rcosflt(out.',sr,Fs*sr,'filter',rrcfilter); % 通过脉冲成形滤波器 spow = sum(abs((out1)).^2) / nSymbol; % 计算每个用户信号功率

if user > 1 % 用户数大于1时,所有用户数据相加 out1=sum(out1.'); else

out1=out1.';

end

%***************************** 通过瑞利衰落信道 ****************************** % out1=h.*out1;

%******************************** 接收端 ********************************* sigma = sqrt(0.5 * spow * sr / br * 10^(-EbNo(indx)/10)); % 根据信噪比计算高斯白噪声方差 y=[];

for ii=1:user

y(ii,:)=out1+sigma(ii).*(randn(1,length(out1))+j*randn(1,length(out1))); % 加入高斯白噪声(AWGN)

%

y(ii,:)=y(ii,:)./h; % 假设理想信道估计

end

y=rcosflt(y.',sr,Fs*sr,'Fs/filter',rrcfilter); % 通过脉冲成形滤波器进行滤波

y=downsample(y,Fs); % 降采样 for ii=1:user

y1(:,ii)=y(2*delay+1:end-2*delay,ii);

end

yd = despread(y1.',code); % 数据解扩

demodata = qamdemod(yd,M); % 4-QAM 解调

demodata=graycode(demodata+1); % Gray编码逆映射

[err,ber(indx)]=biterr(data,demodata,log2(M)); % 统计误比特率 end 子函数2:

function [mout] = mseq(n, taps, inidata, num)

% **************************************************************** % n : m序列的阶数n

% taps : 反馈寄存器的连接位置

% inidata : 寄存器的初始值序列 % num : 输出的m序列的个数

% mout : 输出的m序列,如果num>1,则每一行为一个m序列

% **************************************************************** if nargin < 4 num = 1;

end

mout = zeros(num,2^n-1); fpos = zeros(n,1);

fpos(taps) = 1; for ii=1:2^n-1

mout(1,ii) = inidata(n); % 寄存器的输出值 temp = mod(inidata*fpos,2); % 计算反馈数据

inidata(2:n) = inidata(1:n-1); % 寄存器移位一次

inidata(1) = temp; % 更新第1个寄存器的值 end

if num > 1 %如果要输出多个m序列,生成其他m序列 for ii=2:num

mout(ii,:) = shift(mout(ii-1,:),1); end end

子函数3:

function [outregi] = shift(inregi,shiftr)

% **************************************************************** % inrege : 输入序列

% shiftr : 循环右移的位数 % outregi : 输出序列

% **************************************************************** v = length(inregi); outregi = inregi;

shiftr = rem(shiftr,v);

if shiftr > 0

outregi(:,1:shiftr) = inregi(:,v-shiftr+1:v); %循环移位 outregi(:,1+shiftr:v) = inregi(:,1:v-shiftr); elseif shiftr < 0

outregi(:,1:v+shiftr) = inregi(:,1-shiftr:v); outregi(:,v+shiftr+1:v) = inregi(:,1:-shiftr); end

%******************************** end of file ********************************

子函数4:

%扩频函数

function [out] = spread(data, code)

% **************************************************************** % data : 输入数据序列 % code : 扩频码序列

% out : 扩频后的输出数据序列

% ****************************************************************

switch nargin

case { 0 , 1 } %如果输入参数个数不对,提示错误 error('缺少输入参数'); end

[hn,vn] = size(data);

[hc,vc] = size(code);

if hn > hc %如果扩频码数小于输入的待扩频的数据序列,提示错误

error('缺少扩频码序列'); end

out = zeros(hn,vn*vc); for ii=1:hn

out(ii,:) = reshape(code(ii,:).'*data(ii,:),1,vn*vc); end

%******************************** end of file ********************************

子函数5:

%信号解扩

function out = despread(data, code)

% **************************************************************** % data : 输入数据序列

% code : 解扩使用的扩频码序列 % out : 解扩后的输出数据序列

% **************************************************************** switch nargin %如果输入参数个数不对,提示错误 case { 0 , 1 }

error('缺少输入参数'); end

[hn,vn] = size(data);

[hc,vc] = size(code); out = zeros(hc,vn/vc); for ii=1:hc

xx=reshape(data(ii,:),vc,vn/vc); out(ii,:)= code(ii,:)*xx/vc;

end

%******************************** end of file

指导教师评语:

指导教师:赵春雨 成绩:

本文来源:https://www.bwwdw.com/article/5pjr.html

Top