M序列原理及代码(共7页).docx
精选优质文档-倾情为你奉上1、m序列1.1概述1.1.1实验原理(1)m序列概念和用途概念:m序列是由n级线性移位寄存器产生的周期为P=2n-1的码序列,是最长线性移位寄存器序列的简称。用途:码分多址系统主要采用两种长度的m序列:一种是周期为P=215-1的m序列,又称为短PN序列;另一种是周期为P=242-1的m序列,又称为长PN序列。(2)m序列的产生4级m序列的码序列发生器假设初始状态为0001,在时钟作用下,产生的m序列的状态表。4级m序列的周期P=24-1=15,相应的输出序列为:0111。线性移位反馈移位寄存器反馈系数Cim序列特性 均衡性:在一个周期中,m序列中“1”的个数比“0”的个数多1个。游程特性:长度为k的游程数占游程总数的1/2k 移位相加特性 :一个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源程序代码library ieee;use ieee.std_logic_1164.all;entity untitled3 is port(m:in std_logic_vector(1 downto 0); clk:in std_logic; m_out:out std_logic );end entity untitled3;architecture behave of untitled3 is signal out1:std_logic_vector(6 downto 0);-out1<=”; begin process(clk) begin if clk'event and clk='1'then case m is when"00"=> -13 m序列 if out1(2 downto 0)="000"then out1(0)<='1' else out1(1 downto 0)<=out1(2 downto 1); -右移 out1(2)<=out1(0) xor out1(1); end if;when"01"=> -23 m序列 if out1(3 downto 0)="0000"then out1(0)<='1' else out1(2 downto 0)<=out1(3 downto 1); -右移 out1(3)<=out1(0) xor out1(1); end if; when"10"=> -103 m序列 6级 if out1(3 downto 0)=""then out1(0)<='1' else out1(4 downto 0)<=out1(5 downto 1); -右移 out1(5)<=out1(0) xor out1(1); end if;when"11"=> -203 m序列7级 if out1(3 downto 0)=""then out1(0)<='1' else out1(5 downto 0)<=out1(6 downto 1); -右移 out1(6)<=out1(0) xor out1(1); end if; when others=>null; end case; m_out<=out1(0); end if; end process;end architecture behave;1.4仿真图3级M序列4级M序列6级M序列1.5测试波形专心-专注-专业