1、m序列1.1概述1.1.1实验原理(1)m序列概念和用途①概念:m序列是由n级线性移位寄存器产生的周期为P=2^n-1的码序列,是最长线性移位寄存器序列的简称。②用途:码分多址系统主要采用两种长度的m序列:一种是周期为P=2^15-1的m序列,又称为短PN序列;另一种是周期为P=2^42-1的m序列,又称为长PN序列。(2)m序列的产生①4级m序列的码序列发生器假设初始状态为0001,在时钟作用下,产生的m序列的状态表。4级m序列的周期P=24-1=15,相应的输出序列为:100010011010111。②线性移位反馈移位寄存器反馈系数Ci③m序列特性均衡性:在一个周期中,m序列中“1”的个数比“0”的个数多1个。游程特性:长度为k的游程数占游程总数的1/2^k移位相加特性:一个m序列与其循环移位逐位比较,相同码的位数与不同码的位数相差1位。自相关特性:表征一个信号与延迟后自身信号的相似性。④m序列的构造——反馈线性反馈移存器1.1.2实验意义m序列是目前广泛应用的一种伪随机序列,在所有的伪随机序列中,m序列是最重要、最基本的一种伪随机序列。它容易产生,规律性强,有很好的自相关性和较好的互相关特性。m序列的生成是接下来的实验的基础,具有指导性的意义。1.1.3系统的主要功能设计本原多项式系数为13、23、103、203的m序列。1.1.4使用方法输入m后,输出相应的m序列。1.2程序设计1.2.1设计思想由m序列的产生过程,即通过带反馈的移位寄存器产生,容易想到EDA中的结构化的程序设计思想,即以DFF触发器作为底层文件,进行顶层文件设计,获得m序列。此设计的优点是程序思路简单,结构清晰,只要做出一种反馈系数的m序列,容易得到其他反馈系数的m序列;但也存在缺点,那就是结构化的设计使得代码写的过长。1.2.2软件设计流程及描述(1)流程图(2)描述clk上升沿触发程序,用case语句选择m为13,23,103,203中的哪种情况。做出判断后首先用if语句判断初始状态为全零的特殊情况,即若初始状态为全零则设置为非零状态。之后将最低位到次高位的数值依次右移一位,再将最高位和次高位异或后送到最低位,输出波形。1.3源程序代码libraryieee;useieee.std_logic_1164.all;entityuntitled3isport(m:instd_logic_vector(1downto0);clk:instd_logic;m_out:outstd_logic);endentityuntitled3;architecturebehaveofuntitled3issignalout1:std_logic_vector(6downto0);--out1=”0000000”;beginprocess(clk)beginifclk'eventandclk='1'thencasemiswhen00=--13m序列ifout1(2downto0)=000thenout1(0)='1';elseout1(1downto0)=out1(2downto1);--右移out1(2)=out1(0)xorout1(1);endif;when01=--23m序列ifout1(3downto0)=0000thenout1(0)='1';elseout1(2downto0)=out1(3downto1);--右移out1(3)=out1(0)xorout1(1);endif;when10=--103m序列6级ifout1(3downto0)=000000thenout1(0)='1';elseout1(4downto0)=out1(5downto1);--右移out1(5)=out1(0)xorout1(1);endif;when11=--203m序列7级ifout1(3downto0)=0000000thenout1(0)='1';elseout1(5downto0)=out1(6downto1);--右移out1(6)=out1(0)xorout1(1);endif;whenothers=null;endcase;m_out=out1(0);endif;endprocess;endarchitecturebehave;1.4仿真图3级M序列4级M序列6级M序列1.5测试波形