基于matlab的伪随机序列实现
- 格式:pptx
- 大小:190.97 KB
- 文档页数:9
随机信号分析实验报告——基于MATLAB语言姓名:_班级:_学号:专业:目录实验一随机序列的产生及数字特征估计 (2)实验目的 (2)实验原理 (2)实验内容及实验结果 (3)实验小结 (6)实验二随机过程的模拟与数字特征 (7)实验目的 (7)实验原理 (7)实验内容及实验结果 (8)实验小结 (11)实验三随机过程通过线性系统的分析 (12)实验目的 (12)实验原理 (12)实验内容及实验结果 (13)实验小结 (17)实验四窄带随机过程的产生及其性能测试 (18)实验目的 (18)实验原理 (18)实验内容及实验结果 (18)实验小结 (23)实验总结 (23)实验一随机序列的产生及数字特征估计实验目的1.学习和掌握随机数的产生方法。
2.实现随机序列的数字特征估计。
实验原理1.随机数的产生随机数指的是各种不同分布随机变量的抽样序列(样本值序列)。
进行随机信号仿真分析时,需要模拟产生各种分布的随机数。
在计算机仿真时,通常利用数学方法产生随机数,这种随机数称为伪随机数。
伪随机数是按照一定的计算公式产生的,这个公式称为随机数发生器。
伪随机数本质上不是随机的,而且存在周期性,但是如果计算公式选择适当,所产生的数据看似随机的,与真正的随机数具有相近的统计特性,可以作为随机数使用。
(0,1)均匀分布随机数是最最基本、最简单的随机数。
(0,1)均匀分布指的是在[0,1]区间上的均匀分布, U(0,1)。
即实际应用中有许多现成的随机数发生器可以用于产生(0,1)均匀分布随机数,通常采用的方法为线性同余法,公式如下:,序列为产生的(0,1)均匀分布随机数。
定理1.1若随机变量X 具有连续分布函数,而R 为(0,1)均匀分布随机变量,则有2.MATLAB中产生随机序列的函数(1)(0,1)均匀分布的随机序列函数:rand用法:x = rand(m,n)功能:产生m×n 的均匀分布随机数矩阵。
(2)正态分布的随机序列函数:randn用法:x = randn(m,n)功能:产生m×n 的标准正态分布随机数矩阵。
伪随机序列发生器一、实验目的:理解伪随机序列发生器的工作原理以及实现方法,掌握MATLAB\DSP BUILDER设计的基本步骤和方法。
二、实验条件:1. 安装WindowsXP系统的PC机;2. 安装QuartusII6.0 EDA软件;的序列发生器,并通⒈ ⒉ ⒊⒋⒌⒍⒎⒏⒐ ⒑ ⒒⒓⒔⒕⒖⒗四、实验原理:对于数字信号传输系统,传送的数字基带信号(一般是一个数字序列),由于载有信息,在时间上往往是不平均的(比如数字化的语音信号),对应的数字序列编码的特性,不利于数字信号的传输。
对此,可以通过对数字基带信号预先进行“随机化”(加扰)处理,使得信号频谱在通带内平均化,改善数字信号的传输;然后在接受端进行解扰操作,恢复到原来的信号。
伪随机序列广泛应用与这类加扰与解扰操作中。
我们下面用DSP BUILDER来构建一中伪随机序列发生器——m序列发生器,这是一种很常见的伪随机序列发生器,可以由线性反馈器件来产生,如下图:其特征多项式为:()∑==ni i i x C x F 0注:其中的乘法和加法运算都是模二运算,即逻辑与和逻辑或。
可以证明,对于一个n 次多项式,与其对应的随机序列的周期为。
12−n 接下来我们以为例,利用DSP BUILDER 构建这样一个伪随机序列发生器。
125++x x开Simulink 浏览器。
Simulink我们可以看到在Simulink 工作库中所安装的Altera DSP Builder 库。
2. 点击Simulink 的菜单File\New\Model 菜单项,新建一个空的模型文件。
3. 按照下图在Model编辑器的工作区中放置如下的模型:其中Logical Bit Operator模块在Gate & Control库中,把它拖到工作区中后双击打开参数设置对话框,设置成2输入异或门。
为了能够在Matlab中获得仿真结果,可以给输出再添加一个示波器Scope,这个模型在Simulink标准库的Sources库中。
电子信息工程专业课程设计任务书1 需求分析伪随机信号既有随机信号所具有的优良的相关性,又有随机信号所不具备的规律性. 因此,伪随机信号既易于从干扰信号中被识别和分离出来,又可以方便地产生和重复,其相关函数接近白噪声的相关函数, 有随机噪声的优点,又避免了随机噪声的缺点. 伪随机序列具有可确定性、可重复性,易于实现相关接受或匹配接受,故有很好的抗干扰性能. 因此伪随机序列在相关辩识、伪码测距、导航、遥控遥测、扩频通信、多址通信、分离多径、误码测试、线形系统测量、数据加扰、信号同步等方面均有广泛的应用. m 序列是伪随机序列中最重要的一种,是最长线性移位寄存器序列,m 序列易于实现,具有优良的自相关特性,在直扩通信系统中用于扩展要传递的信号。
可以通过移位寄存器,利用MATLAB 编程产生m 序列。
2 概要设计m 序列是最长线性反馈移位寄存器序列的简称,m 序列是由带线性反馈的移位寄存器产生的.由n 级串联的移位寄存器和和反馈逻辑线路可组成动态移位寄存器,如果反馈逻辑线路只由模2和构成,则称为线性反馈移位寄存器。
带线性反馈逻辑的移位寄存器设定初始状态后,在时钟触发下,每次移位后各级寄存器会发生变化。
其中任何一级寄存器的输出,随着时钟节拍的推移都会产生一个序列,该序列称为移位寄存器序列。
n 级线性移位寄存器的如图1所示:图1 n 级线性移位寄存器图中i C 表示反馈线的两种可能连接方式,i C =1表示连线接通,第n-i 级输出加入反馈中;i C =0表示连接线断开,第n-i 级输出未参加反馈。
因此,一般形式的线性反馈逻辑表达式为112201(mod 2)n n n n n i n i i a C a C a C a C a ---==⊕⊕⊕=∑L将等式左面的n a 移至右面,并将00(1)n n a C a C ==代入上式,则上式可改写为100n i n i C a -==∑定义一个与上式相对应的多项式()ni i i F x C x ==∑其中x 的幂次表示元素的相应位置。
GPS 载波、伪码的matlab 实现与分析一、伪码生成及分析1、1 生成M 序列和Gold 码序列① 由于本原多项式分别为[2 0 1 1]和[2 4 1 1] (八进制)。
从而知道两M 序列的生成多项式为1031X X ++和10832X X X X 1++++。
此部分的程序设计思路为:先为两个十位移位寄存器赋初值(全1);后利用循环,每次把寄存器的输出放到M 序列储存器中,从而获得M 序列。
② 第一个Gold 码,使用第一个移位寄存器的第十级输出和第二个寄存器的第2级、第6级作为抽头的输出进行异或,异或的过程也在上部的循环中完成,每次异或的结果存于Gold 寄存器。
第二个Gold 码的生成与第一个类似,只是改为第二个寄存器的第3级、第7级作为抽头.1、2 对生成的伪随机码进行分析① 利用xcorr 函数对以上生成的两个M 序列分别进行自相关和互相关运算,其中需要将两M 序列进行双极性变换(xcorr 函数的要求)。
并画出自相关、互相关函数图像。
② 后利用FFT 函数,求取以上自相关函数的功率谱,并画出图像。
图像如下:图1③图像分析:由上图可验证,M序列作为近似白噪声的伪随机序列,其自相关函数近于冲击函数;互相关函数幅值近于0;功率谱密度函数是自相关函数的傅里叶变换,所以幅值近于常数1。
但在图像中有较多毛刺,与理想的图像有较大差别,可能是由于xcorr函数造成。
④利用xcorr函数对以上生成的两个Gold码序列分别进行自相关和互相关运算,其中需要将两Gold码序列进行双极性变换(xcorr 函数的要求)。
并画出自相关、互相关函数图像。
图像如下:图2图像分析:由上图可验证,Gold 码序列作为近似白噪声的伪随机序列,其自相关函数近于冲击函数;互相关函数幅值近于0。
但在图像中有较多毛刺,与理想的图像有较大差别,可能是由于xcorr 函数造成。
二、生成混沌序列并得到跳频序列2、1 生成混沌序列的原始序列① 采用Logistic (2n 1n X 2-1X ⨯=+)映射,设定初值为0.121381和0.121380,分别迭代50次,从而获得两个混沌序列。
m伪随机序列Matlab源代码%5阶m序列% 在MATLAB命令窗口输入以下:% fbconnection=[0 1 0 0 1];% mseq=m_sequence(fbconnection);% mseqfunction[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:n,newregister(j)=register(j-1);end;register=newregister;mseq(i)=register(n);end有关m序列的有一个作业要做一个和m序列相关的,先是形成自相关m序列,然后生成其自相关序列,两个都要产生图像。
这些我都完成了。
后面要用matlab图像处理,作出一个类似于示波器的调节旋钮的东西,点击一下就对自相关序列的延迟进行一些调节,调节至m序列和其自相关函数一样。
各位牛人看看,给些指点,做了3天了,怎么都做不出来。
代码如下:%m序列发生器及其自相关和功率谱密度clear all; close all;g = 19; % G = 10011state = 8;% state=1000L = 1000;%m序列产生N = 15;mq = mgen(g,state,L);%求序列自相关ms = conv( 1-2*mq, 1-2*mq(15:-1:1) )/N;figure(1)subplot(222)stem(ms(15:end));axis([0 63 -0.3 1.2]);title('m序列自相关序列')%m序列构成的信号(矩形脉冲)N_sample=8;Tc = 1;dt = Tc/N_sample;t = 0:dt:Tc*L-dt;gt = ones(1,N_sample);mt = sigexpand(1-2*mq,N_sample);mt = conv(mt,gt);figure(1)subplot(221);plot(t,mt(1:length(t)));axis([0 63 -1.2 1.2]);title('m序列矩形成形信号')st = sigexpand( 1-2*mq(1:15),N_sample );s = conv(st,gt);st = s(1:length(st));rt1 = conv(mt,st(end:-1:1))/(N*N_sample);subplot(223)plot(t,rt1(length(st):length(st)+length(t)-1) );axis([0 63 -0.2 1.2]);title('m序列矩形成形信号的自相关');xlabel('t');%sinc脉冲Tc = 1;dt = Tc/N_sample;t = -20:dt:20;gt = sinc(t/Tc);mt = sigexpand(1-2*mq,N_sample);mt = conv(mt,gt);st2 = sigexpand( 1-2*mq(1:15),N_sample );s2 = conv(st2,gt);st2 = s2;rt2 = conv(mt,st2(end:-1:1))/(N*N_sample);subplot(224);t1 = -55+dt:dt:Tc*L-dt;%plot(t,mt(1:length(t)) );plot(t1,rt2(1:length(t1)));axis([0 63 -0.5 1.2]);title('m序列sinc成形信号的自相关');xlabel('t');。
基于matlab的移位寄存器法m序列的产生【摘要】扩频通信是在民用和军用都有广泛应用的一种通信技术,自从其诞生就受到了广泛关注。
扩频通信中频谱的扩展是通过一个独立的伪随机序列来完成的。
其中m序列是最常用的一种伪随机码,本文在matlab平台上通过仿真,来研究如何用移位寄存器产生m序列,虽然matlab中有现成的m序列产生模块,但是它的相位是不可以调节的,而本文产生的m序列相位可以调节。
详细讲解了m序列的产生原理,和matlab仿真过程,最后给出了仿真结果,结果表明该方法是可行的。
【关键词】移位寄存器;扩频;m序列;Design of m-sequence Generator Based on Shift Register with MatlabLIUYan-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 wide attention 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的伪随机序列生成及相关函数仿真实验姓名:翁开传__专业:__通信工程___ 班级:__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的互相关函数并画出曲线。
1.用下式产生伪随机数:clc;clear;p=35;M=2^p;n=7;A=2^n+1;c=1;length=1000for i=2:length;x(1)=3;x(i)=mod(A*x(i-1)+c,M);endy=x/M;plot([1:length],y,'.')这种产生随机数的方法为混合同余法,当M=2^35,n=21,c=1时,相关系数接近于零。
但当n取值过大时,占用机器时间增加。
Coveyou给出的一组参数M=2^35,n=7,c=1,虽n取值不大,却能有效的减小序列的相关系数,且不占用过多的机器时间。
2.①用给出的等式产生M序列clc;clear;x(1)=0;x(2)=1;x(3)=0;x(4)=1;x(5)=0;x(6)=1;x(7)=0;x(8)=1;x(9)=0;length=500for i=10:500;x(i)=xor(x(i-4),x(i-9));endplot(x)分析:首先对x(1)到x(9)随即赋值,系数都为1,随后的变量由等式计算出来,由图可知,该序列的循环周期很长,0和1出现的概率基本相同。
②以此序列为基础产生逆序列clc;clear;x(1)=0;x(2)=1;x(3)=0;x(4)=1;x(5)=0;x(6)=1;x(7)=0;x(8)=1;x(9)=0;length=500for i=10:500;x(i)=xor(x(i-4),x(i-9));endy(i)=mod(i,2)for i=1:500z(i)=xor(x(i),y(i))endplot(z)逆M序列是M序列和方波序列复合结果,也是周期较长的随机序列,0和1出现概率相同。
③并将逆序M的幅值变为-a和+aclc;clear;x(1)=0;x(2)=1;x(3)=0;x(4)=1;x(5)=0;x(6)=1;x(7)=0;x(8)=1;x(9)=0;length=500for i=10:500;x(i)=xor(x(i-4),x(i-9));endy(i)=mod(i,2)for i=1:500z(i)=xor(x(i),y(i))enda=2for i=1:500b(i)=a*(1-2*z(i))endplot(b)分析:取a=2,幅值变为-2和+2。
中北大学课程设计任务书2014/2015 学年第二学期学院:信息与通信工程学院专业:电子信息科学与技术学生姓名:学号:课程设计题目:用Matlab产生伪随机序列,实现扰码解扰起迄日期:6月29日~7月10日课程设计地点:指导教师:程耀瑜、李永红学科部主任:程耀瑜下达任务书日期: 2015 年 6 月 29日课程设计任务书1.设计目的:通过本课程设计, 主要训练和培养学生综合应用所学过的信号及信息处理等课程的相关知识,独立完成信号仿真以及信号处理的能力。
包括:查阅资料、合理性的设计、分析和解决实际问题的能力,数学仿真软件Matlab和C语言程序设计的学习与应用,培养规范化书写说明书的能力。
2.设计内容和要求(包括原始数据、技术参数、条件、设计要求等):用Matlab产生伪随机序列,实现扰码和解扰(1)利用周期为255的m序列发生器;(2)利用周期为127的m序列发生器;(3)利用周期为63的m序列发生器;3.设计工作任务及工作量的要求〔包括课程设计计算说明书(论文)、图纸、实物样品等〕:课程设计说明书仿真结果课程设计任务书4.主要参考文献:要求按国标GB 7714—87《文后参考文献著录规则》书写,例:1 傅承义,陈运泰,祁贵中.地球物理学基础.北京:科学出版社,1985(5篇以上)5.设计成果形式及要求:课程设计说明书仿真结果6.工作计划及进度:2015年6 月29 日~ 7月3 日了解设计题目及熟悉资料;7月4日~ 7月5日确定各题目要求计算相关参数;7月6日~ 7月7 日结合各题目确定具体设计方案;7月8日~ 7月9日结合要求具体设计并仿真、整理报告;7月10日答辩。
学科主任审查意见:签字:年月日。