Gold码平衡码的计算机搜寻_第1页
Gold码平衡码的计算机搜寻_第2页
Gold码平衡码的计算机搜寻_第3页
Gold码平衡码的计算机搜寻_第4页
Gold码平衡码的计算机搜寻_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

度即乃/大孝设计(论文)专用纸

Gold码平衡码的计算机搜寻

C程序设计和实现

学校:昆明理工大学

班级:电子信息工程1班

姓名:刘春源

学号:200511513105

指导教师单位:昆明理工大学

指导教师姓名:邵玉斌

指导教师职称(职务):教授

度即乃/大孝设计(论文)专用纸

SearchForBalancedGoldbyComputer

------DesignandRealizationofCProgram

SchookKunmingUniversityofScienceandTechnology

Class:classonemajoredinElectronicandInformationEngineering

Author:Liuchunyuan

Tutor'sUnit:KunmingUniversityofScienceandTechnology

Tutor:Shaoyubin(Prof.)

目录

摘要.......................................................................-3.

度即乃/大孝设计(论文)专用纸

第一章绪论.............................................................................................................................-5-

第一节Gold码的发展与应用.........................................................-5-

第二节本文的工作内容..............................................................-6-

第二章Gold码的产生原理....................................................................................................-7-

第一节m序列的产生原理............................................................-7-

第二节m序列的互相关函数.........................................................-8-

第三节m序列优选对的原理.........................................................-9-

第四节Gold码的产生原理及平衡Gold码的判断......................................-10-

第五节Gold码产生的整体框图......................................................-11-

年竟Gold码的程序实现...................................................................................................-13-

第一节m序列的程序实现............................................................-13-

第二节m序列的互相关函数的程序实现...............................................-17-

第三节m序列优选对的程序实现.....................................................-20-

第四节Gold码的程序实现及平衡Gold码的判断.......................................-25-

第四章程序运行结果及运行结果的分析........................................-32-

第一节m序列的程序运行结果........................................................-32-

第二节m序列的互相关函数的程序运行结果...........................................-35-

第三节m序列优选对的程序运行结果.................................................-36-

第四节Gold码的程序运行结果.......................................................-38-

第五章总结............................................................................................................................-42-

第一节本文所做工作................................................................-42-

第二节本文中未能讨论的议题........................................................-42-

谢辞..........................................................................................................................................-43-

参考文献.................................................................-44-

附录.....................................................................-45-

附录一程序清单....................................................................-45-

附录二英文翻译....................................................................-59-

摘要

Gold码作为一种伪随机码序列,由于其良好的互相关性及多地址码性,已经在扩频系

统以及各种传输系统中得到广泛的应用。

在本文中,首先介绍了伪随机序列的发展,并着重介绍了最常用的伪随机码m序列、

园吼理N大发设计(论文)专用纸

Gold码,介绍了他们的产生与在现实系统中的应用。下面,就分别介绍了m序列的产生

原理以及Gold码的产生原理。涉及到m序列,我们就要了解到m序列的产生结构、m序

列的互相关性、m序列优选对等内容。下面介绍的是Gold码的产生以及Gold码的性质。

进一步介绍的就是平衡Gold码的选择方法。

了解了Gold码的原理后,下面的内容就是根据上面讨论到的原理,利用VC++一步步

的分别实现m序列、m序列优选对的选择、Gold码、平衡Gold码的选取。

利用VC++编程实现了Gold码后,我们可以利用MATLAB分析平衡Gold码与非平衡

Gold码的频谱特性,并用仿真得到的结果同已得的结论相比较,再次确认平衡Gold码的

频谱特性要好于非平衡Gold码的频谱特性。

关键字:m序列m序列互相关函数m序列优选对Gold码平衡Gold码

Abstract:GoldisoneofPNsequence,duetoitsexcellentcrosscoincidenceandmulti-addresses,

whichhasbeenwidelyusedinspread-spectrumcommunicationandothercommunications.

Inthispapers,firstlyitintroducesdevelopmentofPNsequence,especially,inwhichit

introducesprinciplesandapplicationofthemostcommenPNsequences,suchas,msequenceand

Goldsequence.Secondly,itintroducesprinciplesofmsequenceandGoldsequencehappening.As

tomsequence,weshouldknowofstructureaboutmsequenceproducing,crosscoincidenceand

msequenceoptimisedselectedpair,andsoon.ltfollowsthatitintroducesproductionand

propertiesofGoldsequence.Further,itintroducesmethodofselectingbalancedGoldsequence.

-4-

度即乃/大孝设计(论文)专用纸

AfteracknowledgingprincipleofGoldsequence,onbasisofprinciplesabove,ituseVC++

toproducemsequence,selectmsequenceoptimisedselectedpair,produceGoldsequenceand

selectbalancedGoldsequence.

SincewehaveproduceGoldsequence,wecoulduseofMATLABanalysingfrequence

spectrumpropertiesbetweenbalancedGoldsequenceandunbalancedGoldsequence,and

compareresultnowwithresultbefore.Sowecanensurethatthefrequencespectrumproperties

ofbalancedGoldsequenceisbetterthanunbalancedGoldsequence.

Keywords:msequencemsequencecrosscoincidencefunction

msequenceoptimisedselectedpairGoldsequence

balancedGoldsequence

第一章绪论

第一节Gold码的发展与应用

伪随机序列

如果一个序列,一方面它是可以预先确定的,并且是可以重复地产生和复制的;

一方面它又具有某种随机序列的随机特性(即统计特性),我们便称这种序列为伪随

机序列。因此可以说,伪随机序列是具有某种随机特性的确定的序列。它们是由移位

WMUST

S厘即乃/大孝设计(论文)专用纸

寄存器产生的确定序列,然而他们却具有某种随机序列的随机特性。因为同样具有随

机特性,无法从一个已经产生的序列的特性中判断是真随机序列还是伪随机序列,只

能根据序列的产生办法来判断。伪随机序列系列具有良好的随机性和接近于白噪声的

相关函数,并且有预先的可确定性和可重复性。这些特性使得伪随机序列得到了广泛

的应用,特别是在CDMA系统中作为扩频码已成为CDMA技术中的关键问题。

Gold码及其应用

加序列,尤其是加序列优选对,是特性很好的伪随机序列。但是,它们能彼此构成优

选对的数目很少,不便于在码分多址系统中应用。R.Gold于1967年提出了一种基于加序

列优选对的码序列,称为Gold序列。它是加序列的组合码,由优选对的两个加序列逐位

模2加得到,当改变其中一个加序列的相位(向后移位)时,可得到一新的Gold序列。

Gold序列虽然是由曲序列模2加得到的,但它已不是加序列,不过它具有与曲序列优选对

类似的自相关和互相关特性,而且构造简单,产生的序列数多,因而获得广泛的应用。

基于Gold码的扩频数字水印算法[9],提出了一种将Gold码用于水印结构设计的扩

频数字图像水印算法.利用Gold码具有较多独立码的特性,以多位二进制信息为单位对二

值图像水印进行扩频调制,然后将调制信号自适应地加入到载体图像离散余弦变换域的低

频分量系数中。Gold码的应用使得算法可以采用较长的扩频序列,从而提高鲁棒性。为了

进一步减小算法对载体图像大小的要求,而利用Gold码间的近似正交性。在该算法中应用

了码分多址技术来压缩扩频后水印信息的数据量。实验表明,相对于使用m序列或正交序

列作扩频序列的算法,该算法对于抵抗各种噪声、滤波和压缩等攻击具有更好的鲁棒性。

以循环移位方式实现的多址接入、防碰撞方法是一种可以应用于射频识别的射频卡多

址接入方案[11],其实现方法为:射频标签生成一定长度的歌德码(Gold)序列,这个码

长是可以由阅读器(Interrogater)命令设置的,可以通过选择码长改变整个碰撞识别的

耗时。在对于阅读设备的超高频信号进行二相键控或幅值键控等调制方式进行反射调制传

递数据时,采用这个Gold序列信号对标识(Tag)需要发送的数据进行调制发送。接收端

将信号解调之后,首先利用Gold序列优良的自相关性能进行相关运算,并根据计算结果

进行判决是否存在某个Tag,即进行射频识别。

同时多代码序列产生器和采用其的码分多址无线接收机[12],对M列产生器31A的多

个移位级SI、S2、S4的输出进行异或(XRlkXR12),从而得到相对于产生器31A的输

出代码具有所需延迟的M序列,在一示例中,该延迟为3位。同样,组合多个移位级的输

出,并对其进行异或,以提供另一延迟的M序列。对同时延迟的代码产生器31的每个输

出和另一M序列产生器32的输出进行异或,从而同时得到多个Gold码序列。

第二节本文的工作内容

在本文中,我根据Gold码的产生过程,综合运用VisualC++和MATLAB两种工具,得

到平衡Gold码和非平衡Gold码。

首先分析m序列的特性以及产生方法,通过数学方法模拟出现实中寄存器的模型,利

用数学方法把现实方法简化、归纳,最后总结出核心的推演方法。然后利用VC编写程序

在MicrosoftVisualC++平台上,建立、连接程序,最终运行出结果。

园吼理N大发设计(论文)专用纸

其次,分析m序列之间的关系,即m序列的互相关函数。根据m序列互相关函数的定

义,以及m序列互相关函数的计算方法,编写C++程序,计算并显示出两m序列之间的互

相关函数,同时累计两m序列之间对应位相同的值的数量。有关m序列互相关函数,我们

可以用MATLAB画图表现出来,而互相关函数则可以记录在文件中。

再次,给出m序列优选对的概念,分析m序列优选对产生的条件,然后根据这个条件

分别计算每对m序列的发生的反馈系数所产生的两条m序列是否满足以上条件,如若满足

则这对反馈为优选对反馈。以上就是m序列优选对反馈系数搜寻的数学方法,再根据这种

数学方法,联系VC的语法结构,编写出程序将搜寻m序列优选对反馈系数的方法用软件

实现。最后,找到全部m序列优选对并存储到文件中。

最后,就是计算Gold码了。首先我们给出Gold码的定义,根据定义也就找到了Gold

码的产生方法,生成Gold码后,再根据Gold码中0和1的个数计算此Gold码是否为平

衡Gold码。找到了计算的方法,就利用VC编程,产生Gold码,之后再计算其是否为平

衡Gold码。得到平衡Gold码与非平衡Gold码后,利用MATLAB画出两者的频谱,分析两

者对载波的抑制情况。

第二章Gold码的产生原理

第一节m序列的产生原理

m序列的含义

m序列是最长线性移位寄存器序列的简称[1]。顾名思义,m序列是由多级移位寄存器

或其延迟元件通过线性反馈产生的最长的码序列。在二进制移位寄存器中,若n为移位寄

存器的级数,n级移位寄存器共有2匚1位。故产生m序列的线性反馈移位寄存器称作最长

线性移位寄存器。

产生的m序列的移位寄存器的电路结构,即反馈线连接不是随意的,m序列的周期P

也不能取任意值,而是必须满足

WMUST

度即乃/大孝设计(论文)专用纸

P=2n-1(2—1)

式中,n是移位寄存器的级数。

m序列产生原理[1]

图2-1示出的是由n级移位寄存器构成的码序列发生器。它由n个二元存储器和模2

开关网络组成。二元存储器通常是一种双稳态触发器,它的两种状态记作“0”和“1”,

其状态取决于时钟控制下输入的信息(“0”或"1”),例如第i级移位寄存器状态决定于

前一时钟脉冲后的第iT级移位寄存器的状态。

图2-1n级移位寄存器构成的码序列发生器

图中,Co,C,•••(:”均为反馈线,其中C°=C.=1,表示反馈连接。因为m序列是由循环

序列发生器产生的,因此品和配肯定为1,即参与反馈。而反馈系数3,G,•••,Ce若为

1,参与反馈;若为0,则表示断开反馈线,即开路、无反馈线。

一个线性反馈移位寄存器能否产生m序列,取决于它的反馈系数C(Co,•••,C”的总

称)。

反馈系数C是以八进制表示的。首先将每位八进制数写成二进制数的形式。最左边的

1就是C。(C。恒为1),以此向后,依次用二进制数表示G,C2,•••,C„o有了3,C2,

值后,就可构成m序列发生器。

值得指出的是,移位寄存器级数(n)相同,反馈逻辑不同,产生的m序列就不同。

因此,移位寄存器的反馈逻辑决定是否产生m序列。当n级序列的循环移位寄存器状态的

循环次数小于2=1次时,表示该反馈逻辑不能产生m序列。例如当n=3时,反馈系数设为

17,初始状态为001,当再次循环到001时,循环次数为6,小于2"-1=2力1=7,因此反馈

系数为17时,不能产生m序列。

必须注意的是:如果在初始状态每一寄存数均为0,即初始状态为全0,那么移位寄

存器输出恒为0。因此,在码序列发生器中,为避免进入全零状态,必须装有全零检测电

路和启动电路。

m序列的特性

在m序列码中,码元为“1”的数目和码元为“0”的数目只相差1个。

m序列的相关性包括自相关性和互相关性,本文只用到了m序列互相关性的特性,有

WMUST

S厘即乃/大孝设计(论文)专用纸

关m序列互相关性的特性将在下一节讲述。

第二节m序列的互相关函数

两个码序列的互相关函数是两个不同码序列一致程度(相似性)的度量,它也是位移

量的函数。当使用码序列作为区分地址时,必须选择码序列互相关函数值很小的码,以避

免用户之间互相干扰[1]。

互相关函数表达式见式2-2

P

Rx,y)=£x,%(2-2)

i=\

在二进制情况下,假设码序列周期为P的两个m序列,其互相关函数R.,(?)为

Rxy(T)=A-D(2-3)

式中,A为两序列对应位相同的个数,即两序列模二加后“0”的个数;D为两序列对

应位不同的个数,即两序列模二加后“1”的个数。不同的反馈系数可以产生不同的m序

列,其自相关函数(或自相关系数),均满足上述特性,但它们之间的互相关函数是多值

的。

第三节m序列优选对的原理

所谓m序列优选对,是指在m序列集中,其互相关函数最大值的绝对值忸“力(叫…小

于某个值的两条m序列[1]。

设序列{a}对应n阶本原多项式/(X)产生的m序列,序列{b}是对应n阶本原多项式

g(x)产生的m序列。当它们的互相关函数值满足不等式

W+1

,,2V+1n为奇数

心(小叱2-4

22+1n为偶数,但不被4整除

时,/(x)和g(x)产生的m序列{a}和{b}便构成一优选对。

表2T列出了不同码长的m序列优选对的最大互相关值。

表2-1不同码长的m序列优选对的最大互相关值

移位寄存器码长互相关函数归一化

37<55/7

度即乃/大孝设计(论文)专用纸

531<99/31

663<1717/63

7127<1717/127

9511<3333/511

101023<6565/1023

112047<6565/2047

第四节Gold码的产生原理及平衡Gold码的判断

Gold码的产生方法[1]

Gold码是基于m序列优选对产生的。

设序列{a}和{b}为长N=2"-l的m序列优选对。以{a}序列为参考序列,对{b}序列进行

移位i次,得至U{b}的移位序列{bj(i=0,1,•••,N-1),然后与{a}序列模二加后得到一

新的长度为N的序列匕},则此序列就是Gold序列,即

{cj={ai}+{bji=0,1,•••,N(2-6)

对不同的i,得到不同的Gold序列,这样可得2"-1条Gold码,加上{a}序列和{b}序

列,共得到2n+l条Gold码。把这2"+1条Gold码称为一Gold码族。

Gold码的产生方法有两种形式,一种是串联成2n级的线性移位寄存器,另一种是由

两个n级移位寄存器并联而成的。

在本文中,Gold码的产生采用的是两个n级移位寄存器并联而成的方法。这种并联型

移位寄存器产生的Gold码,由图2-2可以看出,由于是在每生成m序列的一位后,即把

两m序列生成的结果进行模二加,因此,用并联方式生成的Gold码序列的长度为2"-1。

图2-2Gold码发生器

-10-

度即乃/大孝设计(论文)专用纸

Gold码的相关特性[1]

由m序列优选对模二加产生的Gold码族中的2"-1条Gold码序列已不再是m序列,也

不具有m序列的游程特性和二值相关特性。但Gold码族中任意两序列之间互相关函数都

满足

M+1

2T+1n为奇数

n+2

广+1n为偶数,但不被4整除

由于Gold码的这--特性,使得Gold码族中任一码都可作为地址码,这样就大大超过

了用m序列做地址码的数量,因此Gold序列在多址技术中得到了广泛应用。Gold码序列

具有三值互相关特性。

平衡Gold码[1]

平衡Gold码是指在码序列中“1”的个数比“0”的个数多一个的码。平衡码有优良

的自相关特性。

在扩频通信系统中,对系统质量影响因素之一就是码的平衡性。平衡性具有更好的频

谱特性。在直扩系统中,码的平衡性与载波抑制度有密切的关系。码的不平衡性增大,直

扩系统的载漏增大,将破坏扩频系统保密性、抗干扰性和抗侦破的能力。表2-2列出了n

为奇数时码的平衡性对载波抑制的关系。由此可见,码的平衡与否对载波抑制有很大关系,

如n=ll,采用平衡码和采用非平衡码,载波抑制只差达16dB之多。

表2-2码平衡性与教波抑制的关系

级数n码长载波抑;1iiJ/dB

平衡非平衡

378.451.46

53114.95.37

712721.048.73

951127.0811.9

11204733.1115

13819139.1318.03

153276745.1521.06

1713,1,07151.1824.07

第五节Gold码产生的整体框图

由前几节的内容看出,Gold码的产生可由图2-3表示出来

-11-

度即乃/大孝设计(论文)专用纸

度即乃/大孝设计(论文)专用纸

N

S厘即乃/大孝设计(论文)专用纸

图3Tm序列流程图

m序列实现的程序

msequence.h文件是主程序的头文件,本文件的功能是通过输入要求的m序列的级数、

初始状态、多项式,来生成m序列。m序列的初始状态为十进制形式,多项式为八进制形

式。

包含的头文件有math,ho

bit8函数的功能是将八进制数据转换为二进制数据。

输入参数说明:m为m序列级数,按要求应为3、5、6、7、9、10、11其中之一;n

为所输入的八进制数。可以利用m级数得到八进制数对应的位数。

输出参数说明:q为将八进制数转换为二进制数后接收二进制数的数组。可以根据m

级数得到二进制数的位数。

//g存放m序列反馈系数的位数。

g=3<=m&&5>=m?2:(6<=m&&8>=m?3:(9<=m&&1l>=m?4:5));

〃将八进制数的各个位存储起来

fbr(i=g-l;i>=0;i—)

au[i]=n%IO;

n=(int)(n/10);

〃分别将八进制数各个位转换为二进制数。

fbr(i=0;i<g;i++)

度即乃/大孝设计(论文)专用纸

for(j=2;j>=0;j-)

ba[i]U]=c%2;

c=(int)(c/2);

x=m;

〃排除得到的二进制数组中低位(即二进制数的高位)中值连续为零的位。

fbr(i=g-l;i>=O;i-)

fbr(j=2;j>=0;j-)

(

if(x<0)

{break;}

*(q+x—尸ba[i皿;

bitio函数的功能是将十进制数据转换为二进制数据。

输入参数说明:m为m序列级数,按要求应为3、5、6、7、9、10、11其中之一;n

为所输入的十进制数。

输出参数说明:q为将十进制数转换为二进制数后接收二进制数的数组。可以利用m

级数决定二进制数组的大小。

1br(i=m-l;i>=0;i—)

{

*(q+i)=n%2;

n/=2;

ifback函数的功能是判断该多项式是否可以产生m序列,如果可以产生m序列则利用

初始状态与多项式产生m序列。

输入参数说明:step为m序列级数,按要求应为3、5、6、7、9、10、11其中之一;

state为二进制初始状态数组;back为二进制多项式数组。

输出参数说明:ms数组用于接收产生的m序列。

返回值说明:g为1时表示该多项式不能产生m序列,g为0时表示该多项式可以产

生m序列。

/"gather为各反馈系数与状态的模二和的奇偶,奇时为1,偶时为0;data数组用于

记录m序列产生过程中各寄存器状态。*/

for(j=0;j<pow(m,step)-1

WMUST

度即乃/大孝设计(论文)专用纸

/*将每次循环产生m序列时的寄存器状态由二进制转换为十进制存储起来。每

当循环一次后,比较当前寄存器状态是否与之前产生的状态相同,如相同则表

示该多项式不能产生m序列。*/

fbr(i=O;i<stcp;i-H-)

data[j]=dataLj]*2+statc[i];

)

fbr(i=O;i<j;i++)

if)[data[j]==data[i])

{g=l;break;}

if(g==l)

{break;}

//m序列为每次循环后第n位寄存器的值。

*(ms-ij)=state[step-1];

〃利用多项式与寄存器状态的模二加和判断反馈为0还是为lo

for(gathcr=O,i=stcp;i>O;i—)

{gather+=state[i-l]*(*(back+i));}

for(i=step-1)

{state[i]=state[i-l];}

if(gather%2==0)

{state[O]=O;}

{state[O]=l;}

integer函数的功能是综合调用各种函数,产生m序列。

输入参数说明:m为m序列级数,按要求应为3、5、6、7、9、10、11其中之一;state

为二进制初始状态数组;back为二进制多项式数组。

输出参数说明:ms数组用于接收产生的m序列。

返回值说明:返回值为1时不产生m序列,返回值为0时产生m序列。

〃:first11存储初始状态,secondll保存firstll中的值,防止其循环移位。

bitl0(m,state,first11);

for(j=0;j<m;j4-+)

(

second1l[j]=first11[j];

WMUST

度即乃/大孝设计(论文)专用纸

bit8(m,back,codel1);

returnifback(m,second11,codc11,ms);

第二节m序列的互相关函数的程序实现

m序列互相关函数实现的流程图

度即乃/大孝设计(论文)专用纸

N

Y

图3-2m序列互相关函数的流程图

m序列互相关函数实现的子程序

xiangguan.h文件是主程序的头文件。本文件的功能是:一为判断两m序列互相关函

数是否满足优选对要求,二为计算两m序列的互相关函数值。

包含的头文件有1iostream

2math.h

hu函数的功能是判断两m序列互相关函数是否满足优选对要求及计算两m序列的互相

关函数值。

输入参数说明:disg用于区分工作方式,当disg为1时实现功能为判断两m序列互

相关函数是否满足优选对要求,当disg为0时实现功能为计算两m序列的互相关函数值;

口为m序列级数,按要求应为3、5、6、7、9、10、11其中之一;msl、ms2为用于接收m

序列的数组;z用于接收两m序列的互相关函数值。

输出参数说明:q为将八进制数转换为二进制数后接收二进制数的数组。可以根据m

级数得到二进制数的位数。

返回值说明:g主要用于第一种工作方式,当g为0时表示两m序列互相关函数不满

足优选对要求,当g不为0时表示相关函数不满足优选对要求,且g为此级最大互相关函

数值

〃判断级数m为奇数还是偶数,分别调用两公式。

if(m%2==l)

(

”+1

〃公式一:归“,422+1〃为奇数

x=(m+l)/2;

w=pow(n,x)+l;

)

else

{

n+2

〃公式二:\RaMr)\<2^+1〃为偶数,但不被4整除

x=(m+2)/2;

w=pow(n,x)+1;

-18-

度即乃/大孝设计(论文)专用纸

fbr(i=0;i<pow(n,m)-1

//t用于记录两m序列对应位相同的个数。

t=0;

〃记录对应位相同个数,计算对应位相同的与不同的之差。

for(j=Oy<pow(n,m)-1;j++)

{

if(msl[j]=ms2|j])

{t++;}

}

//p用于记录两m序列对应位相同与不同位的个数之差。

p=n*t-(pow(n,m)-1);

z[i]=P;

〃在第一种工作方式中,逐位判断互相关函数是否满足优选对要求。

ifi(disg=1&&abs(p)>w)

(

g=l;

break;

}

u=ms2[0];

fk)r(j=0;j<pow(n,m)-2;j++)

{

ms2[j]=ms2[j+l];

}

q=pow(n,m)-2;

ms2[q]=u;

)

returng*w;

m序列互相关函数实现的主程序

huxiangguan.cpp文件是实现m序列互相关函数的主程序,本文件功能是通过调用m

序列产生文件,首先判断此多项式(即反馈系数)能否产生m序列,如能产生则生成该多

项式对应的m序列。然后调用hu函数,计算两m序列互相关函数,将相关性结果记录在文

件中。

包含头文件:fstream

msequence

xiangguan

WMUST

S厘即乃/大孝设计(论文)专用纸

〃将两m序列互相关函数记录在xiangguan.txt中。

ofstreamoutfile("xiangguan.txtn,ios::out);

/*statekstate2数组分别存储两m序列初始状态,codel、code2数组分别存储

两序列反馈系数。*/

cout<<"输入m序列级数”;

cin»m;

coutwendlw”输入序列1初始状态”;

cin»state1;

cout«endlvv”输入序歹U2初始状态”;

cin»state2;

coutwendlw”输入序歹ij1反馈系数”;

cin»code1;

coutvvendlw”输入序列2反馈系数”;

cin»code2;

〃产生m序列。

g=integer(m,statel,code

h=integer(m,state2,code2,m2);

if(g=O&&h==O)

(

//计算两m序列互相关性。disg表示工作方式。

coutvv”两m序列互相关性见文件xiangguan.txtn«endl;

hu(disg,m,ml,m2,z);

fbr(i=0;i<pow(n,m)-l;i++)

(

//z数组存储两序列互相关函数。

outfile«z[i]«"n;

)

}

else

{

coutw”不能产生m序列"vvendl;

-20-

迎即4)火孝设计(论文)专用纸

第三节m序列优选对的程序实现

搜寻m序列优选对的流程图

搜寻m序列优选对的流程图如图3-3所示。

-21-

迎即4)火孝设计(论文)专用纸

图3-3搜寻m序列优选对

-22-

括)火季

S厘即乃/大孝设计(论文)专用纸

搜寻m序列优选对的程序

youxuan.cpp文件是搜寻m序列优选对主程序,本文件的功能是通过调用m序列产生

文件,首先判断各级各多项式(即反馈系数)固定初始状态时能否产生m序列,如能产生,

则生成该多项式对应的m序列。产生m序列时,每次都先固定一个多项式的m序列,然后

依次产生该级其他多项式的m序列。每产生出对应的两条m序列,就调用m序列互相关函

数的文件,判断这两条m序列是否为优选对。如此两m序列为优选对,则将这两条m序列

对应的多项式写入文件中记录下来。最终,在文件中记录下所有m序列优选对对应的多项

式(以八进制形式)。

包含头文件:fstream

xiangguan.h

msequence.h

ttoe函数的功能是将二进制数转换为八进制数。

输入参数说明:m为m序列级数,按要求应为3、5、6、7、9、10、11其中之一。

输出参数说明:q数组用于接收要转换的二进制数。

返回值说明:返回值result为转换后的八进制数。

/*t中存储八进制数的位数,p用来存储欲转换的二进制数的最高位是一位还是

两位,add数组用于接收转换后的八进制数。*/

t=m>=3&&m<=5?2:(m>=6&&m<=7?3:(m>=9&&m<=l1?4:5));

p=(m+l)%3;

if(p!=O)

{

fbr(i=t-l;i>O;i—)

(

〃将划分为三位的二进制数的部分转换为八进制数。

for(j=0;j<3;j++)

{

add[i]=add[i]*2+*(q+3*(i-l)+p+j);

)

)

〃将未划分为三位的二进制数的部分转换为八进制数。

fbr(i=O;i<p;i++)

(

add[0]=add[0]*2+*(q+i);

//将全部二进制数划分为三位的形式转换为八进制数。

fbr(i=t-l;i>=O;i-)

-23-

S厘即乃/大孝设计(论文)专用纸

for(j=0;jv3jH)

(

add[i]=add[i]*2+*(q+3*i+j);

〃将八进制的数组转换为八进制数。

fbr(i=O;i<t;i-H-)

{

result=result*10+add[i];

}

returnresult;

ppair函数名的功能是将所有m序列优选对对应的多项式记录在文件中。

输入参数说明:m为m序列级数,按要求应为3、5、6、7、9、10、11其中之一。

codeKcode2数组分别存储序列1、序列2的二进制反馈系数,msl、ms2数组中分别

存储两m序列,gold数组存储生成的gold序列,move数组用于接收hu函数的参数(满

足格式要求),disg用于区分hu函数工作方式,first存储两序列初状态,codedl、coded2

存储八进制反馈系数,g用于判断两m序列是否满足优选对要求,h用于记录该级m序列

优选对最大互相关值,v用于控制基准多项式只输出一次。

〃将生成的优选对存入文件mpair中。

ofstreamoutfile(,'mpair.txt,,,ios::app);

y=m+l;

/*多项式的尝试选择由该级第0位及第n位为1时,其余为0时开始,到全为1时结

束(例:5级,由100001开始,到111111结束),期间保持第0位及第n位为1。当反馈

系数为十进制时由33开始每次循环加2,到127结束。*/

〃先以一个多项式为本原多项式,查找对应的配对多项式。

fbr(i=pow(n,m)+1;i〈pow(n,y);i=i+2)

(

v=0;

〃生成十进制反馈系数。

bit10(y,i,code1);

〃生成八进制反馈系数。

coded1=ttoe(m,code1);

〃判断是否生成m序列。

if(integer(m,first,coded1,ms1)==1)

{continue;}

WMUST

度即乃/大孝设计(论文)专用纸

〃查找本原多项式对应的配对多项式。

for(j=i+2j<pow(n,y);j=j4-2)

(

g=0;

bitl0(y,j,code2);

coded2=ttoe(m,code2);

if(integer(m,first,coded2,ms2)==1)

{continue;}

〃判断是否满足优选对要求。

g=hu(disg,m,ms1,ms2,movc);

if(g!=O)

{h=g;}

if(v=0&&g!=0)

{

〃判断本原多项式是否已记录过。

v=l;

outfile«codedl«'*

}

if(g!=O)

(

outfile«coded2«"

}

}

if(v=l)

{

outfile«endl;

}

)

outfile«endl;

outfile.close();

returnh;

//主函数功能生成各级m序列优选对多项式。

〃生成m序列级数的限定。

intjishu[7]={3,5,6,7,9,10,ll);

//记录每级m序列优选对最大互相关值

ofstreamoutfile(,'max.txtH);

//将各级m序列优选对对应的多项式记录下来

fbr(i=0;i<7;i-H-)

度即乃/大孝设计(论文)专用纸

k=ppair(jishu[i]);

ou

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论