MATLAB仿真m序列和Gold序列自相关与互相关

合集下载

基于matlab的gold码的生成及相关性分析

基于matlab的gold码的生成及相关性分析
级寄存器为例并组其中的一组优选对
clc;
N=7; %以7级寄存器为例,并组其中的一组优选对:211,,217
connections=gfprimfd(N,'all');
f1=connections(4,:); %取一组本原多项式序列,211
f2=connections(16,:); %取另一组本原多项式序列,217
registers1=[0 0 0 0 0 0 1];%给定寄存器的初始状态
registers2=[0 0 0 0 0 0 1];%取相同的初始状态
L=2^N-1; %周期长度
sቤተ መጻሕፍቲ ባይዱm2=0;
sum1=0;
for k=1:L
seq1(k)=registers1(N); %第一组m序列
seq2(k)=registers2(N); %第二组序列
gold=mod(z,2); %模2运算
gold=1-2*gold; %转换为2值电平
disp(gold);
R=xcorr(gold,'unbiased'); %自相关
R=R/max(R); %归一化
figure;plot(R);title('gold序列的自相关函数');
s=fftshift(abs(fft(gold,2*L)).^2); %求功率谱
registers1(t)=registers1(t-1);
registers2(t)=registers2(t-1);
end
registers1(1)=sum1;
registers2(1)=sum2;
sum2=0;
sum1=0;
end
disp(f1);

任意阶平衡gold码的产生及其互相关性(代码)

任意阶平衡gold码的产生及其互相关性(代码)

任意阶平衡g o l d码的产生及其互相关性(代码)本页仅作为文档页封面,使用时可以删除This document is for reference only-rar21year.Marchclear all;n=input('请输入移位寄存器的级数n,n是大于等于2的整数,且n不能为4的倍数,为4的倍数不保证结果正确: ');%五级移位%N=2^n-1;%周期为N%x=gfprimfd(n,'all');%产生级数为n的本原多项式%[row,column]=size(x);if(n==2)%n为2是不能用下面求y的公式,作为特例直接写入%y=[1,1];endif(n>2)y=x(1:row,2:column);%本来是nXn矩阵,第一列都是1,不要了,现在是nX(n-1)矩阵%endm=zeros(row,N);%求出所有m序列%for r=1:row%从1到第row行%register7=[zeros(1,n-1),1];%寄存器7,表示移位寄存器的初态除了最后一位,其余全0%m(r,1)=register7(n);%m(r,1)是的第r行第一列的取值%for i=2:1:N%从2到N,连续取值%register8(1)=mod(sum(y(r,:).*register7),2);%移位寄存器的向量与反馈系数的向量点乘后,新向量的所有数模二加,得到一个数作为寄存器8的第一位%for j=2:1:n%从2到N,连续取值%register8(j)=register7(j-1);%确定后n-1位%endregister7=register8;%保存移位寄存器现在的值到register1%m(r,i)=register7(n);%输出的书,从第2位开始%end %现在得到了第r行的m序列%end %现在得到了第1到第r行的m序列%if(n>2)%列出m1最大行数,超过会报错%fprintf('m序列的行数小于等于%1.0f',row)%显示之后要输入m1的要求%endif(n==2)%列出m1最大行数,超过会报错%fprintf('m序列的行数小于等于1')%显示之后要输入m1的要求%endfprintf('\n')%换行%pass=1;%判断m1序列是否有优选对,若有,pass在下面循环中置0%while(pass==1) %若m1没有优选对,则循环%nom1=input('请从矩阵y中选出你所要m1序列本愿多项式的行数: ');%输入一个数赋给nom1,number of m1,即m1的行数%m1=m(nom1,:);%得到了你指定的m1序列%rm=zeros(1,2^n-1);%两个m序列的互相关性,用来判断m优选对%s=zeros(1,2^n-1);%m优选对中移位后相同数的个数%d=zeros(1,2^n-1);%m优选对中移位后相同数的个数%register2=zeros(1,2^n-1);%寄存器2,用以验证m序列优选对时移位%cmatch=0;%counter match优选对匹配的数量%match=zeros(1,N);%匹配优选对所在的行数%matchs=zeros(1,N);%match sequence匹配优选对的序列%for k=1:row%对m序列每一行循环%m2=m(k,:);%把m序列的第k行赋给m2%register1=m2;%寄存器1,用以验证m序列优选对时移位%for i=1:2^n-1A=mod((m1+register1),2);%移位加N次%for j=1:2^n-1%逐位判断m1与m2是否相同,判断N次%if A(j)==0%若第j位位相同%s(i)=s(i)+1;%相同数加1,之后清零%endd(i)=N-s(i);%不同数减一,因为是s(i)的因变量,不用清0%endrm(i)=s(i)-d(i);%rm是互相关函数,因为是s(i)和d(i)的因变量,不用清0%s(i)=0;%必须清0,不然k的循环序列就会叠加%register2(1)=register1(N);%以下三行为循环右移%register1(2:N)=register1(1:N-1);register1(1)=register2(1);endmaxrm=max(abs(rm));%maxrm为互相关值的最大绝对值,因为是rm的因变量,所以不用清0%if(mod(n,2)==1)%对2除n求余,判断n的奇偶性%if(maxrm==2^((n+1)/2)+1)%奇数判断互相关最大绝对值是否满足书上条件4—37%cmatch=cmatch+1;%匹配(即互为优选对)个数加1%match(1,cmatch)=k;%匹配行数写入match序列中%matchs(cmatch,:)=m2;%匹配序列写入matchs矩阵中%endendif(mod(n,2)==0)%同上%if(maxrm==2^((n+2)/2)+1)%偶数判断互相关最大绝对值是否满足书上条件4—37%cmatch=cmatch+1;match(1,cmatch)=k;matchs(cmatch,:)=m2;endendendif(cmatch~=0)%若m1有优选对,cmatch不等于0%pass=0;%pass置0,while不在循环%endif(cmatch==0)%若m1没有优选对,cmatch等于0%fprintf('m1没有优选对,请重新选择m1行数')%输出括号中的数%fprintf('\n')%换行%endendfprintf('下列数字表示与m1互为优选对的m序列的行数')%输出括号中的数% match(1:cmatch)%因为后面没加分号,执行程序时会显示match序列的第1到第camtch列%choice=input('是否依次显示m1的优选对y/n:','s');%按括号中文字内容从键盘输入一个置%if(choice=='y')%输入y执行,输入其他任何数不执行%matchs%matchs,match sequence,表示m1的所有优选对%endnom2=input('请从矩阵y中选出你所要m2序列的行数: ');%同中文%m2=m(nom2,:);%得到m2,用优选对m1,m2,生成下面的gold序列,并选出平衡gold序列%gold=zeros(N+2,N);%一共N+2个gold序列,每个周期为N,设(N+2)*2的矩阵%register3=m2;%给寄存器3赋值m2,下面循环右移要用%register4=zeros(1,N);%给寄存器4设置成1xN的矩阵,下面循环右移要用%for i=1:N%循环N次%gold(i,:)=mod((m1+register3),2);%两m序列逐位模二加%register4(1)=register3(N);%下面三行为循环右移%register3(2:N)=register3(1:N-1);register3(1)=register4(1);end;gold(N+1,:)=m1;%m序列包含生成它的2个m序列%gold(N+2,:)=m2;c1=zeros(1,N+2);%代表1的个数counter 1%c0=zeros(1,N+2);%代表0的个数counter 2%cbg=0;%代表平衡gold序列的个数counter balence gold%bg=zeros(1,N);%代表平衡gold序列%for i=1:N+2%开始找,要找N+2行%for j=1:N%弄出来一个全1的向量,长度为N,命名为judge函数judge(1,j)=0;ends2=mod((gold(i,:)+judge),2);%s2是一个gold序列与全1序列模二加得到的序列%for k=1:N %看有多少个1%if s2(k)==1c1(i)=c1(i)+1;endendfor k=1:N %有多少个0%if s2(k)==0c0(i)=c0(i)+1;endendif c1(i)-c0(i)==1%1的个数比0多1,找到一个平衡序列%cbg=cbg+1;%平衡gold序列个数加1,可以看是不是约50%或75%是平衡的%bg(cbg,:)=gold(i,:);%这个个平衡序列复制到bg中%endendfprintf('已生成%1.0f个平衡gold序列',cbg)fprintf('\n')。

基于Matlab的m序列生成及性能仿真

基于Matlab的m序列生成及性能仿真
制转换为8进制
PN_mod8=reshape(PN—mod8,1,512); end
location=1; k=1: for i=1:length(reg_a11)
if reg__test==reg_all(i,:) location(k)=i; k=k+1:
%寻找初始状态,以验证其周期
end
end
合伪随机序列的基本性质,可以满足扩频序列的设计需求。
基于以上m序列移位寄存器结构,可在Matlab中用M语言编程
产生113序列的程序代码:
reg=[1 0 1 1 1 0 1 0 1 1 0 1];
%从高位到低位
re。gLtest=reg;
eoeff=[1 0 0 0 0 0 1 0 1 0 0 1 11;%高位到低位
%计算In序列自相关性
subplot(2,1,1);
plot(j,temp/length(n)); tide(7自相关性,);
axis([一1000 1000—0.1 1.2]);
酣d on; 同理可计算m序列互相关性程序。
运行程序后可返回D1序列相关函数如图2所示。
由图2可以看出,m序列具有良好的自相关特性和互相关性,符
关和互相关特性【”。
1.m序列简介
m序列是最长线性移位寄存序列的简称.是由带线性反馈的移存
器产生的周期最长的序列。它是周期为N=2r_1的线性伪随机序列,r
是移位寄存器阶数。 m序列的性质有闭:
a)均衡性,即在m序列的一个周期中,…1’和…0’的数目基本相等。
b)长度为k的游程数目占游程总数的24.其中“+”游程和“一”游程
i=l;
for k=1:(2^length(reg))
%计算一个周期的rfl序列输出

几种常用扩频序列的性能分析及仿真

几种常用扩频序列的性能分析及仿真

几种常用扩频序列的性能分析及仿真张莉【摘要】Spread spectrum codes play an important role in spread spectrum system.In this paper,we use MATLAB to generate some common spread spectrum codes and analyse their auto correlation and cross correla-tion,such as M sequences, Gold sequences and Kasami sequences.%扩频码对扩频通信的性能起着重要作用,一般用计算机实现扩频码的设计与性能仿真。

利用Matlab工具编制了m序列、Gold序列和Kasami序列的生成程序及自相关、互相关函数的计算程序。

程序简单,只需输入线性移位寄存器的反馈系数,即可输出相应的扩频码,进而得出扩频码的相关性、平衡性等性能指标。

【期刊名称】《淮阴师范学院学报(自然科学版)》【年(卷),期】2015(000)002【总页数】4页(P130-133)【关键词】扩频通信;扩频码;m序列;Gold序列;Kasami序列;仿真【作者】张莉【作者单位】南京航空航天大学金城学院,江苏南京 211156【正文语种】中文【中图分类】TN79扩频通信与常规通信的根本区别是信息在发送之前进行了频谱扩展.频谱扩展是通过高速的扩频码与低速的信息码直接相乘实现的.扩频通信具有信号频谱宽、波形复杂、安全隐蔽等显著特点,大大增加了对信号进行截获、检测、测向定位和干扰的难度.扩频码对扩频通信的性能具有决定性的重要作用,抗干扰、抗噪声、抗截获、信息数据隐蔽和保密、抗衰落、多址通信、实现同步与捕获等都是与扩频码的设计密切相关的.扩频通信对扩频码的要求是:1)具有尖锐的自相关函数,而互相关函数应接近于零;2)有足够长的码周期,以确保抗侦破、抗干扰的要求;3)序列平衡性好;4)工程上易于产生、加工、复制和控制.扩频码选用伪码(PN码)用于扩展频谱通信.所谓伪码,即伪随机编码,也称伪随机序列、伪噪声码,是由近似随机出现的、有一定规律并可复制的、1和0数目大致相等的序列组成.在扩频系统中,对伪随机序列而言,最关心的问题就是其相关特性,包括自相关性及互相关性.下面给出这些相关函数的定义.设有两条长为N的序列{a}和{b},序列中的元素分别为ai,bi,(i=1,2,3,…,N).则序列的自相关函数定义为:序列{a}和{b}的互相关函数定义为本文主要讨论由线性移位寄存器产生的线性移位寄存器序列,包括m序列、Gold 序列和Kasami序列.1.1 m序列的相关性仿真分析如果一个n级线性移位寄存器产生的序列的周期P=2n-1,那么该序列就叫做最长线性移位寄存器序列,简称m序列.m序列的平衡性较好,在每个周期内,0比1少出现次数少一次.根据式1,可推出其自相关函数为这个公式说明,m序列具有双值自相关函数特性.下面给出了6级m序列a的自相关函数的Matlab仿真图(图1),为了更好的说明m序列的自相关特性,图中绘出了m序列2个周期的自相关函数.由图1可以看出,m序列的自相关函数呈三角形.具有这种自相关函数的伪码,在通信和测距系统中是很有用的.例如,只要有两个通信系统的码序列相移在1个bit 以内时,则它们就可以同时工作,这就能够实现同一发射频域内的多址通信.在测距系统中,利用相关峰值作为测量标记,可以保证距离测量精确到1bit之内.在测量中,只要调整相关检测器,使它在±1bit检测电平之间识别,而对其他的较低和较高的电平不识别,就能达到测量高度精确的目的.但是m序列(周期相同)之间的互相关性不够理想,当作为扩频码使用时,会增大多址干扰.图2是由Matlab程序产生的6级的m序列a和b的互相关函数图像.从图2中可以看出,它们的互相关函数值包括3个:{-1,-17,15},并且-1所占的比例很小,这样能组成互相关函数值小的m序列集的数量很少,无法满足多用户的需求.1.2 Gold序列的相关性仿真分析Gold序列是m序列的组合序列,由同步时钟控制的一对m优选对逐位模2加得到,Gold序列的周期为P=2n+1.其产生模型如图3所示.Gold序列虽然是由一对m序列模2加得到的,但它已经不是m序列了,不过仍然具有与m序列近似的相关特性,各个序列之间的互相关特性与原来两个m序列之间的互相关特性一样,最大的互相关值不会超过原来的两个m序列最大互相关值.Gold序列的特性主要有以下三点:1)周期为P=2n+1,具有比m序列大得多的独立码组.2)一周期内任意一对序列的互相关函数值都是三值的,其可能值为{-1,-t(n),t(n)-2},其中t(n)如下式:3)Gold序列的每个码组的自相关函数也从集合{-1,-t(n),t(n)-2}中取值,因此自相关函数的峰值以t(n)为上界.Gold序列虽然具有平衡性良好、序列数量较多、自相关特性良好,但其互相关特性与m序列类似,即互相关值小的Gold序列集合较少.1.3 Kasami序列的相关性仿真分析Kasami序列与Gold序列类似,也是一种在m序列基础上构造出来的扩频序列.它继承了m序列的良好的随机特性,同时又具有自、互相关特性均较好的的特点,且数量也很可观.Kasami序列有大小两类,前者序列数较多,后者较少.Kasami 序列的相关性能比较好,其中Kasami小集合序列的相关性能比Kasami大集合序列还要好.限于篇幅,本文只讨论Kasami小集合序列的的相关性.Kasami小集合序列的自相关函数和互相关函数值都在下列集合中:{-1,-s(n)), s(n)-2}(其中s(n)=1+2n/2).当n=6时,s(n)=9,因此其自相关函数和互相关函数的取值范围是{-9,-1,7},图6和图7是由Matlab程序产生的6级的Kasami小集合序列的自相关函数和互相关函数图像.由图6和图7可以看出,Kasami小集合序列的互相关峰值较前两者小,互相关特性更为优良.本文从扩频通信中对扩频码的基本要求入手,讨论了扩频码中常用的m序列、Gold 序列和Kasami序列,并用Matlab对以上序列的相关性进行了仿真.本文内容对工程技术人员具有较强的参考价值,对开展相关领域研究也具有一定的借鉴意义.【相关文献】[1]霍姆斯J K.相干扩展频谱系统[M].北京:国防工业出版社,1991.[2]李承恕,赵荣黎.扩展频谱通信[M]. 北京:人民邮电出版社,1993.[3]张冬辰,周吉.军事通信[M]. 北京:国防工业出版社,2008.[4]张志涌,徐彦琴.Matlab教程[M]. 北京:北京航空航天大学出版社,2001.[5]王会华,李宝平.m序列发生器的设计与实现[J].北京电子科技学院学报,2007,15(2):58-62.[6]张莉.Kasami序列的产生与性能分析[D]. 南京:南京航空航天大学,2007.。

m序列与Gold序列比较

m序列与Gold序列比较

第一章介绍了无线扩
频通信技术的发展状态以及国内外开发扩频通信芯片的现状,并给出了本论文的研究内容和安排。
第二章主要介绍了扩频通信的基本原理,主要
包括扩频通信的理论基础和分类。并结合QPSK调制方式对本论文重点研究的直接序列扩频通信方式的数学模型进行了分析。
第三章主要介绍了扩
频通信关键技术之一——伪随机序列的产生与性质。从最基础的移位寄存器序列分析引入m序列,并可以通过选择两个m序列优选对相加产生Gold序列。
首先,研究了直接扩
频通信系统中比较常用的各种伪随机序列的特性以及它们的产生方法,着重介绍了m序列,Gold序列,Walsh码和复合序列并对它们的性能做了比较,最
难得到 $",1$,"#,,#00,0"","%#$…位的 - 序列。
另外,- 序列的自相关函数由下式计算:
{ !(!)’
" "
+ 2
# , ":“%”的位数 # # :“"”的位数
令 $ ’ " 2 # ’ #% + "
则:
{ !(!)’
",! ’ %
+
" $
,!
"
%
设 % ’ $,$ ’ #$ + " ’ ,,则:
长周期的序列。对于何种抽头能产生何种长度和结
构的码序列,已 经 进 行 了 大 量 的 研 究 工 作。 现 在 已
经得到 $ . "%% 级 - 序 列 发 生 器 的 连 接 图 和 所 产 生
的 - 序列的结 构。 例 如 / 级 移 位 寄 存 器 产 生 的 "0
位的 - 序列之一为 """"%"%""%%"%%%。 同 理,我 们 不

gold序列的生成与相关特性仿真

gold序列的生成与相关特性仿真

Gold序列生成与相关性仿真1.1 references[1] 基于Matlab的Gold码序列的仿真与实现.[2] Code Selection for CDMA Systems.1.2 m序列的生成原理1.2.1生成本原多项式利用Matlab编程环境求解本原多项式,其运行结果如表1所示.选择n=7,采用7级移位寄存器,产生的序列周期是127,其程序如下所示.N=7; %以7级寄存器为例,并组其中的一组优选对:211,,217connections=gfprimfd(N,'all');表(1)n=7 本原多项式上面的多项式中,仅有9个是独立的.因为第一行和第十行,第二行和四行,第三行和第十六行,第五行和第八行,第六行和第十四行,第七行和第十三行,第九行和第十八行,第十一行和第十二行,第十五行和第十七行是两两对称的.用八进制数表示时,所选择的本原多项式为211、217、235、367、277、325、203、313和345共9条.在这9条本原多项式中,选择一个基准本原多项式,再按要求选择另一本原多项式与之配对,构成m序列优选对,对7级m序列优选对如下表:表(2)n=7 m序列所以优选对1.2.2构成移位寄存器根据产生Gold码序列的方法,从上述本原多项式中选择一对m序列优选对,以211作为基准本原多项式,217作为配对本原多项式,通过并联结构形式来产生Gold序列,生成gold 序列的结构如图(6)所示:图(6)Gold序列生成结构1.3 自相关函数仿真参数及初始值设定如下:N=7; %以7级寄存器为例,并组其中的一组优选对:211,,217connections=gfprimfd(N,'all');f1=connections(4,:); %取一组本原多项式序列,211f2=connections(16,:); %取另一组本原多项式序列,217registers1=[1 0 0 0 0 0 0];%给定寄存器的初始状态registers2=[1 0 0 0 0 0 0];%取相同的初始状态生成的gold 序列自相关函数如图(7)、(8)所示图(7) Gold 序列周期自相关函数结论:自相关函数取值集合{127,15,-1,-17}图(8)Gold 序列非周期自相关函数020406080100120140gold 序列周期自相关函数020406080100120140-40-2020406080100120140gold 序列非周期自相关函数1.4 互相关函数仿真时改变m序列寄存器初始状态,从而生成两个gold序列,求得互相关函数如图(9)(10)所示。

基于Matlab的m序列相关特性的仿真

基于Matlab的m序列相关特性的仿真

电子信息科学与技术专业课程设计题单班级0982081学生课程名称专业课程设计课题基于Matlab的m序列相关特性的仿真设计要求基于Matlab语言编程,对m序列相关特性进行仿真,并用Matlab GUI工具设计图形界面显示结果,具体要求如下:1、给定m序列S1、S2,码长为10232、计算m序列S1的自相关函数3、计算m序列对S1、S2的互相关函数4、界面设计要有按钮控件以及一、二级菜单课题发给日期2012.07.04课程设计完成日期2012.07.29指导教师评语:评分:摘要m 序列是最长线性反馈移存器序列的简称,它是由带线性反馈的移存器产生的周期最长的一种序列。

本文主要是介绍MATLAB 在m 序列的产生及其相关特性分析方面的应用,研究了关于matlab完成m序列simulink 硬件仿真方法,并且利用MATLAB 对不同长度的几种m 序列进行相关特性的分析。

对m序列的原理、结构、性质进行了分析,在matlab中采用编程和simulink动态仿真功能2种方式实现m序列,仿真实验表明,这两种方法简单,易于实现,可移植性较强,具有可行性和设计的合理性。

[关键词]m 序列;simulink 硬件仿真;自相关目录第一章设计内容及要求第二章m序列设计方案的选择第三章m序列的产生及性质3.1 m序列的产生原理、结构及产生3.2 m序列的基本性质3.3 生成m序列的模块第四章 m序列构造其他序列第五章程序调试及运结果5.1仿真设计流程图5.2实验的调试与运行结果5.3 错误排除第六章结论参考文献附录第一章设计内容及要求基于MATLAB产生m序列要求:1.通过matlab编程产生m序列的产生原理及其产生方法。

2.对特定长度的m序列,分析其性质,及其用来构造其它序列的方法。

第二章m序列设计方案的选择2.1 方案一MATLAB编程非常简单,无需进行变量声明,可以很方便的实现m 序列。

2.2 方案二图2.1 Simulink实现m序列Simulink是MATLAB最重要的组件之一,它提供了一个动态系统建模,仿真和综合分析的集成环境。

m序列产生及自相关和互相关函数曲线

m序列产生及自相关和互相关函数曲线

1、m序列产生及自相关和互相关函数曲线function PN=makem(x) %m序列产生函数ss1=num2str(x);ss2=dec2bin(base2dec(ss1,8)); %先把八进制转换为十进制,再把十进制转换为二进制G=2^(length(ss2)-1)-1; %最大周期sd=[];for j=1:(length(ss2)-2)sd=[sd 0];endsd=[sd 1]; %寄存器初始状态0 0 0...0 1PN=[];for j=1:GPN=[PN sd(length(sd))]; %m序列输出的第一位onenum=[];for jj=1:length(ss2)if str2num(ss2(jj))==1onenum=[onenum jj-1]; %存储二进制反馈系数里面“1”的位置-1,即进行异或的位置endendtemp=sd(onenum(2));for jj=3:length(onenum) %根据“1”的位置进行异或运算temp=xor(temp,sd(onenum(jj)));endfor jj=length(ss2)-1:-1:2 %移位(序列后一位值等于前一位值)sd(jj)=sd(jj-1);endsd(1)=temp; %序列第一位等于反馈出来的值endfunction mandzi(ss) %m序列曲线及自相关函数曲线绘图函数ss1=num2str(ss);ss2=dec2bin(base2dec(ss1,8)); %转换为二进制G=2^(length(ss2)-1)-1; %最大周期PN=makem(ss); %调用函数计算m序列pp=(-2).*PN+1; %0→1 1→-1pp2=[];for tao=-(G-1):G-1pp1=circshift(pp,[0,tao]);pp2=[pp2 sum(pp.*pp1)/G]; %计算自相关函数endsubplot(2,1,1)stem(PN)grid on;title(['使用生成多项式(',num2str(ss),')8=(',ss2,')2产生的m序列']) subplot(2,1,2)tao=-(G-1):G-1;plot(tao,pp2)grid on;title('自相关函数曲线')function huxg(x,y) %m序列互相关绘图函数x1=num2str(x);x2=dec2bin(base2dec(x1,8)); %转换为二进制G1=2^(length(x2)-1)-1; %最大周期y1=num2str(y);y2=dec2bin(base2dec(y1,8)); %转换为二进制G2=2^(length(y2)-1)-1; %最大周期if G1~=G2error('周期不同,无法计算')returnendpn1=makem(x); %分别调用函数计算出m序列pn2=makem(y);pp=[];for tao=-(G1-1):G1-1pn1tao=circshift(pn1,[0,tao]); %计算互相关函数%pp=[pp sum(pn2.*pn1tao)/G1];pp=[pp sum(pn2.*pn1tao)];endtao=-(G1-1):G1-1;plot(tao,pp)grid on;title(['反馈系数(',num2str(x),')8和(',num2str(y),')8的互相关函数曲线'])2、Rake接收机仿真clear all;clcNumusers=1;Nc=16; %扩频因子ISI_Length=1; %每径延时为ISI_Lengh/2 EbN0db=[0:1:30]; %信噪比,单位dBTlen=8000; %数据长度Bit_Error_Number1=0; %误比特率初始值Bit_Error_Number2=0;Bit_Error_Number3=0;power_unitary_factor1=sqrt(6/9); %每径功率因子power_unitary_factor2=sqrt(2/9);power_unitary_factor3=sqrt(1/9);s_initial=randsrc(1,Tlen); %数据源wal2=[1 1;1 -1]; %产生walsh矩阵wal4=[wal2 wal2;wal2 wal2*(-1)];wal8=[wal4 wal4;wal4 wal4*(-1)];wal16=[wal8 wal8;wal8 wal8*(-1)];s_spread=zeros(Numusers,Tlen*Nc); %扩频ray1=zeros(Numusers,2*Tlen*Nc);ray2=zeros(Numusers,2*Tlen*Nc);ray3=zeros(Numusers,2*Tlen*Nc);for i=1:Numusersx0=s_initial(i,:).'*wal16(8,:);x1=x0.';s_spread(i,:)=(x1(:)).';end%将每个扩频后的输出重复为两次,有利于下面的延迟(延迟半个码元)ray1(1:2:2*Tlen*Nc-1)=s_spread(1:Tlen*Nc);ray1(2:2:2*Tlen*Nc)=ray1(1:2:2*Tlen*Nc-1);%产生第二径和第三径信号ray2(ISI_Length+1:2*Tlen*Nc)=ray1(1:2*Tlen*Nc-ISI_Length);ray2(2*ISI_Length+1:2*Tlen*Nc)=ray1(1:2*Tlen*Nc-2*ISI_Length);for nEN=1:length(EbN0db)en=10^(EbN0db(nEN)/10); %将Eb/N0的dB值转化为十进制数值sigma=sqrt(32/(2*en)); %将收到的信号dempdemp=power_unitary_factor1*ray1+...power_unitary_factor2*ray2+...power_unitary_factor3*ray3+...(randn(1,2*Tlen*Nc)+randn(1,2*Tlen*Nc)*i)*sigma;dt=reshape(demp,32,Tlen)';wal16_d(1:2:31)=wal16(8,1:16); %将walsh码重复为两次wal16_d(2:2:32)=wal16(8,1:16);rdata1=dt*wal16_d(1,:).'; %解扩后rdata1为第一径输出wal16_delay1(1,2:32)=wal16_d(1,1:31); %将walsh码延迟半个码元rdata2=dt*wal16_delay1(1,:).'; %解扩后rdata2为第二径输出wal16_delay2(1,3:32)=wal16_d(1,1:30); %将walsh码延迟一个码元wal16_delay2(1,1:2)=wal16_d(1,31:32);rdata3=dt*wal16_delay2(1,:).'; %解扩后rdata3为第三径输出p1=rdata1'*rdata1;p2=rdata2'*rdata2;p3=rdata3'*rdata3;p=p1+p2+p3;u1=p1/p;u2=p2/p;u3=p3/p;rd_m1=real(rdata1*u1+rdata2*u2+rdata3*u3); %最大比合并rd_m2=(real(rdata1+rdata2+rdata3))/3; %等增益合并u=[u1,u2,u3]; %选择式合并maxu=max(u);if(maxu==u1)rd_m3=real(rdata1);elseif(maxu==u2)rd_m3=real(rdata2);else rd_m3=real(rdata3);endendr_Data1=sign(rd_m1)'; %三种方法判决输出r_Data2=sign(rd_m2)';r_Data3=sign(rd_m3)';%计算误比特率Bit_Error_Number1=length(find(r_Data1(1:Tlen)~=s_initial(1:Tlen)));Bit_Error_Rata1(nEN)=Bit_Error_Number1/Tlen;Bit_Error_Number2=length(find(r_Data2(1:Tlen)~=s_initial(1:Tlen)));Bit_Error_Rata2(nEN)=Bit_Error_Number2/Tlen;Bit_Error_Number3=length(find(r_Data3(1:Tlen)~=s_initial(1:Tlen)));Bit_Error_Rata3(nEN)=Bit_Error_Number3/Tlen;endsemilogy(EbN0db,Bit_Error_Rata1,'r*-');hold on;semilogy(EbN0db,Bit_Error_Rata2,'bo-');hold on;semilogy(EbN0db,Bit_Error_Rata3,'g.-');legend('最大比合并','等增益合并','选择式合并');xlabel('信噪比');ylabel('误比特率');title('三种主要分集合并方式性能比较');。

m序列和Gold序列特性研究要点上课讲义

m序列和Gold序列特性研究要点上课讲义

m序列和G o l d序列特性研究要点Harbin Institute of Technology扩频通信实验报告课程名称:扩频通信实验题目:Gold码特性研究院系:电信学院班级:通信一班姓名:学号:指导教师:迟永钢时间: 2012年5月8日哈尔滨工业大学第1章实验要求1.以r=5 1 45E为基础,抽取出其他的m序列,请详细说明抽取过程;2.画出r=5的全部m序列移位寄存器结构,并明确哪些序列彼此是互反多项式;3.在生成的m序列集中,寻找出m序列优选对,请确定优选对的数量,并画出它们的自相关和互相关函数图形;4.依据所选取的m序列优选对生成所有Gold序列族,确定产生Gold序列族的数量,标出每个Gold序列族中的所有序列,并实例验证族内序列彼此的自相关和互相关特性;5.在生成的每个Gold序列族内,明确标出平衡序列和非平衡序列,并验证其分布关系。

6.完整的作业提交包括:纸质打印版和电子版两部分,要求两部分内容统一,且在作业后面附上源程序,并加必要注释。

7.要求统一采用Matlab软件中的M文件实现。

第2章 实验原理2.1 m 序列二元m 序列是一种伪随机序列,有优良的自相关函数,是狭义伪随机序列。

m 序列易于产生于复制,在扩频技术中得到了广泛应用。

2.1.1 m 序列的定义r 级非退化的移位寄存器的组成如图1所示,移位时钟源的频率为c R 。

r 级线性移位寄存器的反馈逻辑可用二元域GF(2)上的r 次多项式表示2012() {0,1}r r i f x c c x c x c x c =++++∈L (1)图 2-1 r 级线性移位寄存器式(1)称为线性移位寄存器的特征多项式,其给出的表示反馈网络的而逻辑关系式是现行的。

因此成为线性移位寄存器。

否则称为,非线性移位寄存器。

对于动态线性移位寄存器,其反馈逻辑也可以用线性移位寄存器的递归关系式来表示112233 {0,1}i i i i r i r i a c a c a c a c a c ----=++++∈L (2) 特征多项式(1)与递归多项式(2)是r 级线性移位寄存器反馈逻辑的两种不同种表示法,因其应用的场合不同而采用不同的表示方法。

Matlab中的自相关与互相关分析方法介绍

Matlab中的自相关与互相关分析方法介绍

Matlab中的自相关与互相关分析方法介绍引言:自相关与互相关是信号处理领域中常用的分析方法。

在Matlab中,我们可以利用相关函数进行这些分析。

本文将介绍自相关与互相关的概念,以及在Matlab 中如何利用相关函数进行分析。

一、自相关分析自相关是一种用于分析信号的统计方法,它可以衡量信号在不同时间点间的相关性。

在Matlab中,我们可以使用xcorr函数进行自相关分析。

该函数的基本语法为:[R, lags] = xcorr(x)其中,x是输入信号,R是自相关结果,lags是延迟时间。

自相关分析结果的解释可以通过图形来进行。

可以使用stem函数绘制自相关信号的图像。

例如,下面的代码将绘制自相关结果的图像:stem(lags, R)title('自相关结果')xlabel('延迟时间')ylabel('相关系数')通过图像可以直观地观察到信号在不同时间点间的相关性。

自相关结果的峰值表示信号具有一定的周期性,在延迟时间上可以找到对应的周期。

二、互相关分析互相关用于分析两个信号之间的相关性。

在Matlab中,我们可以使用xcorr函数进行互相关分析。

该函数的基本语法为:[R, lags] = xcorr(x, y)其中,x和y是输入信号,R是互相关结果,lags是延迟时间。

互相关分析的结果也可以通过图形来进行解释。

可以同时绘制两个信号和它们的互相关结果。

例如,下面的代码将绘制两个信号和它们的互相关结果的图像:subplot(2, 1, 1)plot(x)title('信号x')xlabel('时间')ylabel('幅值')subplot(2, 1, 2)plot(y)title('信号y')xlabel('时间')ylabel('幅值')figure()stem(lags, R)title('互相关结果')xlabel('延迟时间')ylabel('相关系数')通过图像可以观察到两个信号之间的相关性。

基于matlab的伪随机序列生成及相关函数仿真实验

基于matlab的伪随机序列生成及相关函数仿真实验

武夷学院实验报告课程名称:_扩频通信技术及应用_ 项目名称:基于matlab的伪随机序列生成及相关函数仿真实验姓名:翁开传__专业:__通信工程___ 班级:__2__学号:_40__同组成员_无___1注:1、实验预习部分包括实验环境准备和实验所需知识点准备。

2、若是单人单组实验,同组成员填无。

2注:实验过程记录要包含实验目的、实验原理、实验步骤,页码不够可自行添加。

2)函数auto_corr()计算二进制序列seq的自相关函数,并画出函数曲线。

在函数内调用了生成m序列的函数ms_generator(*)生成的m序列seq,然后在计算。

function seq=ms_generator(registers,connections)registers=[0 0 0 0 1];connections=[1 0 0 1 0 1];n=length(connections);L=2^(n-1)-1;seq(1)=registers(n-1);for i=2:Lsum=0;for m=1:(n-1)sum=mod(sum+registers(m)*connections(m+1),2);endfor k=(n-1):-1:2registers(k)=registers(k-1);endregisters(1)=sum;seq(i)=registers(n-1);endfunction auto_correlation=auto_corr(seq)registers=[1 0 0 0 0 ];%设置初始状态connections=[1 0 1 0 0 1];%设置反馈逻辑seq=ms_generator(registers,connections);seq=-1*(seq*2-1);%负逻辑映射len=length(seq);temp=[seq seq];for i=0:len-1auto_correlation(i+1)=seq*(temp(i+1: i+len))';endauto_correlationplot(0:len-1,auto_correlation);运行的结果如下3)函数cross_corr()计算二进制序列seq1和seq2的互相关函数并画出曲线。

m序列和Gold序列特性研究要点

m序列和Gold序列特性研究要点

1
mN
R( )
1
(3)
mN
N
但是 (3)式给出的是 m 序列的自相关函数,并不是 m 码的自相关函数。首先
将 m 序列变换为 m 码。将 m 序列的每一比特换为宽度为 Tc (Tc 1/ Rc ) 、幅度为
1 的波形函数,当 m 序列为 0 元素时,波形函数取正极性,否则取负极性。通过 这样的变换后,周期为 N 的 m 序列就变为宽度为 Tc 、周期为 NTc 的 m 码。
f (x) c0 c1x c2x2
cr xr ci {0,1}
(1)
时钟 源
1 ai 1 c0
2 ai 2 c1
, c2
模 2加法器
r
ai r
cr 1
cr
图 2-1 r 级线性移位寄存器 式(1)称为线性移位寄存器的特征多项式,其给出的表示反馈网络的而逻辑 关系式是现行的。因此成为线性移位寄存器。否则称为,非线性移位寄存器。 对于动态线性移位寄存器, 其反馈逻辑也可以用线性移位寄存器的递归关系 式来表示
Gold 序列是 m 序列的复合码序列,它是由两个码长相等、码时钟速率相同 的 m 序列优选对的模 2 和序列构成。每改变两个 m 序列相对位移就可得到一个
新的 Gold 序列。当相对位移 1,2, ,2 r 1个比特时,就可以得到一族 2r 1个 Gold
扩频通信实验报告 Harbin Institute of Technology
扩频通信实验报告
课程名称:
扩频通信
实验题目: Gold 码特性研究
院 系:
电信学院
班 级:
通信一班
姓 名:
学 号:
指导教师:
迟永钢
时 间: 2012 年 5 月 8 日

移动通信课程设计实验报告-利用matlab进行m序列直接扩频仿真.

移动通信课程设计实验报告-利用matlab进行m序列直接扩频仿真.

目录一、背景 (4)二、基本要求 (4)三、设计概述 (4)四、Matlab设计流程图 (5)五、Matlab程序及仿真结果图 (6)1、生成m序列及m序列性质 (6)2、生成50位随机待发送二进制比特序列,并进行扩频编码 (7)3、对扩频前后信号进行BPSK调制,观察其时域波形 (9)4、计算并观察扩频前后BPSK调制信号的频谱 (10)5、仿真经awgn信道传输后,扩频前后信号时域及频域的变化 (11)6、对比经信道前后两种信号的频谱变化 (12)7、接收机与本地恢复载波相乘,观察仿真时域波形 (14)8、与恢复载波相乘后,观察其频谱变化 (15)9、仿真观察信号经凯萨尔窗低通滤波后的频谱 (16)10、观察经过低通滤波器后无扩频与扩频系统的时域波形 (17)11、对扩频系统进行解扩,观察其时域频域 (18)12、比较扩频系统解扩前后信号带宽 (19)13、比较解扩前后信号功率谱密度 (20)14、对解扩信号进行采样、判决 (21)15、在信道中加入2040~2050Hz窄带强干扰并乘以恢复载波 (24)16、对加窄带干扰的信号进行低通滤波并解扩 (25)17、比较解扩后信号与窄带强干扰的功率谱 (27)六、误码率simulink仿真 (28)1、直接扩频系统信道模型 (28)2、加窄带干扰的直扩系统建模 (29)3、用示波器观察发送码字及解扩后码字 (30)4、直接扩频系统与无扩频系统的误码率比较 (31)5、不同扩频序列长度下的误码率比较 (32)6、扩频序列长度N=7时,不同强度窄带干扰下的误码率比较 (33)七、利用Walsh码实现码分多址技术 (34)1、产生改善的walsh码 (35)2、产生两路不同的信息序列 (36)3、用两个沃尔什码分别调制两路信号 (38)4、两路信号相加,并进行BPSK调制 (39)5、观察调制信号频谱,并经awgn信道加高斯白噪和窄带强干扰 (40)6、接收机信号乘以恢复载波,观察时域和频域 (42)7、信号经凯萨尔窗低通滤波器 (43)8、对滤波后信号分别用m1和m2进行解扩 (44)9、对两路信号分别采样,判决 (45)八、产生随机序列Gold码和正交Gold码 (47)1、产生Gold码并仿真其自相关函数 (48)2、产生正交Gold码并仿真其互相关函数 (50)九、实验心得体会 (51)直接序列扩频系统仿真一、背景直接序列扩频通信系统(DSSS)是目前应用最为广泛的系统。

MATLAB仿真m序列和Gold序列自相关与互相关

MATLAB仿真m序列和Gold序列自相关与互相关

MATLAB仿真m序列和Gold序列自相关与互相关MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

本章正是运用MATLAB来仿真m序列和Gold序列的相关特性,以及OCDMA 系统的误码率同用户数N的关系曲线。

su1 仿真过程在理论分析的基础上,下面使用附录上两段程序,通过MATLAB仿真得出m序列和Gold序列的自己相关性。

这段m序列产生程序采用了8个移位寄存器,将最后两个移位寄存器的值进行异或处理反馈给第一个移位寄存器,然后向前移位,输出最后一个移位寄存器的值,Gold序列的产生只是将两个m序列中的一个进行延时移位,再进行异或,产生的主要原理和m序列并无较大差异。

在这两段程序个前半部分m序列和Gold序列生成的基础上,只要将y1=xcorr(x1)改为y1=xcorr(x1,x2)即可求出它们的互相关仿真。

2 仿真结果在系统中采用上述序列仿真得到自相关和互相关特性曲线如图1 , 2及图3 所示。

图1 m 序列的自相关曲线图4-2 m 序列与Gold序列的自相关曲线图4-3 m 序列与Gold 序列的互相关曲线附录程序1X1=1;X2=0;X3=1;X4=0; %移位寄存器输入Xi初T态(0101), Yi为移位寄存器各级输出m=120; %置M序列总长度for i=1:m %1#Y8=X8; Y7=X7; Y6=X6; Y5=X5; Y4=X4; Y3=X3; Y2=X2; Y1=X1;X8=Y7; X7=Y6; X6=Y5; X5=Y4; X4=Y3; X3=Y2; X2=Y1;X1=xor(Y7,Y8); %异或运算if Y8==0U(i)=-1;elseU(i)=Y8;endendM=U%绘图i1=it=1:1:i1;x1=[(2*M)-1]’;%将运行结果m序列M从单极性序列变为双极性序列y1=xcorr(x1);%求自相关性t=1:1:i1;plot(t,y1(1:i1));axis([1,120,-12,288])%绘出信号的相关图gridxlabel('t')ylabel('相关性')title('移位寄存器产生的M序列的相关性')程序2function c=gold()n=7;a=[1 1 1 1 1 1 1 1];co=[];for v=1:2^n-1co=[co,a(1)];a(8)=mod(a(5)+a(1),2);a(1)=a(2);a(2)=a(3);a(3)=a(4);a(4)=a(5);a(5)=a(6);a(6)=a(7);a(7)=a(8);endm1=co;b=[1 0 1 0 0 0 0 1];co=[];for v=1:2^n-1co=[co,b(1)];m=mod(b(5)+b(1),2);p=mod(b(6)+m,2);b(8)=mod(b(5)+b(1),2);b(1)=b(2);b(2)=b(3);b(3)=b(4);b(4)=b(5);b(5)=b(6);b(6)=b(7);b(7)=b(8);endm2=co;c=xor(m1,m2);x2=[(2*c)-1]’;%将运行结果Gold序列c从单极性序列变为双极性序列y1=xcorr(x2);%求自相关性t=1:1:120;plot(t,y1(1:120));axis([1,120,-12,288])%绘出信号的相关图gridxlabel('t')ylabel('相关性')title('移位寄存器产生的Gold序列的相关性')。

基于Gold序列的直接扩频通信系统MATLAB仿真

基于Gold序列的直接扩频通信系统MATLAB仿真

Simulation of Direct Spread Spectrum Communication System Based on Gold SequenceLI Ya-wen(Departerment of Physics &Electronic Information Engineering,Shangluo University,Shangluo,Shaanxi 726000)Abstract :The working principle of direct spread spectrum communication systemia analysed which is spreaded spectrum by Gold code sequence ,and simulating this communicaton with Matlab/Simulink.By the experiment,it follows the complete process of spread spectrum communication.The result of simulation indicates that the Direct spread spectrum communication system base on Gold sequence has advantages of good performance of anti -interference and simple circuit,it can implementate users need of communication transmission and have the better reliability.Key words :Gold sequence;direct spread spectrum communication;simulink;reliability 收稿日期:2012-01-08基金项目:商洛学院科研基金项目(10SKY1007)作者简介:李亚文,女,陕西渭南人,硕士,商洛学院物理与电子信息工程系助教基于Gold 序列的直接扩频通信系统仿真李亚文(商洛学院物理与电子信息工程系,陕西商洛726000)摘要:分析了直接序列扩频通信系统的工作原理,选用Gold 序列作为扩频序列码,利用MATLAB/Simulink 对直接扩频通信系统进行仿真,通过仿真实验,实时跟踪了扩频通信的完整过程。

Gold序列与m序列仿真应用

Gold序列与m序列仿真应用

1.绪论m序列具有优良的双值自相关特性,但互相关特性不是很好。

作为CDMA通信地址码时,由于互相关特性不理想,使得系统内多址干扰影响增大,且可用地址码数量较少。

在某些应用场合,利用狭义伪随机序列复合而成复合序列更为有利。

这是因为通过适当方法构造的复合序列具有某些特殊性质。

Gold序列就是一种复合序列,而且具有良好的自相关与互相关特性,地址码数量远大于m序列,且易于实现、结构简单,在工程上得到广泛应用。

表1是m序列和Gold序列的主要性能比较,表中maxϕ为m序列的自相关峰值,(0)sϕ为自相关主峰;()t n为Gold序列的互相关峰值,(0)gϕ为其自相关主峰。

从表1中可以看出:当级数n一定时,Gold序列中可用序列个数明显多于m序列数,且Gold序列的互相关峰值和主瓣与旁瓣之比都比m序列小得多,这一特性在实现码分多址时非常有用。

表1. m序列和Gold序列性能比较在引入Gold序列概念之前先介绍一下m序列优选对。

m序列优选对,是指在m序列集中,其互相关函数绝对值的最大值(称为峰值互相关函数)max()Rτ最接近或达到互相关值下限(最小值)的一对m序列。

设{a i}是对应于r次本原多项式F1(x)所产生的m序列,{b i} 是另一r次本原多项式F2(x)产生的m序列,峰值互相关函数满足12max2221()214rab rrRτr++⎧+⎪≤⎨⎪+⎩为奇数为偶数但不是的整倍数(1)则m序列{a i}与{b i}构成m序列优选对。

例如:6r=的本原多项式61()1F x x x=++与6522()1F x x x x x=++++所产生的m序列{}i a 与{}i b ,其峰值互相关函数26222max ()17212117r ab R τ++=≤+=+=。

满足式(1),故{}i a 与{}i b 构成m 序列优选对。

而本原多项式65323()1F x x x x x =++++所产生的m 序列{}i c ,与m 序列{}i a 的峰值互相关函数max ()2317ac R τ=>,不满足上式,故{}i a 与{}i c 不是m 序列优选对。

基于MATLAB的Gold序列相关性研究

基于MATLAB的Gold序列相关性研究
1 伪 随 机序 列
进行计算 自相关函数和互相关 函数 , 并进行 比较得到结果如图 1与
图2 。பைடு நூலகம்
可以看 出: m 序列 自相关曲线要 比 G o l d 序列 自相关曲线整体上 平缓 , 除零点外几乎处处相关值都为零, ol G d序列的自相关 陛也 比较 好 ,但在非零处有起伏 , m序列的 自相关 性比 G o l d 序列 的自相关性 要好。 ol G d 序列的互相关函数曲线与 m序列互相关相比起伏相对要 小, 证明了 G ol d 序列的互相关性 比m序列的互相关 陛好。
m 津 骞 翘 美 瞧 懈 毒期 裁 缝
伪随机序列作为扩频通信系统的一个组成部分是非常重要的 , 它是与扩频系统的性能有关的。 如果一个序列 , 它的结构可以预先确 定, 并可重复和复制 , 而且它也有一个随机序列的随机性 , 这样 的序 列称为伪随机序列。 伪随机序列 , 一般具有类似与白噪声相似的统计 特J 陛, 白噪声是一种随机过程 , 瞬时幅度值服从正态分布, 自相关 函 数和功率谱密度有极好的相关 I 生,伪随机序列是针对 白噪声演化而 来 的, 只有… 0’ 和“ 1 ” 两种电平 , 因此伪随机编码概率分布不再具备高 斯分布。 通常为随机序列应具这样 的特点 : 在每个周期内 0和 1 发生 的概率大致相等 ; 对特殊的伪随机序列 , 任何非零元素的个数的位移 随机序列 , 该序列与元素相同的半原始序列 , 不 同元素的一半。
图 2 两种 序列 的互相 关性 0 ) , x 本身的取值并无实际意义 , 也不需要计算 x的值 。 如特征方程为 x ) = 1 + x + x 4 的多项式 , 它表示 x O , x 和x 的系数 C o = C - C 4 - 1 , 其余 为 5 结论 G o l d 是一种基于 1 1 3 . 序列码序列 , 该序列具有 良好的自相关和互 零。 利用 MA T L A B软件中的 m _ s e q u e n c e函数, 可以得到对应移位寄 结构简单 , 产生的序列号 , 对产生 r r l 和伪 随机序列和它们 存器产生的 m序列, 返 回结果为: 1 0 0 0 0 1 0 1 0 1 1 1 0 1 1 0 0 0 1 1 1 1 1 0 0 1 1 0 相关特 眭, 的属性 的 G o l d序 列的方法进行 了较深入 的研究 ,设计 了相应 的 1 0 0。

常用伪随机码序列的相关性分析与MATLAB仿真

常用伪随机码序列的相关性分析与MATLAB仿真
参考文献 [ 1] 孟小峰.Web 信息集成技术研究[J].计算机应用与软件.2003.11:32- 36. [ 2] Castillo J.A.R., Silvescu A., Caragea D. 等 .Information Extraction and Integration from Heterogeneous,Distributed,Autonomous Information Source - A Federated Ontology - Driven Query - Centric Approach [J]. IEEE International Conference. 2003. 2003:183- 191. [ 3] 邓志鸿, 唐世渭, 杨冬青.面向语义集成- 本体在 web 信息集成中的研究进展 [J].计算机应用.2002 .22(1):15- 17. [ 4] 邓志鸿, 唐世渭, 张铭, 等.Ontology 研究综述[J]. 北京大学学报(自然科学版). 2002. 38(05):730- 738. [ 5] W3C, OWL Web Ontology Language Overview [EB/OL].http://www.w3.org/TR/ owl- features/., February 2004. [ 6] Dimitre A.Dimitrov, Nanbor Wang. Information Integration Via an End- to- End Distributed Semantic Web System[J]. ISWC 2006,764–777. [ 7] 赵宁,李庆忠. 应用本体解决面向语义的信息集成中的查询处理[J].计算机科 学.2004.31(9A):134- 138.
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MATLAB仿真m序列和Gold序列自相关与互相关
MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

本章正是运用MATLAB来仿真m序列和Gold序列的相关特性,以及OCDMA 系统的误码率同用户数
N的关系曲线。

su
1 仿真过程
在理论分析的基础上,下面使用附录上两段程序,通过MATLAB仿真得出m
序列和Gold序列的自己相关性。

这段m序列产生程序采用了8个移位寄存器,将最后两个移位寄存器的值进行异或处理反馈给第一个移位寄存器,然后向前移位,输出最后一个移位寄存器的值,Gold序列的产生只是将两个m序列中的一个进行延时移位,再进行异或,产生的主要原理和m序列并无较大差异。

在这两段程序个前半部分m序列和Gold序列生成的基础上,只要将
y1=xcorr(x1)改为y1=xcorr(x1,x2)即可求出它们的互相关仿真。

2 仿真结果
在系统中采用上述序列仿真得到自相关和互相关特性曲线如图1 , 2及图3 所示。

图1 m 序列的自相关曲线
图4-2 m 序列与Gold序列的自相关曲线
图4-3 m 序列与Gold 序列的互相关曲线
附录
程序1
X1=1;X2=0;X3=1;X4=0; %移位寄存器输入Xi初T态(0101), Yi为移位寄存器各级输出
m=120; %置M序列总长度
for i=1:m %1#
Y8=X8; Y7=X7; Y6=X6; Y5=X5; Y4=X4; Y3=X3; Y2=X2; Y1=X1;
X8=Y7; X7=Y6; X6=Y5; X5=Y4; X4=Y3; X3=Y2; X2=Y1;
X1=xor(Y7,Y8); %异或运算
if Y8==0
U(i)=-1;
else
U(i)=Y8;
end
end
M=U
%绘图
i1=i
t=1:1:i1;
x1=[(2*M)-1]’;%将运行结果m序列M从单极性序列变为双极性序列y1=xcorr(x1);%求自相关性
t=1:1:i1;
plot(t,y1(1:i1));axis([1,120,-12,288])%绘出信号的相关图grid
xlabel('t')
ylabel('相关性')
title('移位寄存器产生的M序列的相关性')
程序2
function c=gold()
n=7;
a=[1 1 1 1 1 1 1 1];
co=[];
for v=1:2^n-1
co=[co,a(1)];
a(8)=mod(a(5)+a(1),2);
a(1)=a(2);
a(2)=a(3);
a(3)=a(4);
a(4)=a(5);
a(5)=a(6);
a(6)=a(7);
a(7)=a(8);
end
m1=co;
b=[1 0 1 0 0 0 0 1];
co=[];
for v=1:2^n-1
co=[co,b(1)];
m=mod(b(5)+b(1),2);
p=mod(b(6)+m,2);
b(8)=mod(b(5)+b(1),2);
b(1)=b(2);
b(2)=b(3);
b(3)=b(4);
b(4)=b(5);
b(5)=b(6);
b(6)=b(7);
b(7)=b(8);
end
m2=co;
c=xor(m1,m2);
x2=[(2*c)-1]’;%将运行结果Gold序列c从单极性序列变为双极性序列y1=xcorr(x2);%求自相关性
t=1:1:120;
plot(t,y1(1:120));axis([1,120,-12,288])%绘出信号的相关图grid
xlabel('t')
ylabel('相关性')
title('移位寄存器产生的Gold序列的相关性')。

相关文档
最新文档