基于Matlab的m序列发生器的设计1
移动通信课程设计实验报告-利用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)是目前应用最为广泛的系统。
m序列 matlab code实现流程

m序列 matlab code实现流程一、引言m序列是一种具有良好性质的伪随机序列,广泛应用于通信、密码学等领域。
本文将介绍如何使用Matlab编写m序列的代码,并给出实现流程。
二、代码实现流程1. 初始化参数我们需要初始化一些参数,包括m序列的阶数n和初始状态寄存器的初值。
可以根据应用需要进行设置。
2. 生成m序列接下来,我们通过循环迭代的方式生成m序列。
在每一次迭代中,我们根据当前状态寄存器的值计算下一个状态寄存器的值,并将该值作为m序列的输出。
具体的实现代码如下:```matlabmSeq = zeros(1, 2^n - 1);reg = initReg;for i = 1:2^n - 1mSeq(i) = reg(n);nextReg = zeros(1, n);for j = 1:nnextReg(j) = mod(sum(reg(1:j-1)), 2);endreg = [nextReg reg(1:n-1)];end```其中,mSeq是用来存储m序列的数组,reg是用来存储当前状态寄存器的数组。
3. 输出m序列生成m序列后,我们可以将其输出,以便后续的应用。
可以使用Matlab的disp函数将m序列打印出来,或者将mSeq保存为文本文件。
具体的实现代码如下:```matlabdisp(mSeq);```或```matlabfileID = fopen('mSeq.txt', 'w');fprintf(fileID, '%d\n', mSeq);fclose(fileID);```4. 示例为了更好地理解m序列的生成过程,我们可以进行一个简单的示例。
假设我们设置n=3、初始状态寄存器的值为[1 0 0],则根据上述代码,可以得到对应的m序列为[1 1 0 1 1 0 0]。
5. 结果分析m序列具有良好的性质,包括平衡性、最长线性周期等。
在matlab中生成m序列

在matlab中⽣成m序列实验环境为matlab2013b1、⾸先编写⼀个mseq.m⽂件,内容为:function[mseq]=m_sequence(fbconnection)n=length(fbconnection);N=2^n-1;register=[zeros(1,n-1) 1]; %移位寄存器的初始状态mseq(1)=register(n); %m序列的第⼀个输出码元for i=2:Nnewregister(1)=mod(sum(fbconnection.*register),2);for j=2:nnewregister(j)=register(j-1);end;register=newregister;mseq(i)=register(n);end2、在matlab中打开这个⽂件3、在matlab的命令⾏窗体中执⾏primpoly(7,'all')这个命令的⽬的是得到7阶M序列的全部本原多项式。
假设想得到其它阶的m序列,⾃⾏改动数字7就可以。
4、得到的结果为Primitive polynomial(s) =D^7+D^1+1D^7+D^3+1D^7+D^3+D^2+D^1+1D^7+D^4+1D^7+D^4+D^3+D^2+1D^7+D^5+D^2+D^1+1D^7+D^5+D^3+D^1+1D^7+D^5+D^4+D^3+1D^7+D^5+D^4+D^3+D^2+D^1+1D^7+D^6+1D^7+D^6+D^3+D^1+1D^7+D^6+D^4+D^1+1D^7+D^6+D^4+D^2+1D^7+D^6+D^5+D^2+1D^7+D^6+D^5+D^3+D^2+D^1+1D^7+D^6+D^5+D^4+1D^7+D^6+D^5+D^4+D^2+D^1+1D^7+D^6+D^5+D^4+D^3+D^2+1ans =1311371431451571671711851911932032112132292392412472535、输⼊mseq([1 0 0 0 0 0 1])6、便可得到⼀个127位的m序列,整理之后为1000000111111101010100110011101110100101100011011110110101101100100100011100001011111001010111001101000100111100010100001100000说明。
基于MATLAB的m序列仿真

s1(n)=mod(sum(s1(n-r:n-1).*f1(1:r)),2);%通过模2加产生m1序列 end stem(s1); title('生成m序列') %绘制生成m序列的图形
4
基于 Matlab 的 m 序列仿真分析
2.2 m 序列的基本性质
参考文献 ......................................................... 16 附录 ............................................................. 17
基于 Matlab 的 m 序列仿真分析
1.2
系统设计流程图
本文通过软件 Matlab 编写程序,从而在 GUI 环境下看到 m 序列的产生、m 序列的自 相关和互相关函数图形,其系统设计流程图如图 1.1 所示: 开始
用 Matlab 编写程序产生两个 m 序列
对 m 序列进行自相关特性分析
对 m 序列进行互相关特性分析
用 Matlab GUI 显示仿真结果
结束 图 1.1 系统设计流程图
1
基于 Matlab 的 m 序列仿真分析
第二章
2.1 m 序列产生原理及结构
m 序列的产生及性质
伪随机序列有很多种,其中最基本最常用的一种是最长线性反馈移位寄存器序 列,也称作 m 序列,通常由反馈移位寄存器产生。 m 序列是最长线性移位寄存器序列的简称。它是由多级移位寄存器或其他延迟 元件通过线性反馈产生的最长的码序列。由于 m 序列容易产生、规律性强、有许多 优良的性能,在扩频通信中最早获得广泛的应用。 由 m 级寄存器构成的线性移位寄存器如图 2.1 所示,通常把 m 称为这个移位寄 存器的长度。每个寄存器的反馈支路都乘以 Ci。当 Ci=0 时,表示该支路断开;当 Ci=1 时,表示该支路接通。显然,长度为 m 的移位寄存器有 2n 种状态,除了全零序 列,能够输出的最长序列长度为 N=2n-1。此序列便称为最长移位寄存器序列,简称 m 序列。 m 序列每移位一次,就出现一种状态,在移位若干次后,一定能重复出现前某 一状态,其后的过程便周而复始了。反馈线位置不同将出现不同周期的不同序列, 我们希望找到线性反馈的位置,能使移存器产生的序列最长,即达到周期 P=2n-1。 按图中线路连接关系,可以写为:
基于Matlab的m序列生成及性能仿真

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序列输出
基于Matlab的m序列的仿真与实现

a=[1101010001110111110010011000010]; b=a; Nb=length(b); N=120; x=[1:N]; for k=1:N c=xor(a,b); D=sum(c); A=Nb-D; % R(k)=(A-D)/(A+D); b=[b(Nb),b(1:Nb-1)]; plot(k,R(k),'ro'); hold on end plot(x,R,'g'); grid 运行结果:
-5
图二 5 级线性反馈移位寄存器产生 m 序列的仿真系统 (2)利用 Simulinkm观测 m 序列时频域特性
图三 5 级线性反馈移位寄存器产生 m 序列的时域波形
图四 5 级线性反馈移位寄存器产生 m 序列的频域波形 ToWorkspace的wr5就是所得m序列,我们取它一个完整
的周期,其周期是 31,序列如下: 1101010001110111110010011000010 2.3 利用 Matlab 编程环境求 m 序列的自相关特性 程序: clear
F(x)=C +C x1+C x2+…=
01
2
(2)
(3)生成函数(亦称序列多项式)可以表示为如下形式
G(x)=a +a x1+a x2+…=
01
2
当初始状态为
a =1,a =a =…=a =0
-m
-m+1 -r+2
-1
联立式(1)、(2)、(3)可得
(3) (4)
国防工业工业出版社,2006,5. [4]查光明,熊贤祚.扩频通信[M].西安:西安电子科技
大学出版社,2002. [5]曾兴雯,刘乃安,孙献璞.扩展频谱通信及其多址技术
[M].北京:高等教育出版社,2004. [6]樊昌信,张甫翊,吴成柯.现代通信[M].北京:高等
基于MATLAB的伪随机序列发生器的设计

基于MATLAB的伪随机序列发生器的设计通信工程专业计算机课程设计题目基于MATLAB的伪随机序列发生器的设计学生姓名学号所在院(系) 专业班级指导教师完成地点2013年 11 月 12 日计算机课程设计任务书院(系) 专业班级学生姓名一、课程设计题目基于matlab的伪随机序列发生器的设计二、课程设计工作自 2013 年 10 月 27 日起至 2013 年 11 月 22 日止三、课程设计进行地点:四、课程设计的内容要求:1、要求完成七级m 序列发生器的设计(本原多项式自定);2、要求完成五级gold 序列发生器的设计(本原多项式自定);3、采用matlab实现,并对其进行调试运行;4、要求能清楚观察到稳定的序列。
指导教师系(教研室) 通信工程系接受任务开始执行日期 2013年10月27日学生签名基于matlab的伪随机序列发生器的设计[摘要]伪随机序列码越来越受到人们的重视,被广泛用于导弹、卫星、飞船轨道测量和跟踪、雷达、导航、移动通信、保密通信和通信系统性能的测量以及数字信息处理系统中。
本文主是对基于matlab的伪随机序列发生器的设计,及其利用matlab软件对其进行仿真和利用simulink对其仿真性能的研究,主要阐述了扩频系统中m序列和gold 序列的产生。
在第一部分中介绍了课题研究的背景,第二部分中介绍了扩频系统的相关知识,第三部分介绍了m序列和Gold序列产生的原理和方法,第四部分利用matlab和simulink对其进行仿真。
[关键词]伪随机序列 m序列移位寄存器Design of the pseudo-random sequencegenerator based on matlab[Abstract]pseudo-random sequence code more and more get people's attention, is widely used in missiles, satellites, spacecraft orbit measurement and tracking, radar, navigation, mobile communications, and the measurement of the performance of the communication security and communication system of digital information processing system. In this paper, the main is to the design ofpseudo-random sequence generator based on matlab, and the use of matlab simulation and the use of simulink software to the study of the simulation performance, mainly expounds the m sequence and gold sequence in spread spectrum system. In the first part introduces the research background, the second part introduces the related knowledge of spread spectrum system, in the third part introduces the m sequence and Gold sequence principle and method of the fourth part carries on the simulation using matlab and simulink.[key words]pseudo random sequence m sequence shift register目录1.引言 (5)1.1研究的背景及意义 (5)2.扩频通信系统简介 (7)2.1扩频通信的基本概念及相关模型 (7)2.1.1基本概念 (7)2.1.2 数学模型 (10)2.2扩频通信系统的主要特点 (12)2.3扩频通信系统分类 (14)2.4伪随机序列在扩频通信中的应用 (14)3.m序列 (15)3.1m序列的定义 (15)3.2m序列的原理 (16)3.3m序列的性质 (19)4.Gold序列 (21)4.1 Gold序列的产生原理 (21)4.2 Gold序列的性质 (21)5.MATLAB仿真实现 (22)5.1 MATLAB软件介绍 (22)5.2 m序列的仿真及分析 (24)5.2.1程序分析 (24)5.2.2 simulink分析 (26)5.3 Gold的仿真及分析 (27)5.3.1程序分析 (27)5.3.2 simulink分析 (27)6.致谢 (28)7.参考文献 (29)附录 (30)附录A (30)附录B (32)1.引言1.1研究的背景及意义移动通信由于具有时实性、机动性、具有不受时空限制等特点,己经成为一种深受人们欢迎的通信方式,并融入了现代生活当中。
基于Matlab的m序列发生器的00

目录第一章绪论..................................................................................................................11.1背景及意义 ....................................................................................................11.2设计内容及要求...............................................................................................11.2.1 设计内容................................................................................................11.2.2 设计要求................................................................................................21.3系统框图..........................................................................................................2第二章 m序列的分析.......................................................................................................32.1 m序列的原理...........................................................................................................32.2 m序列的相关特性 ...................................................................................................42.2.1均衡特性(平衡性) ...............................................................................42.2.2游程分布(游程分布的随机性) ...............................................................42.2.3移位相加特性(线性叠加性) ..................................................................42.2.4自相关特性.............................................................................................5第三章 m序列的设计............................................................................................................. 63.1特征多项式确定..............................................................................................63.2本原多项式的确定...........................................................................................73.3 m序列的发生..............................................................................................8第四章程序调试及结果分析................................................................................ 10结论. (24)参考文献 (25)附录一:程序代码 (26)第一章绪论1.1 背景及意义扩展频谱通信是一种不同于常规通信系统的新调制理论和技术,简称扩频通信。
基于matlab的移位寄存器法m序列的产生

基于matlab的移位寄存器法m序列的产生作者:刘艳华来源:《科技视界》 2012年第2期刘艳华(盐城工学院信息工程学院江苏盐城 224051)【摘要】扩频通信是在民用和军用都有广泛应用的一种通信技术,自从其诞生就受到了广泛关注。
扩频通信中频谱的扩展是通过一个独立的伪随机序列来完成的。
其中m序列是最常用的一种伪随机码,本文在matlab平台上通过仿真,来研究如何用移位寄存器产生m序列,虽然matlab中有现成的m序列产生模块,但是它的相位是不可以调节的,而本文产生的m序列相位可以调节。
详细讲解了m序列的产生原理,和matlab仿真过程,最后给出了仿真结果,结果表明该方法是可行的。
【关键词】移位寄存器;扩频;m序列;Design of m-sequence Generator Based on Shift Register with MatlabLIU Yan-hua(Yancheng Institute of Technology, School of Information Engineering, Yancheng Jiangsu,224051)【Abstract】Spread spectrum communication is widely used in both civilian and military communications, It is potential and promising which attracts wideattention since its emergence. The spectrum expansion of spread spectrum communication is through of an independent pseudo-random sequence to complete. m-sequence is one of the most common sequence of pseudo-random code, this paper is in matlab platform to study how to use shift registers to generate m-sequence, although there is ready-made matlab m-sequence generation module, but its phase is not regulation, and phase of m-sequence generated by this paper can be adjusted. Explain in detail the principles of the m sequence generation, and the matlab simulation process, the final simulation results, the results show that the simulation is feasible.【Key words】Shift register;Spread spectrum;m-sequence0 引言所谓扩频,是扩展频谱的简称。
直接扩频Matlab仿真实验报告m序列

西 安 邮 电 大 学实验名称:基于Matlab 直接序列扩频系统性能仿真一、 实验目的通过仿真,进一步掌握m 序列产生方法及其性能,重点掌握直接序列扩频通信系统原理及性能。
二、 实验环境Win10 Matlab2015b三、 实验内容● 产生n=7时203对应的m 序列,并给出其NRZ 波形的自相关函数;● 选用相位差16个码片的两条序列兼做地址和扩频码,构造码分系统,仿真其通信原理;●仿真AWGN 和单频干扰下系统的BER 性能。
四、 实验原理扩频通信的可行性是从香农公式引申而来2log (1+S/N)C W其中,C 为系统信道容量(bit/s );W 为系统信道带宽;N 为噪声功率S 为信号功率。
由上式可以看出,可以从两种途径提高信道容量C ,即加大带宽W 或提高信噪比S/N 。
也就是说当信道容量C 一定时,信道带宽W 和信噪比S/N 是可以互换的,增加带宽可以降低对信噪比的要求,可以使有用信号的功率接近甚至湮没在噪声功率之下。
扩频通信就是通过增加带宽来换取较低的信噪比,这就是扩频通信的基本思想和理论依据。
当信噪比无法提高时,可以加大带宽,达到提高信道容量的目的。
直接序列扩频的原理是,在发射端把有用信号与伪随机序列相乘(或者模二加),使信号的频谱展宽到一个很宽的范围,然后用扩展后的序列去调制载波。
在接收端,把接收到的信号用相同的伪随机序列相乘,有用信号与伪随机码相关,相乘后恢复为扩频前的信号。
输入的数据信息为d(t)(设基带带宽为B 1),由伪随机编码(如m 序列)调制成基带带宽为B 2的宽带信号,由于扩频信号带宽大于数据信号带宽,所以信号扩展的带宽由伪随机码控制,而与数据信号无关。
经扩频调制的信号再经射频调制后即可发送。
直扩系统的原理框图接收端收到发送来的信号,经混频得到中频信号后,首先通过同步电路捕捉并跟踪发端伪码的准确相位,由此产生与发端伪码相位完全一致的伪随机码作为扩频解扩的本地扩频码,再与中频信号进行相关解扩,恢复出扩频前的窄带信号,而在解扩处理中,干扰和噪声与伪随机码不相关故被扩展,通过滤波使之受到抑制,这样就可在较高的解扩输出信噪比条件下进行信息解调解码,最终获得信息数据。
M序列发生器设计实验指导书

M序列发生器设计实验一、实验原理:M序列码也称伪随机序列码,其主要特点是:(1)每个周期中,“1”码出现2n-1次,“0”码出现2n-1次,即0、1出现概率几乎相等。
(2)序列中连1的数目是n,连0的数目是n-1。
(3)分布无规律,具有与白噪声相似的伪随机特性。
由于具有这些特点,m序列码在通信、雷达、系统可靠性测试等方面获得了广泛地应用。
m序列码发生器是一种反馈移位型结构的电路,它由n位移位寄存器加异或反馈网络组成,其序列长度M=2n-1,只有一个多余状态即全0状态,所以称为最大线性序列码发生器。
由于其结构已定型,且反馈函数和连接形式都有一定的规律,因此利用查表的方式就设计出m 序列码。
列出部分m序列码的反馈函数F和移存器位数n的对应关系。
如果给定一个序列信号长度M,则根据M=2n-1求出n,由n查表便可以得到相应的反馈函数F。
二、基于DSP Builder 的设计M 序列发生器可由线性反馈寄存器(Linear Feedback Shift Registers,LFSR )来产生,如图1所示。
图1 线性反馈移位寄存器的构成其特征多项式可表示为:∑==ni i i x C x F 1)(在图1中涉及的乘法和加法都是指模二运算的乘法和加法,即逻辑与和逻辑或。
要产生最长的线性反馈移位寄存器序列的n 级移位寄存器,其特征多项式必须是n 次本原多项式。
例如n=5,可以生成M 序列的5级LFSR 的特征多项式,即:125++x x ,此式可生成的M 序列的周期为:125-。
下面以M 序列发生器模型125++x x 为例,利用DSP Builder 构建一个伪随机序列发生器。
图2显示了上式的DSP Builder 模型表述,这里采用相连的延时单元级作为移位寄存器,用异或(XOR )完成模二加运算,输出为Output 。
图2 M 序列发生器模型但应注意,图2所示的电路一般无法正常工作。
这是由于在DSP Builder 默认的延时单元在开始工作时,存储内容为0,而对于M 序列来说,起始序列为全0,那么根据多项式,输出序列也将为0.全0序列不是正常的M 序列。
基于MATLAB的一种m序列设计与实现

i性进行验证,对工程技术人员有很大的参考价值。
关键词m序列MATLAB相关性平衡性
1 引言
扩频技术在导航、通信、测控等领域都得到广泛 应用,扩频系统的抗干扰、保密、多址、捕获与跟踪等 都与扩频码的设计密切相关,因此扩频码的生成和 性能评估是扩频系统的关键核心技术,决定了系统
的性能甚至成败。扩频系统对扩频序列的要求是:① 尖锐的自相关特性;②尽可能小的互相关值;③足 够多的序列数;④序列平衡性好;⑤工程上易实现。
technicians.
Key words m sequence,MATLAB,correlation,equilibrium
安德鲁喜获德国iCE动车组长期合同
,7康普公司全资子公司暨全球通信系统及设备领域领袖企业安德鲁无线通信公司,近日成功斩获一项德国ICE动 车组长期合同,将为其提供更先进的无线覆盖通信系统。
N=2^n一1:
register=[zeros(1,n一1)1];%初始状态 mseqfunc l(1)=register(n); %第一个输出码元
for ii=2:N
newregister(1)=mod(sum(fbeonneetion. 水register),2);
for ij=2:n, newregister(ij)=register(iji一1);
朋汲孔A 8的
一种m
计
王雪
(北京电子职业技术学院北京100016)
一
h…’‘~‘…r 11一…,^一^’…‘1…÷…H‘…h●'-……,……’。‘^n…‘~j●J一…、……_~一一…,……
}摘要扩频码设计是扩频系统的关键技术,利用计算机实现伪随机码的
;之路。本文基于MATLAB平台编制了一种m序列生成及相关性评估程序
基于MATLAB的一种m序列设计与实现

基于MATLAB的一种m序列设计与实现
王雪
【期刊名称】《中国新通信》
【年(卷),期】2008(10)11
【摘要】扩频码设计是扩频系统的关键技术,利用计算机实现伪随机码的生成和性能评估是扩频系统设计的必由之路.本文基于MATLAB平台编制了一种m序列生成及相关性评估程序,程序具有友好的用户接口,可对其相关性进行验证,对工程技术人员有很大的参考价值.
【总页数】5页(P55-59)
【作者】王雪
【作者单位】北京电子职业技术学院,北京,100016
【正文语种】中文
【相关文献】
1.基于Matlab的m序列的仿真与实现 [J], 魏瑞
2.基于Matlab的m序列生成及性能仿真 [J], 周洪霞;刘水;唐金元;李洪烈
3.一种基于Matlab的扩频伪码M序列的产生方法 [J], 王丹志;李署坚
4.基于matlab的移位寄存器法m序列的产生 [J], 刘艳华
5.一种基于MATLAB的改进的水准网平差程序设计与实现 [J], 李亮亮;郭恒林;王利华
因版权原因,仅展示原文概要,查看原文内容请购买。
单片机matlab方式产生伪随机m序列

信息科学与技术学院通信原理课程设计课题名称:伪随机m序列发生器的设计学生姓名:张昕灏2018508087学院:信息科学与技术学院专业年级:电子信息项目2018级指导教师:田敏副教授完成日期:二○一三年七月十二日目录前言1第一章设计内容及要求21.1设计内容21.2设计要求21.3方案选择2第二章 m序列的特性分析42.1 m序列的原理42.2均衡特性52.3游程分布52.4线性叠加性62.5自相关特性6第三章 m序列设计83.1设计流程图83.2特征多项式确定83.3本原多项式确定103.4 m序列的最终产生<以五阶移位寄存器举例)11第四章设计成果分析及总结134.1仿真结果分析134.2设计总结14心得体会15参考文献16附录matlab程序17附录51单片机实现方法18电路图18设计说明18结果验证18C51 代码及与对应matlab代码20数模转换输出代码:20反馈链接状态及波形输出控制代码22使用器件23前言扩展频谱通信是一种不同于常规通信系统的新调制理论和技术,简称扩频通信[1]。
其设计思想是将待传输的信息信号用特定的扩频码扩展频谱后成为宽带信号进行传输,接收时再采用相应的技术手段将频谱压缩,恢复原来待传信息信号的带宽,从而实现通信。
扩频通信具有两个特点:传输信号的带宽远大于原始信息信号的带宽;传输信号的带宽主要有扩频码决定,此扩频码通常是伪随机码。
伪随机码(pseudo randomcode>简称PN码,可以人为产生与复制,具有类似白噪声的性质,相关函数具有尖锐的特性,功率谱占据很宽的频带,易于从其他信号或干扰中分离出来,具有优良的抗干扰特性,其特点是:具有尖锐的自相关函数;互相关函数值应足够小;有足够长的码周期,以确保抗侦破与抗干扰的要求;码的数量足够多,以实现码分多址的要求;平衡性好,以满足抗干扰的要求;项目上易于产生、加工、复制与控制[2]。
扩频通信的优势主要来自于伪随机码具有白噪声的统计特性。
实验5 m序列的产生

课程实验报告课程3G移动通信实验实验名称M序列的产生学院通信工程专业通信工程班级13083414学号13081405学生姓名田昕煜一、实验内容【实验目的】⏹加深对m序列产生原理的理解;⏹能够使用Matlab设计m序列发生器;【实验内容】⏹使用生成多项式(23)8=(10011)2产生第一个m序列;⏹使用生成多项式(31)8=(11001)2产生第二个m序列;【实验设备】⏹一台PC 机【实验步骤】1. 画出生成多项式对应的移位寄存器结构图2.应用Matlab语言编写程序,生成m序列,并对生成的m序列绘图【实验报告】按照要求完成实验报告。
实验报告中要求给出移位寄存器结构图和两个m序列对应的图形。
【例子】4级m序列(31)8=(11001)2=(c4,c3,c2,c1,c0)的产生:二、仿真程序及说明clear all;clc;r=5;a1=ones(1,r);m1=zeros(1,2^r-1);for i=1:(2^r-1)temp= mod((a1(4)+a1(1)),2); for j=r:-1:2a1(j)=a1(j-1);enda1(1)=temp;m1(i)=a1(r);endsubplot(2,1,1)stem(m1);axis([0 ,2^r, 0,2 ]);title('本原多项式为(23)8');a2=ones(1,r);m2=zeros(1,2^r-1);for i=1:(2^r-1)temp= mod((a2(4)+a2(3)),2);for j=r:-1:2a2(j)=a2(j-1);enda2(1)=temp;m2(i)=a2(r);endsubplot(2,1,2)stem(m2);axis([0 ,2^r, 0,2 ]);title('本原多项式为(31)8');三、总结学习了对于M序列的MATLAB编程,也对于通信原理中的8进制转换M序列有的巩固。
m序列发生器的设计与实现

第1章绪论1.1 课题背景在信息化社会,通信系统担负着信息传输、交换和处理的重要任务。
通信技术的发展代表了一个国家科学技术的发展现状,也成为国家经济发展的一个重要推动力。
扩展频谱通信是通信的一个重要分支和发展方向,它是扩展频谱技术和通信技术相结合的产物。
由于扩展频谱即使具有抗干扰能力强、截获率低、多址能力强、抗多径、保密性好及测距能力强等一系列的优点,使得扩展频谱通信越来越受到人们的重视。
随着大规模或超大规模集成电路技术、微电子技术、为处理技术的迅猛发展以及一些新型器件的广泛应用,扩展频谱通信的发展迈上了一个新的台阶,它不仅在军事通信中占有重要地位,而且正迅速地渗透到民用通信中。
可以毫不夸张地讲,在现代通信系统,特别是无线通信系统,没有扩展频谱技术,这些系统想生存都是比较困难的。
在扩展频谱系统中,伪随机序列起着重要的作用。
在直扩系统中,用伪随机序列将传输信息扩展,在接收时又用它将信息压缩,并使干扰信息功率扩展,提高了系统的抗干扰能力;在跳频系统中,用伪随机序列控制频率合成器产生的频率随机地跳变,躲避干扰;在跳时系统中,用伪随机序列控制脉冲发送的时间和持续时间。
由此可见,伪随机序列性能的好坏,直接关系到整个系统性能的好坏,是一个至关重要的问题。
m序列是最长线性移位寄存器序列,是伪随机序列中最重要的序列中的一种,这种序列易于产生,有优良的自相关特性。
在直扩系统中m序列用于扩展要传递的信号,在跳频系统中m序列用来控制跳频系统的频率合成器,组成随机跳频图案。
电子设计技术由于计算机技术的发展而产生了巨大变化。
本设计是利用电子设计方法,用电路图表示设计思想,用实验电路板搭载实验电路,进行模拟、仿真,用电子测试仪器进行功能、性能测试。
20世纪80年代,计算机辅助设计(CAD)技术开始发展,许多CAD工具软件开始流行。
在信息学科领域也和其他学科一样,计算机辅助设计技术步入了发展轨道。
由于电子科学是计算机科学的基础,计算机学科的发展离不开电子学科的支持,但是计算机科学又反作用于电子科学,加速了电子学科的发展。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
引言伪随机噪声具有类似于随机噪声的某些统计特性,同时又能够重复产生。
由于它具有随机噪声的优点,又避免了随机噪声的缺点,因此获得了日益广泛的实际实用。
这种周期性数字序列称为随机序列,有时又称为随机信号和伪随机码。
m序列是伪随机序列中最重要的序列中的一种,它不但具有易于产生的特点,还具有良好的自相关特性,在扩频通信中得到了广泛的应用。
1. m序列设计方案选择1.1 方案一编程实现m 序列:MA TLAB编程非常简单,无需进行变量声明,可以很方便的实现m序列。
1.2方案二图1.1 Simulink 实现m 序列Simulink 实现m 序列(如图1.1所示) 。
Simulink是MATLAB最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。
在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。
Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。
通过比较方案一和方案二,发现方案一的优点具有通用性,其中mserises.m相当于一个通项,根据具体的本原多项式调用它即可,而方案二利用MATLAB的simulink直接搭建模块,在移位寄存器较少时利用此方法极为简单,可是当移位寄存器的数量增多时,要搭建那么多的模块就显得很繁琐,缺乏通用性。
2.Simulink工具介绍2.1 Simulink简介Simulink是MATLAB软件最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。
在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可以构造出复杂的系统。
Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink已被广泛应用与控制理论和数字信号处理的复杂仿真和设计。
同时有大量的第三方软件和硬件可应用于或被要求应用于Simulink。
2.2 Simulink的功能和特点Simulink是MATLAB中的一种可视化仿真工具,是一种基于MATLAB的框图设计环境,是实现动态系统建模、仿真和分析的一个软件包,被广泛应用于线性系统、非线性系统、数字控制及数字信号处理的建模和仿真中。
Simulink可以用连续采样时间、离散采样时间或两种混合的采样时间进行建模,它也支持多速率系统,也就是系统中的不同部分具有不同的采样速率。
为了创建动态系统模型,Simulink提供了一个建立模型方块图的图形用户接口(GUI),这个创建过程只需单击和拖动鼠标操作就能完成,它提供了一种更快捷、直接明了的方式,而且用户可以立即看到系统的仿真结果。
Simulink是用于动态系统和嵌入式系统的多领域仿真和基于模型的设计工具。
对各种时变系统,包括通讯、控制、信号处理、视频处理和图像处理等系统,Simulink提供了交互式图形化环境和可定制模块库对其进行设计、仿真、执行和测试。
构架在Simulink基础之上的其他产品扩展了Simulink多领域建模功能,也提供了用于设计、执行、验证和确认任务的相应工具。
Simulink与MATLAB 紧密集成,可以直接访问MATLAB大量的工具来进行算法研发、仿真的分析和可视化、批处理脚本的创建、建模环境的定制以及信号参数和测试数据的定义。
Simulink的特点:丰富的可扩充的预定义模块库。
交互式的图形编辑器来组合和管理直观的模块图。
以设计功能的层次性来分割模型,实现对复杂设计的管理。
通过Model Explorer 导航、创建、配置、搜索模型中的任意信号、参数、属性,生成模型代码。
提供API用于与其他仿真程序的连接或与手写代码集成。
使用Embedded MATLAB 模块在Simulink和嵌入式系统执行中调用MATLAB算法。
使用定步长或变步长运行仿真,根据仿真模式(Normal,Accelerator,Rapid Accelerator)来决定以解释性的方式运行或以编译C代码的形式来运行模型。
图形化的调试器和剖析器来检查仿真结果,诊断设计的性能和异常行为。
可访问MA TLAB从而对结果进行分析与可视化,定制建模环境,定义信号参数和测试数据。
3. m序列产生和性质3.1 m 序列的原理、结构及产生m 序列是最长线性反馈移位寄存器序列的简称,m 序列是由带线性反馈的移位寄存器产生的.由n级串联的移位寄存器和和反馈逻辑线路可组成动态移位寄存器,如果反馈逻辑线路只由模2和构成,则称为线性反馈移位寄存器。
带线性反馈逻辑的移位寄存器设定初始状态后,在时钟触发下,每次移位后各级寄存器会发生变化。
其中任何一级寄存器的输出,随着时钟节拍的推移都会产生一个序列,该序列称为移位寄存器序列。
n级线性移位寄存器的如图3.1所示:图3.1 n 级线性移位寄存器图中i C 表示反馈线的两种可能连接方式,i C =1表示连线接通,第n-i 级输出加入反馈中;i C =0表示连接线断开,第n-i 级输出未参加反馈。
因此,一般形式的线性反馈逻辑表达式为112201(mod 2)nn n n n i n i i a C a C a C a C a ---==⊕⊕⊕=∑将等式左面的n a 移至右面,并将00(1)n n a C a C ==代入上式,则上式可改写为10ni n i C a -==∑定义一个与上式相对应的多项式0()n i i i F x C x ==∑,其中x 的幂次表示元素的相应位置。
式称为线性反馈移位寄存器的特征多项式,特征多项式与输出序列的周期有密切关系.当F(x)满足下列三个条件时,就一定能产生m 序列:(1) F(x)是不可约的,即不能再分解多项式;(2) F(x)可整除1px +,这里21n p =-;(3) F(x)不能整除1qx +,这里q<p.满足上述条件的多项式称为本原多项式.这样产生m 序列的充要条件就变成了如何寻找本原多项式.3.2 m 序列的基本性质1) 均衡性. 在m 序列中一个周期内“1”的数目比“0”的数目多l 位,这表明,序列平均值很小. 2) m 序列和其移位后的序列逐位模2 相加,所得的序列还是m 序列,只是相移不同而已. 例如1110100与向右移3 位后的序列1001110逐位模2相加后的序列为0111010 ,相当于原序列向右移1位后的序列,仍是m 序列.3) m 序列发生器中移位寄存器的各种状态,除全0 状态外,其他状态只在m 序列中出现1 次.如7 位m 序列中顺序出现的状态为111 ,110 ,101 ,010 ,100 ,001 和011 ,然后再回到初始状态111.4) m 序列发生器中,并不是任何抽头组合都能产生m 序列. 理论分析指出,产生的m 序列数由下式决定:Φ(2 n - 1) / n其中Φ( X) 为欧拉数(即包括1 在内的小于X 并与它互质的正整数的个数) . 例如5 级移位寄存器产生的31 位m 序列只有6 个.5) m 序列具有良好的自相关特性,其自相关系数:从m 序列的自相关系数可以看出,m 序列是一个狭义伪随机码.10()10j j j N ρ=⎧⎪=⎨-≠⎪⎩4. m 序列的程序代码及运行结果4.1 m 序列程序根据m 序列的特征方程:20120()nni n i i f x c c x c x c x c x ==++++=∑并根据其联接多项式编写Matlab 程序. 输入参数为由本原多项式所决定的反馈连接形式,以五阶m 序列为例,其中用于产生m 序列的程序代码如下: m=5an=[0 0 0 0 1]; %初始寄存器的内容 cn=[0 0 1 0 1]; %cn 为移位寄存器len=length(an); %所需移位寄存器的内容 an=[zeros(1,len-1),1];L=2^len-1; %m 序列的长度m(1)=an(1);%m 序列的第一个输出码元 for i=2:Lan1(1:len-1)=an(2:len);an1(len)=mod(sum(cn.*an),2);%寄存器与反馈的模2和 an=an1;%移位后的寄存器 m(i)=an(1);%新的寄存器输出 endstairs(m) %对m 序列绘图将以上代码命名为Untitled.m 运行结果见图4.1。
>> Untitled m =5(N-1)T c (N+1)T c-NT c NT c 0 图3.2 m 序列信号的自相关函数图4.1 m序列的输出4.2 Simulink实现m序列在Simulink中建模如图4.2所示。
图4.2 m序列的仿真框图运行图4.2中的模型文件,所得结果如图4.3所示。
图4.3 m 序列的输出4.3 输入本原多项式产生m 序列以5 阶移位寄存器为例来产生m 序列,由文献可知其特征多项式52()1f x x x =++为本原多项式,亦及其反馈连接形式为[1C 2C 3C 4C 5C ]=[0 0 1 0 1];移位寄存器结构为图4.4 移位寄存器结构利用Matlab 编程环境求m 序列的自相关特性程序: cleara=[1 1 0 1 0 1 0 0 0 1 1 1 0 1 1 1 1 1 0 0 1 0 0 1 1 0 0 0 0 1 0]; b=[0 1 1 0 1 0 1 0 0 0 1 1 1 0 1 1 1 1 1 0 0 1 0 0 1 1 0 0 0 0 1]; L=length(b); N=120; x=[1:N]; for k=1:N c=xor(a,b); D=sum(c); A=L-D;R(k)=(A-D)/(A+D); b=[b(L),b(1:L-1)];plot(k,R(k));hold onendplot(x,R);grid运行结果见图4.5。
图4.5 5级线性反馈移位寄存器产生m序列的相关特性5. 程序调试及运行结果分析通过运行结果可以看出是由0、1组成的阶梯形图形,Stairs函数功能是画阶梯形,生成一系列的m序列,成功实现了要求。
在调试过程中遇到一些错误,例如:???Subscript indices must either be real positive integers or logicals.经过认真分析,解决了错误。
6. 心得体会课程设计是一个十分有价值,有意义的实践活动,把一个课题设计好不是一步到位的,是经过反复修改,不断调试的过程,其间有困难也有乐趣,使人对工程实践有一个初步的认识。
本次课程设计完全实现了设计要求,利用软件实现m序列的生成,通过这次实践不但加深了对m 序列的了解,而且对MA TLAB编程有了很好的掌握,在不断的程序调错中提高了自己寻错的能力。