生成m序列与gold序列
m序列扩频码的生成.
扩频码序列
在扩频系统中,信号频谱的扩展是通过扩频码实现的。扩频系统的性能和扩频码的性能有很大关系,对扩频码通常有下列要求:易于产生;具有随机性;扩频码应该具有尽肯能长的周期,使干扰者难以从扩频码的一小段中重建整个码序列;扩频码具有良好的自相关和互相关特性,以利于接收时的捕获和跟踪,以及多用户检测等。
从理论上说,用纯随机序列去扩展频谱是最理想的。例如,高斯白噪声,但在接收机中为解扩的需要,应当有一个同发送端扩频码同步的副本,因此,实际上只能用伪随机或防噪声序列作为扩频码。伪随机序列具有类似噪声的性质,但它又是周期性有规律的,易于产生和处理。
扩频码中应用最多的是m序列,又称最大长度序列,还有Gold序列、Walsh码序列等。
二、m序列
m序列是由ii级线性移位寄存器产生的周期为才-1的码序列,是最扶践性移位寄存器
序列的简稼.这种序列宵周期长、容易产生、随机性好等优昇特性,它可以由图IQJ所示的线性移位躅存逢生成.*
2n
Em捕2
图1.…皿翩发主器亠
上蘇生的二値序列的序列值;我
序列周期由反愦系敌冯心=12用)决定.有些能产生最犬长度序列.图讥4所示奘一个
藏=4曲序列发生器,其周期为=
24
图2盒勻的m序列发生器"
三、仿真实现
本程序实现的功能:生成n=3的m序列,其中第一个寄存器与第三个寄存器与反馈加法器相连,寄存器的初始值都为1。程序源代码请参考m_sequence.m。(注:使用时需要修改m_sequence.txt文件后缀格式,修改为m_sequence.m,然后用MATLAB打开运行。其他程序也是如此。
生成m序列与gold序列
、生成m 序列
function [mseq] = m_sequence(fbconnection); n = length(fbconnection);
N = 25-1;
register = [zeros(1,n - 1) 1]; mseq(1)= register(n);
for i = 2:N
%n序列的长度
%定义移位寄存器的初始状态%m?列的第一个输出码元
newregister(1)= mod(sum(fbconnection.*register),2);
馈的模2和
for j = 2:n,
newregister(j)= register(j-1);
end ;
%寄存器与反
register = newregister;
mseq(i) = register(n); end %移位后的寄存器%新的寄存器输出
clear all
close all
clc;
fbconnection=[0 0 1 0 1]; %输入本原多项式系数,从C1 开始m_sequence=m_sequence(fbconnection);
stem(m_seque nee); %对m序歹U绘图
axis([0 35 -0.2 1.2]);
grid on;
二、生成gold序列
function goldseq = g_seque nce(c onnection 1,c onnection 2);
msequencel = m_sequence(connection 1); %生成第一个m序歹U
msequence2 = m_sequence(connection2); %生成第二个m序歹U
扩频编码M序列和gold序列
M序列
由n级移位寄存器所能产生的周期最长的序列。这种序列必须由非线性移位寄存器产生,并且周期为2n(n 为移位寄存器的级数)。例如,考察图中a的非线性反馈移位寄存器,其状态转移关系如表:
状态(a k-3,a k-2,a k-1)的接续状态是(a k-2,a k-1,a k),其中a k=a k-3嘰a k-1嘰1嘰a k-2a k-1是一种非线性逻辑。从任一状态出发,例如从(000)出发,其接续状态恰好构成一个完全循环(图b),由此产生一个周期为23=8的3级序列。M序列最早是用抽象的数学方法构造的。它出现于组合数学的一些数学游戏中,例如L.欧拉关于哥尼斯堡的七桥问题等。后来发现这种序列具有某些良好的伪随机特性。例如,M序列在一个周期中,0与1的个数各占一半。同时,同样长度的0游程与1游程也各占一半。所有这些性质在数据通信、自动控制、光学技术和密码学诸领域中均有重要应用。
隐蔽通信内容的通信方式。为了使非法的截收者不能理解通信内容的含义,信息在传输前必须先进行各种形式的变化,成为加密信息,在收信端进行相应的逆变化以恢复原信息。电报通信、电话通信、图像通信和数据通信,都有相应的保密技术问题。另一方面,为了从保密通信中获得军事、政治、经济、技术等机密信息,破译技术也在发展。保密技术和破译技术是在相互对立中发展起来的。
1881年世界上出现了第一个电话保密专利。电话保密开始是采用模拟保密或置乱的方法,即把话音的频谱或时间分段打乱。置乱后的信号仍保持连续变化的性质。在第二次世界大战期间,频域和时域的置乱器在技术上已基本成熟。70年代以来,由于采用集成电路,电话保密通信得到进一步完善。但置乱器仍是有线载波和短波单边带电话保密通信的主要手段。模拟保密还可以采用加噪声掩盖、人工混响或逆向混响等方法,但因恢复后话音的质量大幅度下降或保密效果差,这些方法没有得到推广应用。数字保密是由文字密码发展起来的。数字信号(包括由模拟信号转换成的数字信号),由相同速率的密码序列加密,成为数字保密信号;保密信号传输到收信端后由同一密码序列去密,恢复原数字信号。随着集成电路的发展,数字保密通信已成为保密通信的主要发展方向。话音、图像等模拟信号都可以用数字保密方式。一般来说,数字破译要比模拟破译困难得多。数字保密的主要限制是传输数字信号所需带宽要比传输模拟信号的带宽大好多倍。
扩频编码M序列和gold序列
M序列
由n级移位寄存器所能产生的周期最长的序列。这种序列必须由非线性移位寄存器产生,并且周期为2n(n 为移位寄存器的级数)。例如,考察图中a的非线性反馈移位寄存器,其状态转移关系如表:
状态(a k-3,a k-2,a k-1)的接续状态是(a k-2,a k-1,a k),其中a k=a k-3嘰a k-1嘰1嘰a k-2a k-1是一种非线性逻辑。从任一状态出发,例如从(000)出发,其接续状态恰好构成一个完全循环(图b),由此产生一个周期为23=8的3级序列。M序列最早是用抽象的数学方法构造的。它出现于组合数学的一些数学游戏中,例如L.欧拉关于哥尼斯堡的七桥问题等。后来发现这种序列具有某些良好的伪随机特性。例如,M序列在一个周期中,0与1的个数各占一半。同时,同样长度的0游程与1游程也各占一半。所有这些性质在数据通信、自动控制、光学技术和密码学诸领域中均有重要应用。
隐蔽通信内容的通信方式。为了使非法的截收者不能理解通信内容的含义,信息在传输前必须先进行各种形式的变化,成为加密信息,在收信端进行相应的逆变化以恢复原信息。电报通信、电话通信、图像通信和数据通信,都有相应的保密技术问题。另一方面,为了从保密通信中获得军事、政治、经济、技术等机密信息,破译技术也在发展。保密技术和破译技术是在相互对立中发展起来的。
1881年世界上出现了第一个电话保密专利。电话保密开始是采用模拟保密或置乱的方法,即把话音的频谱或时间分段打乱。置乱后的信号仍保持连续变化的性质。在第二次世界大战期间,频域和时域的置乱器在技术上已基本成熟。70年代以来,由于采用集成电路,电话保密通信得到进一步完善。但置乱器仍是有线载波和短波单边带电话保密通信的主要手段。模拟保密还可以采用加噪声掩盖、人工混响或逆向混响等方法,但因恢复后话音的质量大幅度下降或保密效果差,这些方法没有得到推广应用。数字保密是由文字密码发展起来的。数字信号(包括由模拟信号转换成的数字信号),由相同速率的密码序列加密,成为数字保密信号;保密信号传输到收信端后由同一密码序列去密,恢复原数字信号。随着集成电路的发展,数字保密通信已成为保密通信的主要发展方向。话音、图像等模拟信号都可以用数字保密方式。一般来说,数字破译要比模拟破译困难得多。数字保密的主要限制是传输数字信号所需带宽要比传输模拟信号的带宽大好多倍。
m序列和gold序列仿真
n=7,反馈系数是203,初始状态为:0000001;
matlab仿真结果:
显示的m序列为:10000001000001100001010001111001000101100111010100
n=7,m序列的优选对为211和235,初始状态分别为:1000001和0011000 matlab仿真结果:
显示结果为:10011011010011101101001010111110011011011101000000
GOLD序列的相关性PPT课件
• m序列 • Gold序列 • Gold序列的相关特性
•1
m序列
m序列是目前CDMA系统中采用的最基本 的PN序列。它是最长线性反馈移位寄存器 序列的简称。若移位寄存器为n级, 则其周 期P=2n-1 。
•2
图1 反馈移位寄存器原理框图
•3
Gold序列
• m序列虽然性能优良(具有尖锐而无旁瓣 的自相关函数), 但同样长度的m序列个数 不多,且序列之间的互相关性不够好。 R·Gold提出了一种基于m序列的PN码序 列, 称为Gold码序列。
n级m序列发生器
模2加
Gold码序列
(a)
1
2
3
4
5
12345 (b)
图2 Gold (a) Gold码发生器的原理结构图; (b) 5级m序列优选对构成的Gold码发生器
•6
• 随着级数n的增加,Gold码序列的数量远远 超过同级数的m序列的数量,便于扩频多址 应用。
•7
Gold序列的相关性
• 自相关性:Gold 证明了Gold 码序列的自 相关函数的所有非最高峰的取值是三值。
• Gold序列是用一对周期和速率均相同,但 码字不同的m序列优选对模2加后得到的。
Hale Waihona Puke Baidu•4
• 如果有两个m序列, 它们的互相关函数的绝
对值有界, 且满足以下条件:
m序列与Gold序列比较
首先,研究了直接扩
频通信系统中比较常用的各种伪随机序列的特性以及它们的产生方法,着重介绍了m序列,Gold序列,Walsh码和复合序列并对它们的性能做了比较,最
Βιβλιοθήκη Baidu
长周期的序列。对于何种抽头能产生何种长度和结
构的码序列,已 经 进 行 了 大 量 的 研 究 工 作。 现 在 已
经得到 $ . "%% 级 - 序 列 发 生 器 的 连 接 图 和 所 产 生
的 - 序列的结 构。 例 如 / 级 移 位 寄 存 器 产 生 的 "0
位的 - 序列之一为 """"%"%""%%"%%%。 同 理,我 们 不
2.期刊论文 王善斌.李同山.WANG Shan-bin.LI Tong-shan 基于双伪随机序列码的扩频数字水印算法 -山东理工大
学学报(自然科学版)2007,21(2)
针对目前比较流行的频域(或变换域)水印算法中存在的水印容量不足的问题,提出了基于像素置乱的双伪随机序列扩频水印算法,提高了水印的容量 ,具有较好的鲁棒性和抗各种攻击的能力.
复杂度之间取得了适当的折中。对于伪随机序列的跟踪问题,同步系统多采用锁相环。对非相干延时回路的工作原理和性能进行了数学上的分析。
第五章结合项目实际,讨论了FPGA开发基带扩频通信系统的设计思路和方法。首先对FPGA开发流程以及实际开发的工具进行了简要的介绍,然后给出了
Gold序列与m序列仿真应用
1. 绪论
m序列具有优良的双值自相关特性,但互相关特性不是很好。作为CDMA通信地址码时,由于互相关特性不理想,使得系统内多址干扰影响增大,且可用地址码数量较少。在某些应用场合,利用狭义伪随机序列复合而成复合序列更为有利。这是因为通过适当方法构造的复合序列具有某些特殊性质。Gold序列就是一种复合序列,而且具有良好的自相关与互相关特性,地址码数量远大于m序列,且易于实现、结构简单,在工程上得到广泛应用。
表1是m序列和Gold序列的主要性能比较,表中
为m序列的自相关峰值,
为自相关主峰;
为Gold序列的互相关峰值,
为其自相关主峰。从表1中可以看出:当级数n一定时,Gold序列中可用序列个数明显多于m序列数,且Gold序列的互相关峰值和主瓣与旁瓣之比都比m序列小得多,这一特性在实现码分多址时非常有用。
表1. m序列和Gold序列性能比较
在引入Gold序列概念之前先介绍一下m序列优选对。m序列优选对,是指在m序列集中,其互相关函数绝对值的最大值(称为峰值互相关函数)
最接近或达到互相关值下限(最小值)的一对m序列。
设{ai}是对应于r次本原多项式F1(x)所产生的m序列, {bi} 是另一r次本原多项式F2(x)产生的m序列,峰值互相关函数满足
(1)
则m序列{ai}与{bi}构成m序列优选对。
例如:
的本原多项式
与
所产生的m序列
与
,其峰值互相关函数
。满足式(1),故
与
构成m序列优选对。而本原多项式
所产生的m序列
,与m序列
的峰值互相关函数
,不满足上式,故
与
不是m序列优选对。
2. Gold序列
1967年,R·Gold指出:“给定移位寄存器级数r时,总可找到一对互相关函数值是最小的码序列,采用移位相加方法构成新码组,其互相关旁瓣都很小,且自相关函数和互相关函数均有界”。这样生成的序列称为Gold码(Gold序列)。
m 序列与gold 序列性能分析比较 包含程序
m序列与gold序列性能分析比较
赵新宁
北京邮电大学信息工程学院,北京(100876)
E-mail:zhaoxinning106@
摘要:在扩频系统中,伪随机序列具有十分重要的作用。m序列和gold序列作为最常用和实用的伪随机序列,各有其特点。本文分析其基本原理和产生方式,并特别对其性能方面做了仿真比较。
关键词:扩频;m序列;gold序列
中图分类号:TN91
在扩频通信系统中,伪随机序列是关键技术之一。伪随机序列码的码型影响码序列的相关特性,序列长度决定了扩展频谱的宽度。因此,在扩频系统中,对于伪随机序列有如下的要求:
首先,伪随机序列的长度(即伪码比特率)应该足够长,能够满足扩展带宽的需要;
第二,伪随机序列要具有尖锐的自相关特性(用作地址码),和良好的互相关特性;
第三,伪随机序列要有足够多的数量,以满足码分多址的需求;
第四,应具有近似噪声的频谱特性,即近似连续谱,且均匀分布;工程上易于实现。
通常,作为扩频通信系统工程实现上的伪随机序列一般是m序列和gold序列。目前,在cdma2000系统中采用伪随机序列中的m序列(长码)来区分用户,wcdma系统中则用gold码来区分用户。
1.m序列的原理和产生
在所有的伪随机序列中,m序列是最重要、最基本的一种伪随机序列。而另外的多种伪随机序列都是由它引出并且产生的。m序列是一种周期性的伪随机序列,又被称作最长线性移位寄存器序列;是由带线性反馈的移位寄存器产生的周期最长的序列[1]。其周期为2n-1(n 为移位寄存器级数)。
m序列具有与随机噪声类似的尖锐的自相关特性,但它不是真正随机的,而是按照一定的规律周期性的变化。这种特性使得m序列适合于工程应用。
m 序列与Gold 序列比较
关曲线与双 m 序列相比要更陡峭,故 双 m 序 列 的 互 相关性比 Gold 码的互相关性好。
4 结束语
本文从原理、性 能 和 构 造 方 法 方 面 讨 论 了 两 类 常用的伪随机序 列,并 通 过 MATLAB 仿 真 比 较 了 两 者 相 关 性 的 性 能 ,由 仿 真 结 果 可 以 看 出 :从 相 关 性 方
作为扩频通信中常用的伪随机序列m序列与gold各有各自的特点但同时也存在一些不同现从基本原理性能和构造方法出发着重比较了两者在性能方面的区别并对两者的相关性用matlab进行了仿真
中图分类号:TN914 . 42 文献标识码:A 文章编号:1009 - 2552(2006)06 - 0069 - 03
m 序列与 Gold 序列比较
张志辉1 ,宋花荣2
(1 . 南京邮电大学通信工程系,南京 210003; 2 . 山东理工大学计算机科学与技术学院,淄博 255049)
摘 要:作为扩频通信中常用 的 伪 随 机 序 列, m 序 列 与 Gold 各 有 各 自 的 特 点,但 同 时 也 存 在 一 些不同,现从基本原理、性能和构造方法出发,着重比较了两者在性能方面的区别,并对两者 的相关性用 MATLAB 进行了仿真。 关键词:扩频;伪随机序列
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)
基于Matlab产生m序列
目录
前言 (1)
第一章设计任务 (2)
1.2设计内容 (2)
1.2设计要求 (2)
1.3系统框图 (2)
第二章m序列的分析 (4)
2.1m序列的含义 (4)
2.2m序列产生的原理 (5)
2.2m序列的性质 (6)
2.3自相关特性 (7)
第三章m序列的设计 (8)
3.1特征多项式确定 (8)
3.2本原多项式的确定 (9)
3.3m序列的发生 (10)
第四章程序调试及结果分析 (11)
4.1m序列的仿真结果及分析 (12)
4.2该设计的序列相关性仿真结果及分析 (13)
结论 (14)
参考文献 (15)
附录:程序代码 (16)
前言
扩频通信因其具有抗干扰、抗多径衰落、抗侦察等优点在通信领域中得到广泛应用。扩频序列的设计和选择是扩频通信的关键技术,扩频序列性能的优劣在很大程度上决定了通信系统的多址干扰和符号间干扰的大小,从而直接影响到系统的性能。因此,深入研究扩频序列的性质,构造设计具有良好相关性的扩频序列,来满足扩频系统的要求,是直接序列扩频系统的核心课题。白噪声是一种随机过程,它有极其优良的相关特性。但至今无法实现白噪声的放大、调制、检测、同步及控制等,而只能用类似于白噪声统计特性的伪随机序列来逼近它,并作为扩频系统的扩频码。
常见的伪随机序列有m 序列、GOLD 序列、M 序列、Walsh 序列等。m 序列是目前研究最为彻底的伪随机序列,m 序列容易产生,有优良的自相关和互相关特性。序列是伪随机序列的一种情况。他可以在很多领域中都有重要应用。由n级移位寄存器所能产生的周期最长的序列。这种序列必须由非线性移位寄存器产生,并且周期为2n(n为移位寄存器的级数)。
MATLAB仿真m序列和Gold序列自相关与互相关
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序列对及平衡Gold序列的产生与搜索
谢谢观看
平衡Gold序列的产生与搜索方法
平衡Gold序列是一类具有优良伪随机性和自相关性的二元序列。产生平衡 Gold序列的方法主要有两种:一是通过平衡Gold多项式产生平衡Gold序列; 二是通过选择适当的m序列和反馈函数产生平衡Gold序列。搜索方法主要有基 于差分编码的搜索算法和基于自相关函数的搜索算法。
3、初始状态设置:m序列发生器的初始状态设置对生成的二进制序列的随机性 和线性复杂度有很大影响。为了获得更好的性能,一般需要通过伪随机二进制 序列对初始状态进行设置。
m序列发生器的实现
m序列发生器可以通过硬件或软件实现。在硬件实现中,通常使用FPGA(现场 可编程门阵列)或ASIC(应用特定集成电路)等硬件器件来实现m序列发生器。 硬件实现具有高速、低功耗等优点,但同时需要耗费大量的硬件资源。
虽然我们已经取得了一些成果,但仍存在一些不足之处。例如,对于m序列对 的搜索算法,如何提高搜索效率仍是一个需要解决的问题。对于平衡Gold序列 的产生方法,如何设计更高效的平衡Gold多项式也是一个值得研究的问题。
未来研究方向可以是:1)研究更高效的m序列对搜索算法;2)探索更有效的 平衡Gold多项式设计方法;3)研究m序列对和平衡Gold序列在雷达信号处理 和其他领域中的应用。
实验结果
我们实现了一套基于差分编码技术的m序列对和平衡Gold序列产生与搜索算法, 并对其进行了性能评估。实验结果表明,该算法具有较高的产生与搜索效率, 同时产生的序列具有良好的伪随机性和自相关性。
Gold序列产生及特性分析实验
m序列优选对是指在m序列集中,其互相关函数最大值的绝对值满足下式的两条n介m序列:
2.Gold序列的产生方法
Gold序列是m序列的组合序列,由同步时钟控制的两个码元不同的m序列优选对逐位模2加得到。这两个序列发生器的周期相同,速率相同,因而两者保持一定的相位关系,这样产生的组合序列与这两个自序列的周期也相同。当改变两个序列的相对位移,会得到一个新的Gold序列。Gold序列具有以下性质:
打开移动实验箱电源,等待实验箱初始化完成。先按下“菜单”键,再按下数字键“1”,选择“一、伪随机序列”再按下数字键“2”选择“1Gold序列的产生”,则产生一个级数为31的Gold序列。
2、在测试点TP201测试输出的时钟,在测试点TP202、TP203、TP204测试用于产生Gold序列的周期为31的m序列优选对。
TP201TP202
TP203TP204
6、实验总结
TP204测试点输出的Gold序列为由同步时钟控制的两个码元不同的m序列优选对逐位模2加得到,原理如下图所示
两个m序列优选对经不同移位相加产生的新序列都是Gold序列,两个n级移位寄存器可以产生 个Gold序列,周期均为 。由于该实验箱产生的Gold序列周期为31,所以是5级移位寄存器。所以输出的m序列长度为31.由实验可知:
(1)两个m序列优选对经不同移位相加产生的新序列都是Gold序列,两个n级移位寄存器可以产生 个Gold序列,周期均为 。
Gold码序列生成MATLAB代码
%自制Gold序列function [GoldSeq] = dyc_gold_gen_v3()%本原多项式参数M_base = 8;%本原多项式表示进制数M1 = [2 0 1 1];M2 = [2 4 1 5];Mfb_len = 11;%M序列的生成多项式的长度Mfinal_len = 1023;%生成的M序列的长度%序列长度?(由用户而定,但序列循环周期由“生成多项式的长度”而定)%本原多项式% M_base = 8;%本原多项式表示进制数% M1 = [2 0 1 1];% M2 = [2 4 1 5];M1origin_len = length(M1);M2origin_len = length(M2);%本原多项式(二进制)% Mfb_len = 11;%M序列要求生成多项式的长度Mfb_ratio = log2(M_base);M1fb_raw_len = M1origin_len * Mfb_ratio;%M序列本源多项式转换二进制为后的长度M1fb_raw = zeros(1, M1fb_raw_len);%初始化M序列生成多项式for M1fb_reg_i = 1 : M1origin_lenfor M1fb_bit_i = 1 : Mfb_ratioM1fb_raw((M1fb_reg_i - 1) * Mfb_ratio + M1fb_bit_i) = mod(fix(M1(M1fb_reg_i) / (2 ^ (Mfb_ratio - M1fb_bit_i))), 2);endendM1fb = M1fb_raw((M1fb_raw_len - Mfb_len + 1) : M1fb_raw_len);M2fb_raw_len = M2origin_len * Mfb_ratio;M2fb_raw = zeros(1, M2fb_raw_len);for M2fb_reg_i = 1 : M2origin_lenfor M2fb_bit_i = 1 : Mfb_ratioM2fb_raw((M2fb_reg_i - 1) * Mfb_ratio + M2fb_bit_i) = mod(fix(M2(M2fb_reg_i) / (2 ^ (Mfb_ratio - M2fb_bit_i))), 2);endendM2fb = M2fb_raw((M2fb_raw_len - Mfb_len + 1) : M2fb_raw_len);% M1fb = [1 0,0 0 0,0 0 1,0 0 1];% M2fb = [1 0,1 0 0,0 0 1,1 0 1];%发生寄存器长度M1regs_len = length(M1fb);M2regs_len = length(M2fb);%生成的M序列长度M1len_period = Mfinal_len;M2len_period = Mfinal_len;%初始化起始寄存器状态M1regs_s = zeros(1, M1regs_len);M1regs_s(M1regs_len) = 1;M2regs_s = zeros(1, M2regs_len);M2regs_s(M2regs_len) = 1;%初始化中间值M1regs_m1 = M1regs_s;M1regs_m2 = zeros(1, M1regs_len);M2regs_m1 = M2regs_s;M2regs_m2 = zeros(1, M2regs_len);%初始化最终输出的一个周期的M序列M1regs_e = zeros(1, M1len_period);M2regs_e = zeros(1, M2len_period);%产生M序列(从低位向高位移位)(左→右)M1regs_e(1) = M1regs_s(M1regs_len);for M1_ri = 2 : M1len_periodM1regs_m2(1) = mod(sum(M1fb .* M1regs_m1), 2);%低位产生新的一位M1regs_m2(2 : M1regs_len) = M1regs_m1(1 : (M1regs_len - 1));%向高位右移一位M1regs_m1 = M1regs_m2;M1regs_e(M1_ri) = M1regs_m1(M1regs_len);endM2regs_e(1) = M2regs_s(M2regs_len);for M2_ri = 2 : M2len_periodM2regs_m2(1) = mod(sum(M2fb .* M2regs_m1), 2);M2regs_m2(2 : M2regs_len) = M2regs_m1(1 : (M2regs_len - 1));M2regs_m1 = M2regs_m2;M2regs_e(M2_ri) = M2regs_m1(M2regs_len);end%Gold序列GoldSeq = mod((M1regs_e + M2regs_e), 2);
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、生成m序列
function [mseq] = m_sequence(fbconnection);
n = length(fbconnection);
N = 2^n-1; %m序列的长度
register = [zeros(1,n - 1) 1]; %定义移位寄存器的初始状态
mseq(1)= register(n); %m序列的第一个输出码元
for i = 2:N
newregister(1)= mod(sum(fbconnection.*register),2); %寄存器与反馈的模2和
for j = 2:n,
newregister(j)= register(j-1);
end;
register = newregister; %移位后的寄存器
mseq(i) = register(n); %新的寄存器输出
end
clear all;
close all;
clc;
fbconnection=[0 0 1 0 1]; %输入本原多项式系数,从C1开始
m_sequence=m_sequence(fbconnection);
stem(m_sequence); %对m序列绘图
axis([0 35 -0.2 1.2]);
grid on;
二、生成gold序列
function goldseq = g_sequence(connection1,connection2); msequence1 = m_sequence(connection1); %生成第一个m序列
msequence2 = m_sequence(connection2); %生成第二个m序列
N=2^length(connection1)-1; %gold序列长度
for i = 1:N;
s = mod(msequence1+msequence2,2); %两个m序列模二加产生gold序列 goldseq = s;
end
clear all;
close all;
clc;
connection1=[0 0 0 0 1 1];
connection2=[1 0 0 1 1 1];
goldseq = g_sequence(connection1,connection2);
stem(goldseq);
axis([0 65 -0.2 1.2]); grid on;