M序列产生程序
- 格式:doc
- 大小:34.00 KB
- 文档页数:2
基于MATLAB的m序列产生第一章设计内容及要求基于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所示:◇A图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的幂次表示元素的相应位置。
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的幂次表示元素的相应位置。
基于matlab的m序列的产生和特性分析作者:耿亚南来源:《中国新通信》 2017年第15期【摘要】 m 序列是一种重要的伪随机序列。
本文借助MATLAB 平台,详细介绍了m 序列的产生原理,并仿真了由移位寄存器产生的m 序列,同时研究了m 序列的自相关函数并得到了m 序列自相关函数的图像。
仿真结果验证了该方法的正确性和可行性。
【关键字】 m 序列自相关函数 MATLAB一、引言m 序列是最长线性移位寄存器序列的简称,有着良好的自相关性,易于产生和复制,是目前广泛应用的一种伪随机序列。
其在通信领域有着广泛的应用,如扩频通信,卫星通信的码分多址,数字数据中的加密、加扰、同步、误码率测量等领域。
近几十年来,运用m 序列测量房间声学系统脉冲响应的技术研究也受到了人们的关注。
m 序列法测量技术有两大优点其一是较强的抗噪声性能,其二是运算速度快、效率高。
二、m 序列的产生2.1 m 序列的产生原理m 序列是由带线性反馈的移位寄存器产生的。
由n 级串联的移位寄存器和反馈逻辑线路可组成动态移位寄存器,如果反馈逻辑线路只由模2 和构成,则称为线性反馈移位寄存器。
m 序列的产生框图如图1 所示。
图中C0、C1…Cn 均为反馈线,其中C0= Cn=1,表示反馈连结。
因为m 序列是由循环序列发生器产生的,因此C0和Cn 肯定为1,即参与反馈。
而反馈系数C1、C2…Cn - 1若为1,参与反馈,若为0,则表示断开反馈线,即开路、无反馈连线。
2.2 MATLAB 仿真MATLAB 产生m 序列的部分程序:function[mseq]=m_sequence(fbconnection)n=length(fbconnection);N=2^n-1;register=[zeros(1,n-1) 1];mseq(1)=register(n);for i=2:Nnewregister(1)=mod(sum(fbconnection.*register),2);for j=2:nnewregister(j)=register(j-1);end;三、m 序列的自相关函数3.1 自相关函数自相关是指m 序列与逐位移位后的序列相关性的一种度量。
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序列的性质和特点;2.熟悉m序列的产生方法;3.了解m序列的DSP或CPLD实现方法。
二实验内容1.熟悉m序列的产生方法;2.测试m序列的波形;3*.用DSP或CPLD编程产生m序列。
三实验原理m序列是最长线性反馈移存器序列的简称,是伪随机序列的一种。
它是由带线性反馈的移存器产生的周期最长的一种序列。
m序列在一定的周期内具有自相关特性。
它的自相关特性和白噪声的自相关特性相似。
虽然它是预先可知的,但性质上和随机序列具有相同的性质。
比如:序列中“0”码与“1”码等抵及具有单峰自相关函数特性等。
1.m序列的产生m序列是由带线性反馈的移存器产生的。
结构如图:图1-1-1 反馈移位寄存器的结构其中an-i为移位寄存器中每位寄存器的状态,C i为第i位寄存器的反馈系数。
C i=1表示有反馈,C i=0表示无反馈。
我们先给出一个m序列的例子。
在图1-1-1中示出一个4级反馈移存器。
若其初始状态为(a3, a2, a1, a)=(1,0,0,0),则在移位一次时,由a3和a模2相加产生新的输入a4=1⊕0=1新的状态变为(a4, a3, a2, a1)=( 1, 1, 0, 0)这样移位15次后又回到初始状态(1,0,0,0),不难看出,若初始状态为全“0”,即“0,0,0,0”,则移位后得到的仍为全“0”状态。
这就意味着在这种反馈移存器中应避免出现全“0”状态。
不然移存器的状态将不会改变。
因为4级移存器共有24=16种可能的不同状态。
除全“0”状态外,只剩15种状态可用。
即由任何4级反馈移存器产生的序列的周期最长为15。
我们常常希望用尽可能小的级数产生尽可能长的序列。
由上例可见,一般说来,一个n 级反馈移存器可能产生的最长周期等于(2n –1)。
我们将这种最长的序列称为最长线性反馈1 1 1 1 0 1 0 1 1 0 0 1 0 0 00 1 1 1 1 0 1 0 1 1 0 0 1 0 00 0 1 1 1 1 0 1 0 1 1 0 0 1 00 0 0 1 1 1 1 0 1 0 1 1 0 0 1移存器序列,简称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('三种主要分集合并方式性能比较');。
伪随机码的⽣成及⾃相关函数的计算伪随机码的⽣成及⾃相关函数的计算1.函数seq=ms_generator(registers,connections)是m序列的⽣成函数,其中参数registers给出了以为寄存器的初始状态,connections给出了m序列的发⽣器。
m序列⽣成的程序如下: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:L;sum=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);sprintf('seq=%d',seq(i));End运⾏结果:ans =Columns 1 through 151 0 0 0 0 1 0 0 1 0 1 1 0 0 1Columns 16 through 301 1 1 1 0 0 0 1 1 0 1 1 1 0 1Column 31(2)函数auto_corr()计算⼆进制序列seq的⾃相关函数,并画出函数曲线。
程序代码如下:function 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_correlation;plot(0:len-1,auto_correlation);运⾏结果:ans =Columns 1 through 1531 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1Columns 16 through 30-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1Column 31-1函数曲线图:(3)函数cross_corr()计算⼆进制序列seq1和seq2的互相关函数。
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 序列的特性、产生方法及应用。
二、实验内容1、观察m 序列,识别其特征。
2、观察m 序列的自相关特性。
三、基本原理m 序列是有n 级线性移位寄存器产生的周期为21n -的码序列,是最长线性移位寄存器序列的简称。
码分多址系统主要采用两种长度的m 序列:一种是周期为1521-的m 序列,又称短PN 序列;另一种是周期为4221-的m 序列,又称为长PN 码序列。
m 序列主要有两个功能:①扩展调制信号的带宽到更大的传输带宽,即所谓的扩展频谱;②区分通过多址接入方式使用同一传输频带的不同用户的信号。
1、产生原理图9-1示出的是由n 级移位寄存器构成的码序列发生器。
寄存器的状态决定于时钟控制下输入的信息(“0”或“1”),例如第I 级移位寄存器状态决定于前一时钟脉冲后的第i -1级移位寄存器的状态。
图中C 0,C 1,…,C n 均为反馈线,其中C 0=C n =1,表示反馈连接。
因为m 序列是由循环序列发生器产生的,因此C 0和C n 肯定为1,即参与反馈。
而反馈系数C 1,C 2,…,C n-1若为1,参与反馈;若为0,则表示断开反馈线,即开路,无反馈连线。
图9-1 n 级循环序列发生器的模型一个线性反馈移动寄存器能否产生m 序列,决定于它的反馈系数(0,1,2,,)i c i n =,下表中列出了部分m 序列的反馈系数i c ,按照下表中的系数来构造移位寄存器,就能产生相应的m 序列。
表9-1 部分m 序列的反馈系数表根据表9-1中的八进制的反馈系数,可以确定m 序列发生器的结构。
以7级m 序列反馈系数8(211)i C =为例,首先将八进制的系数转化为二进制的系数即2(010001001)i C =,由此我们可以得到各级反馈系数分别为:01C =、10C =、30C =、41C =、50C =、60C =、71C =,由此就很容易地构造出相应的m 序列发生器。