m序列产生
- 格式:doc
- 大小:138.00 KB
- 文档页数:4
m序列产生设计内容及要求基于MATLAB产生m序列要求:1.通过matlab编程产生m序列的产生原理及其产生方法。
2.对特定长度的m序列,分析其性质,及其用来构造其它序列的方法。
第二章 m序列设计方案的选择2.1 方案一MATLAB编程非常简单,无需进行变量声明,可以很方便的实现m序列。
2.2 方案二图2.1 Simulink实现m序列Simulink是MATLAB最重要的组件之一,它提供了一个动态系统建模,仿真和综合分析的集成环境。
在此环境中无需大量书写程序,而只需通过简单直观的鼠标操作,就可构造出复杂的系统。
Simulink具有适应性广,结构及流程清晰及仿真精细等优点,基于以上优点,Simulink已被广泛的运用到控制理论和数字信号处理的复杂仿真和设计。
1通过比较方案一和方案二,发现方案一的有点具有通用性而方案二利用MATLAB的Simulink直接搭建模块,在移位寄存器较少的情况下利用此方法比较简单,可是当移位寄存器的个数增多时,要搭建那么多的模块就显的很繁琐了,缺乏通用性,因此本次实验选择方案一。
第三章 m序列的产生及性质3.1 m序列的产生原理、结构及产生m序列是最长线性反馈移位寄存器序列的简称,m序列是由带线性反馈的移位寄存器产生的。
由n级串联的移位寄存器和反馈逻辑线路可组成动态移位寄存器,如果反馈逻辑线路只由模2和构成,则称为线性反馈移位寄存器。
带线性反馈逻辑的移位寄存器设定初始状态后,在时钟触发下,每次移位后各级寄存器会发生变化,其中任何一级寄存器的输出,随着时钟节拍的推移都会产生一个序列,该序列称为移位寄存器序列。
n级线性移位寄存器的如图3.1所示:图3.1 n级线性移位寄存器图中Ci表示反馈线的两种可能连接方式,Ci=1表示连线接通,第n-i级输出加入反馈中;Ci=0表示连线断开,第n-i级输出未参加反馈。
因此,一般形式的线性反馈逻辑表达式为------表达式3.1将等式左边的an移至右边,并将an=C0an(C0=1)带入上式,则上式可以写成-------表达式3.22定义一个与上式相对应的多项式--------表达式3.3其中x的幂次表示元素的相应位置。
做一个M 序列一、实验内容:利用MATLAB 语言产生一个M 序列m 序列是最长线性反馈移位寄存器序列的简称,m 序列是由带线性反馈的移位寄存器产生的.由n 级串联的移位寄存器和和反馈逻辑线路可组成动态移位寄存器,如果反馈逻辑线路只由模2和构成,则称为线性反馈移位寄存器。
带线性反馈逻辑的移位寄存器设定初始状态后,在时钟触发下,每次移位后各级寄存器会发生变化。
其中任何一级寄存器的输出,随着时钟节拍的推移都会产生一个序列,该序列称为移位寄存器序列。
n 级线性移位寄存器的如图1所示:图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 ==代入上式,则上式可改写为100ni n i C a -==∑定义一个与上式相对应的多项式1n a -2n a -3n a -∑∑∑∑1c 2c 3c 1n c -01c =1n c =0a 1a 输出()ni i i F x C x ==∑其中x 的幂次表示元素的相应位置。
式称为线性反馈移位寄存器的特征多项式,特征多项式与输出序列的周期有密切关系.当F(x)满足下列三个条件时,就一定能产生m 序列:(1) F(x)是不可约的,即不能再分解多项式; (2) F(x)可整除1px +,这里21n p =-; (3) F(x)不能整除1q x +,这里q<p.满足上述条件的多项式称为本原多项式.这样产生m 序列的充要条件就变成了如何寻找本原多项式.根据m 序列的特征方程:20120()nn i n i i f x c c x c x c x c x ==++++=∑并根据其联接多项式编写Matlab 程序.二、源程序如下:%m 序列发生器及其自相关 mseq.m clear all; close all; g=19;%G=10011; state=8;%state=1000 L=1000; %m 序列产生 N=15;mq=mgen(g,state,L); %m 序列自相关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序列自相关序列') figure(2)%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(2)%subplot(221);plot(t,mt(1:length(t)));axis([0 63 -0.3 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);figure(3)%subplot(223)plot(t,rt1(length(st):length(st)+length(t)-1));axis([0 63 -0.3 1.2]);title('m序列矩形成形信号的自相关');xlabel('t');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);figure(4)%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序列since成形信号的自相关');xlabel('t') 调用的子程序如下:(1)mgen.m:function [out] = mgen(g,state,N)%输入 g:m序列生成多项式(10进制输入)%state:寄存器初始状态(10进制输入)%N:输出序列长度% test g=11;state=3;N=15;gen = dec2bin(g)-48;M = length(gen);curState = dec2bin(state,M-1) - 48;for k =1:Nout(k) = curState(M-1);a = rem(sum( gen(2:end).*curState),2); curState = [a curState(1:M-2)];end(2)mseq.m%m序列发生器及其自相关 mseq.mclear all;close all;g=19;%G=10011;state=8;%state=1000L=1000;(3)sigexpand.m:function [out] = sigexpand(d,M)N = length(d);out = zeros(M,N);out(1,:)=d;out = reshape(out,1,M*N);四、仿真波形:测试结果:图2 m序列自相关序列图3 m序列矩形成形信号图4 m序列矩形成形信号的自相关图5 m序列since成形信号的自相关。
M序列是工程中常用的输入信号,它的性质类似于白噪声,而白噪声是理论上最好的输入信号,可见M序列的价值。
下面介绍M序列的matlab产生方法。
idinput函数产生系统辨识常用的典型信号。
格式u = idinput(N,type,band,levels)[u,freqs] = idinput(N,'sine',band,levels,sinedata)N产生的序列的长度,如果N=[N nu],则nu为输入的通道数,如果N=[P nu M],则nu指定通道数,P为周期,M*P为信号长度。
默认情况下,nu=1,M=1,即一个通道,一个周期。
Type指定产生信号的类型,可选类型如下Band指定信号的频率成分。
对于’rgs’、’rbs’、’sine’,band = [wlow, whigh]指定通带的范围,如果是白噪声信号,则band=[0, 1],这也是默认值。
指定非默认值时,相当于有色噪声。
对于’prbs’,band=[0, B],B表示信号在一个间隔1/B(时钟周期)内为恒值,默认为[0, 1]。
Levels指定输入的水平。
Levels=[minu, maxu],在type=’rbs’、’prbs’、’sine’时,表示信号u的值总是在minu和maxu之间。
对于type=’rgs’,minu指定信号的均值减标准差,maxu指定信号的均值加标准差,对于0均值、标准差为1的高斯白噪声信号,则levels=[-1, 1],这也是默认值。
说明对于PRBS信号,如果M>1,则序列的长度和PRBS周期会做调整,使PRBS的周期为对应一定阶数的最大值(即2^n-1,n为阶数);如果M=1,PRBS的周期是大于N 的相应阶数的值。
在多输入的情形时,信号被最大平移,即P/nu为此信号能被估计的模型阶次的上界。
上面的意思可如下理解:对于M=1时,ms = idinput(12, 'prbs', [0 1], [0 1]);figurestairs(ms)title('M序列')ylim([-0.5 1.5])结果如下同时,matlab给出如下警告Warning: The PRBS signal delivered is the 12 first values of a full sequence of length 15.即函数的输出为周期为15(大于12的第一个2^n-1的值)PRBS信号的前12个值组成的序列。
M 序列的产生及特性分析实验一:实验目的1、了解m 序列的特性及产生。
二:实验模块1、 主控单元模块2、 14号 CDMA 扩频模块3、示波器三:实验原理1、14号模块的框图14号模块框图2、14号模块框图说明(m 序列)127位128位该模块提供了四路速率为512K 的m 序列,测试点分别为PN1、PN2、PN3、PN4。
其中,PN2和PN4分别由PN 序列选择开关S2、S3控制;不同的开关码值,可以设置m 序列码元的不同偏移量。
开关S6是PN 序列长度设置开关,可选127位或128位,其中127位是PN 序列原始码长,128位是在原始码元的连6个0之后增加一个0得到。
Gold 序列测试点为G1和G2,其中G1由PN1和PN2合成,G2由PN3和PN4合成。
拨码开关S1和S4是分别设置W1和W2产生不同的Walsh 序列。
实验中还可以观察不同m 序列(或Gold 序列)和Walsh 序列的合成波形。
注意,每次设置拨码开关后,必须按复位键S7。
3、实验原理框图m 序列相关性实验框图为方便序列特性观察,本实验中将Walsh 序列码型设置开关S1和S4固定设置为某一种。
4、实验框图说明 m 序列的自相关函数为()R A D τ=-式中,A 为对应位码元相同的数目;D 为对应位码元不同的数目。
自相关系数为()A D A DP A Dρτ--==+ 对于m 序列,其码长为P=2n -1, 在这里P 也等于码序列中的码元数,即“0”和“1”个数的总和。
其中“0”的个数因为去掉移位寄存器的全“0”状态,所以A 值为121n A -=-“1”的个数(即不同位)D 为12n D -=m 序列的自相关系数为1 0()1 0,1,2,p τρτττ=⎧⎪=⎨-≠=⎪⎩…,p-1cT τm 序列的自相关函数四:实验步骤(注:实验过程中,凡是涉及到测试连线改变或者模块及仪器仪表的更换时,都需先停止运行仿真,待连线调整完后,再开启仿真进行后续调节测试。
M 序列的产生1. 对象或参数数学模型如下:)()2(5.0)1()2(7.0)1(5.1)(k v k u k u k z k z k z +-+-=-+--其中,)(k v 是白噪声N (0,1)(服从正态分布),输入信号采用4阶M 序列,幅度为1. 辨识模型如下:)()2()1()2()1()(2121k v k u b k b k z a k z a k z +-+-=-+--设输入信号的取值为k=1到k=16的M 序列,则待辨识参数L L L L LS z H H H ττθ1-)(=∧。
⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=∧4321a a a a LS θ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=)16(...)4()3(z z z z L ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡---=)14()15()14()15(......)2()3(z(2)-)3(-)1()2()1()2(-u u z z u u z u u z z H L 编制仿真程序,,获取输入输出数据,运用最小二乘法对系统的参数进行辨识,并将辨识结果与实际参数进行对比。
2. 程序框图3. 程序实现function [] = JM-232()%--------------------------------------------------------实验题目及初始化定义disp('最小二乘法的实现')disp(' ')disp('数学模型为:z(k)-1.5z(k-1)+0.7z(k-2)=u(k-1)+0.5u(k-2)+v(k).')disp(' 所选择的辨识模型为:z(k)+a1*z(k-1)+a2*z(k-2)=b1*u(k-1)+b2*u(k-2)+v(k).') disp(' 故实际参数a1=-1.5, a2=0.7, b1=1, b2=0.5. ')disp(' ')disp('系统输入采用4 阶M 序列且其幅度为1,输出受到白噪声序列v(k)干扰.') ds = input(' 假设白噪声序列v(k)服从正态分布,均值为0,请输入方差ds = '); disp(' ')disp(' ')a0=65539;M=2147483647;x=123456;b=10000;U=[];V=[];Z=[];T=[];P=zeros(20,4);H=zeros(14,4);LS=zeros(4,1);ZL=zeros(14,1);%------------------------------------------------产生4 阶M 序列作为输入信号u(k)fori=1:4P(1,i)=1;U(1)=-2*(P(1,4)-0.5);endfor j=2:16fori=2:4P(j,i)=P(j-1,i-1);endP(j,1)=mod(P(j-1,3)+P(j-1,4),2);U(j)=-2*(P(j,4)-0.5);enddisp('** 通过仿真获得:')disp(' ')disp(' 系统输入u(k)取k=1 到k=16 图形如figure 1 所示;')disp(' ')figure(1)plot(U);hold onaxis([0 17 -1.5 1.5])title('系统输入u(k)图形')%--------------------------------------------------产生白噪声作为干扰信号v(k)fori=1:192x=mod(a0*x+b,M);T(i)=x/M;endaT=mean(T);vT=var(T);fori=1:16tempsum=0;for j=1:12tempsum=tempsum+T(12*i-j+1);endV(i)=sqrt(ds)*(tempsum-12*aT)/sqrt(12*vT);endaV=mean(V);vV=var(V);disp(' 系统白噪声干扰v(k)取k=1 到k=16 图形如figure 2 所示;') disp([' 该系统白噪声v(k)均值为' num2str(aV)])disp([' 方差为' num2str(vV)])disp(' ')figure(2)plot(V);hold onaxis([0 17 -3 3])title('系统白噪声v(k)图形')%--------------------------------计算输出z(k),同时由系统输出构成观测矩阵ZL 与HZ(1)=0;Z(2)=0;for k=3:16Z(k)=1.5*Z(k-1)-0.7*Z(k-2)+U(k-1)+0.5*U(k-2)+V(k);ZL(k-2,1)=Z(k);endfori=1:14H(i,1)=-Z(i+1);H(i,2)=-Z(i);H(i,3)=U(i+1);H(i,4)=U(i);enddisp(' 系统输出z(k)图形如figure 3 所示;')disp(' ')figure(3)plot(Z)title('系统输出z(k)图形')%---------------------------------------------------------最小二乘法参数辨识LS=inv(H'*H)*H'*ZL;disp(' 运用最小二乘法对这一系统参数进行辨识,计算得到:')disp([' a1(实际值) = -1.5,a1(辨识值)= ' num2str(LS(1,1))])disp([' a2(实际值) = 0.7,a2(辨识值)= ' num2str(LS(2,1))])disp([' b1(实际值) = 1,b1(辨识值)= ' num2str(LS(3,1))])disp([' b2(实际值) = 0.5,b2(辨识值)= ' num2str(LS(4,1))])disp(' ')end4. 仿真结果本系统输入采用4 阶M 序列且其幅度为1,选取k=1 到k=16 数据,如图1所示系统输入图形。
M序列什么是M序列?M序列是一种特殊的二进制序列,具有良好的相关性和平衡性。
它在通信系统、密码学和伪随机序列生成器等领域中被广泛应用。
M序列由线性移位寄存器(LSR)和反馈逻辑电路组合而成。
LSR是一种数字逻辑电路,可以实现数据在存储器中的循环移位。
反馈逻辑电路根据存储器中的数据决定输入数据的变化,从而形成M序列。
M序列的特点1.长度固定: M序列的长度是2的幂次方,通常为2^N-1。
例如,长度为7、15、31的M序列在实际应用中较为常见。
2.短周期:因为M序列的长度是有限的,所以它必定会在一定步数之后开始重复。
这使得M序列可以用于周期性信号的产生。
3.高相关性:M序列具有良好的自相关性和互相关性。
自相关性是指序列与其自身的相关性,互相关性是指序列与其他序列的相关性。
M序列在CDMA通信系统中的应用就是基于其高相关性的特点。
4.平衡性:M序列的各个周期内0和1的数量基本相等。
这一特点使得M序列在调制中不会有严重的低频分量和漂移。
M序列的应用1.伪随机序列生成器:M序列可以作为一种伪随机序列的生成器。
例如,可以用M序列生成随机的信道编码序列,用于提高通信系统的帧同步性能。
2.CDMA通信系统:CDMA是一种多用户通信技术,其中各个用户使用不同的码片(即M序列)进行编码。
接收端根据匹配滤波器对接收信号进行处理,从而实现对特定用户的信号的提取。
3.密码学:M序列可以用于加密和解密数据。
通过将明文与M序列进行异或操作,可以生成密文。
密文再与同样的M序列异或,即可还原成原始明文。
4.随机性检测:M序列可以用于随机性检测。
通过比较M序列与随机序列的相关性,可以得出序列的随机程度,从而判断其安全性。
M序列的生成算法M序列的生成算法基于反馈逻辑电路。
具体步骤如下: 1. 设置一个初始状态,初始状态可以是全0或全1。
2. 设定反馈逻辑电路,用来决定存储器中下一个数据的取值。
3. 将存储器中的数据进行移位,将最右边的数据移位到最左边,并根据反馈逻辑电路确定新的最右边的数据。
m序列的原理m序列,也称为最大长度线性反馈移位寄存器(maximum length linear feedback shift register,简称LFSR)序列,是一种具有良好统计性质和随机性质的数字序列。
它由一个线性反馈移位寄存器(LFSR)产生,其中包含一个内部状态寄存器和一组特定的反馈函数。
LFSR是由一组触发器(一般为D触发器)和一组异或门组成的寄存器,它可以产生一系列的二进制位,这些二进制位可以看作是0和1组成的序列。
每个触发器中的值将根据反馈函数进行更新,这样就可以产生下一个序列位。
反馈函数定义了循环移位寄存器中每个触发器的输入。
m序列的最大长度是2^L - 1,其中L为移位寄存器的阶数,也即寄存器中触发器的个数。
m序列的特点是具有良好的统计特性和伪随机特性,它的自相关性和互相关性都非常低,几乎与随机序列无法区分。
而且,m序列相当于生成了所有可能的2^L - 1个非零二进制码字,因此可以广泛应用于通信、加密和编码领域。
产生m序列的方法如下:假设L为移位寄存器的阶数,初始状态为非全零状态。
每次循环将当前状态输入到反馈函数中,生成下一个序列位,并将状态进行移位,舍弃最高位,将新生成的序列位放在最低位。
这样,LFSR按照一定的规律循环移位,不断产生下一个序列位,直到达到最大长度。
需要注意的是,m序列的输出与初始状态有关,不同的初始状态会产生不同的序列。
因此,在使用m序列时,需要将初始状态选择为尽可能随机的值,以增加序列的随机性。
总结起来,m序列是通过LFSR产生的具有良好统计性质和随机性质的二进制序列。
它的最大长度为2^L - 1,可以用于通信、加密和编码等领域,并且其输出与初始状态有关,初始状态的选择对序列的随机性产生影响。
常见m序列什么是m序列?m序列(m-sequence)是一种特殊的二进制序列,也被称为最大长度线性反馈移位寄存器(maximum length linear feedback shift register, LFSR)序列。
它具有伪随机性质,广泛应用于通信、密码学、编码等领域。
m序列由一个线性反馈移位寄存器(LFSR)产生,LFSR是一种在数字电路中常见的寄存器,用于生成伪随机序列。
LFSR由一组触发器和逻辑门组成,触发器的输出通过逻辑门反馈到寄存器的输入,形成一个闭环。
m序列的长度为2^m - 1,其中m是LFSR的阶数,也是寄存器中触发器的数量。
m 序列具有良好的统计特性,其周期为2^m - 1,即在一个周期内,m序列的输出不会重复。
m序列的生成原理m序列的生成原理基于LFSR的工作原理。
LFSR由m个触发器组成,每个触发器可以存储一个二进制位。
触发器的输出通过逻辑门反馈到寄存器的输入,形成一个闭环。
LFSR的工作过程如下: 1. 初始化寄存器的状态,即给每个触发器赋初始值。
2. 在每个时钟周期内,寄存器中的位向右移动一位,最右边的位被丢弃,最左边的位由逻辑门计算得出,并存储在寄存器的最右边。
3. 重复第2步,直到寄存器的状态回到初始状态。
m序列的输出是寄存器中的位,通常取最右边的位作为序列的输出。
m序列的性质m序列具有以下性质: 1. 周期性:m序列的周期为2^m - 1,即在一个周期内,m 序列的输出不会重复。
2. 均匀性:m序列的输出0和1的个数相等,且相邻的位之间是独立的。
3. 自相关性:m序列的自相关函数在除了原点外都为0,即m序列与其自身进行位移后,相邻位之间的相关性很低。
4. 互相关性:m序列与另一个m序列进行互相关,结果为0,即不同的m序列之间没有相关性。
这些性质使得m序列在通信、密码学、编码等领域有着广泛的应用。
m序列的应用通信领域在通信领域,m序列被用于信号的调制和解调。
m序列是由多级移位寄存器或其他延迟元件通过线性反馈产生的最长的码序列,它具有以下特点:
1.易产生:m序列产生方便快捷,在扩频通信中最早获得广泛的应用。
2.规律性强:m序列有很强的规律特性,其均衡性、游程特性、移位
相加特性、自相关特性都比较好。
3.自相关性好:在一个周期中,m序列的“1”的个数比“0”的个数
多一个。
同时,一个m序列与其循环移位逐位比较,相同码的位数比不同码的位数相差一位。
4.互相关特性好:在IS-95的反向信道中,选择了m序列的PN码作
为地址码,利用不同相位m序列几乎正交的特性来为每个用户的业务信道分配了一个相位。
序列伪随机码产生及应用仿真matlab一、概述随机序列是一种具有随机性质的数字序列,可用于信息传输、通信系统、密码学、雷达等领域。
伪随机序列是一种经过数学算法产生的序列,其具有类似与随机序列的统计特性,但实际上是确定性的。
在通信系统中,伪随机序列广泛应用于码分多址技术、扩频通信、混沌通信等领域。
本文将介绍伪随机码的产生原理,并使用matlab进行仿真实现,以加深对该技术的理解。
二、伪随机码的产生原理伪随机码的产生主要包括线性反馈移位寄存器(LFSR)、加法(XOR)运算和乘法(AND)运算等步骤。
下面以LFSR为例,介绍伪随机码的产生原理。
1. LFSR原理LFSR是一种利用移位寄存器和反馈逻辑电路构成的伪随机码产生器。
在LFSR中,存在一个移位寄存器和一个反馈逻辑电路。
移位寄存器中存储了若干比特的信息,经过时钟信号的控制完成信息的移位操作。
而反馈逻辑电路则根据寄存器中的信息产生反馈信号,从而实现伪随机序列的产生。
2. 伪随机码的产生过程(1)初始化LFSR。
将移位寄存器中的初始状态设置为一个非零的值。
(2)循环移位寄存器。
根据时钟信号的控制,移位寄存器中的信息进行移位操作。
(3)根据反馈逻辑电路的输出,生成伪随机序列。
通过反馈逻辑电路生成的反馈信号,即为伪随机序列的一部分。
三、matlab仿真实现matlab是一种功能强大的科学计算软件,具有丰富的绘图和仿真功能。
下面将使用matlab进行伪随机码的产生和仿真实现。
1. 产生伪随机码在matlab中,可以使用shiftregister函数实现LFSR的移位寄存器功能。
结合matlab的位运算功能,可以方便地实现伪随机码的产生。
以下是一个简单的matlab代码示例:```matlab定义LFSR的初始状态state = [1 0 1 0 1];定义LFSR的反馈多项式polynomial = [5 2];产生伪随机码for i = 1:10获取LFSR的输出output = state(end);计算新的状态new_state = mod(sum(state(polynomial)), 2);更新状态state = [new_state, state(1:end-1)];显示输出disp(output);end```上述代码中,通过定义LFSR的初始状态和反馈多项式,使用循环产生了10个伪随机码的输出。
之前不懂系统辨识的理论,输入信号随便用了一个阶跃信号,后来发现阶跃信号其实很菜,不足以激励起系统的全部动态特性,额,实。
验数据立马弱爆了。
M 序列是工程中常用的输入信号,它的性质类似于白噪声,而白噪声是理论上最好的输入信号,可见M 序列的价值。
下面介绍M 序列的matlab 产生方法,看到很多论坛产生M 而序列的程序复用性不高,matlab 就提供了产生M 序列的专门函数,这里尝试一下。
idinput 函数产生系统辨识常用的典型信号。
格式u idinputNtypebandlevelsufreqs idinputNsinebandlevelssinedataN 产生的序列的长度,如果NN nu,则nu 为输入的通道数,如果NP nu M,则nu 指定通道数,P 为周期,MP 为信号长度。
默认情况下,nu1,M1,即一个通道,一个周期。
Type 指定产生信号的类型,可选类型如下…rgs‟ 高斯随机信号…rbs‟ (默认)二值随机信号…prbs‟ 二值伪随机信号(M 序列)…sine‟ 正弦信号和Band 指定信号的频率成分。
对于‟rgs‟、‟rbs‟、‟sine‟,band wlow whigh指定通带的范围,则如果是白噪声信号,band0 1,这也是默认值。
指定非默认值时,相当于有色噪声。
对于‟prbs‟,band0 B,B 表示信号在一个间隔1/B(时钟周期)内为恒值,默认为0 1。
Levels 指定输入的水平。
在Levelsminu maxu,type‟rbs‟、‟prbs‟、‟sine‟时,表示信号u 的值总是在minu 和maxu 之间。
对于type‟rgs‟,minu指定信号的均值减标准差,maxu 指定信号的均值加标准差,对于0均值、标准差为1 的高斯白噪声信号,则levels-1 1,这也是默认值。
说明对于PRBS 信号,如果M1,则序列的长度和PRBS 周期会做调整,使PRBS 的周期为对应一定阶数的最大值(即2n-1,n 为阶数);如果M1,PRBS 的周期是大于N 的相应阶数的值。
M序列原理及代码M序列,也称为最大线性互补序列(Maximum Length Linear Feedback Shift Register Sequence,简称Maximal Length LFSR Sequence),是一类具有最长周期的伪随机序列。
原理:M序列是用线性反馈移位寄存器(Linear Feedback Shift Register,简称LFSR)实现的。
LFSR是由多个反馈连接的寄存器组成,每次使用一个时钟周期,将最低位输出,并根据预设的反馈位进行移位操作。
当LFSR的长度达到最大值时,输出序列就成为了一个M序列。
一个M序列的周期长度为2^N-1,其中N为LFSR的长度。
M序列的序列长度等于N,因此一个M序列可以被表示为一个长度为N的二进制序列。
根据LFSR的长度和反馈连接的位置的不同,产生的M序列的质量也会有所差异。
较好的M序列具有均匀分布的频谱性质,并且能够通过各种统计测试。
代码实现:下面是一个简单的Python代码实现M序列生成器:```pythonclass MSequence:def __init__(self, taps):self.taps = tapsself.register = 1def shift(self):feedback = 1 if self.register & self.taps == self.taps else 0self.register = (self.register >> 1) , (feedback <<(len(bin(self.register))-2))def generate_sequence(self, length):sequence = []for _ in range(length):sequence.append(self.register & 1)self.shiftreturn sequence```在上述代码中,MSequence类包含了一个寄存器的状态和反馈位。
设计内容及要求
基于MATLAB产生m序列
要求:
1.通过matlab编程产生m序列的产生原理及其产生方法。
2.对特定长度的m序列,分析其性质,及其用来构造其它序列的方法。
第二章m序列设计方案的选择
2.1 方案一
MATLAB编程非常简单,无需进行变量声明,可以很方便的实现m序列。
2.2 方案二
图2.1 Simulink实现m序列
Simulink是MATLAB最重要的组件之一,它提供了一个动态系统建模,仿真和综合分析的集成环境。
在此环境中无需大量书写程序,而只需通过简单直观的鼠标操作,就可构造出复杂的系统。
Simulink具有适应性广,结构及流程清晰及仿真精细等优点,基于以上优点,Simulink已被广泛的运用到控制理论和数字信号处理的复杂仿真和设计。
通过比较方案一和方案二,发现方案一的有点具有通用性而方案二利用MATLAB的Simulink直接搭建模块,在移位寄存器较少的情况下利用此方法比较简单,可是当移位寄存器的个数增多时,要搭建那么多的模块就显的很繁琐了,缺乏通用性,因此本次实验选择方案一。
第三章m序列的产生及性质
3.1 m序列的产生原理、结构及产生
m序列是最长线性反馈移位寄存器序列的简称,m序列是由带线性反馈的移位寄存器产生的。
由n级串联的移位寄存器和反馈逻辑线路可组成动态移位寄存器,如果反馈逻辑线路只由模2和构成,则称为线性反馈移位寄存器。
带线性反馈逻辑的移位寄存器设定初始状态后,在时钟触发下,每次移位后各级寄存器会发生变化,其中任何一级寄存器的输出,随着时钟节拍的推移都会产生一个序列,该序列称为移位寄存器序列。
n级线性移位寄存器的如图3.1所示:
图3.1 n级线性移位寄存器
图中C i表示反馈线的两种可能连接方式,C i=1表示连线接通,第n-i
级输出加入反馈中;C i=0表示连线断开,第n-i级输出未参加反馈。
因此,一般形式的线性反馈逻辑表达式为
------表达式3.1将等式左边的a n移至右边,并将a n=C0a n(C0=1)带入上式,则上式可以
写成
-------表达式3.2
定义一个与上式相对应的多项式
--------表达式3.3
其中x的幂次表示元素的相应位置。
该式为线性反馈移位寄存器的特征
多项式,特征多项式与输出序列的周期有密切关系。
当F(x)满足下列三个条
件时,就一定能产生m序列:
(1)F(x)是不可约的,即不能再分解多项式;
(2)F(x)可整除x n+1,这里p=2n+1;
(3)F(x)不能整除x n+1,这里q<q.
满足上述条件的多项式称为本原多项式,这样产生m序列的充要条件
就变成了如何寻找本原多项式。
根据表9-1中的八进制的反馈系数,可以确定m序列发生器的结构。
以7级m序列反馈系数Ci=(211)8为例,首先将八进制的系数转化为二进制的系数即Ci=(010001001)2,由此我们可以得到各级反馈系数分别为:C0=1,C1=0,C3=0,C4=0,C5=0,C6=0,C7=1由此就很容易地构造出相应的m序列发生器。
根据反馈系数,其他级数的m序列的构造原理与上述方法相同。
下面通过实例来分析自相关特性
图9-3所示为4级m序列的码序列发生器。
假设初始状态为0001,在时钟脉冲的作
用下,逐次移位。
D3○+D4作为D1输入,则n=4码序列产生过程如表9-2所示。