精华内容
下载资源
问答
  • FPGA && MATLAB 实现M序列发生器

    千次阅读 2019-05-29 21:48:06
    1、N=4的M序列发生器 1.1、实验原理 1.2、实验平台 1.3、N=4的M序列发生器在MATLAB上实现 1.4、N=4的M序列发生器在FPGA上实现 前言 本文是大学期间的课程设计作业。 1、N=4的M序列发生器 1.1、实验...

    目录

    前言

    1、N=4的M序列发生器

    1.1、实验原理

    1.2、实验平台

    1.3、N=4的M序列发生器在MATLAB上实现

    1.4、N=4的M序列发生器在FPGA上实现


     

    前言

    本文是大学期间的课程设计作业。

     

     

    1、N=4的M序列发生器

    1.1、实验原理

    1.2、实验平台

    1.3、N=4的M序列发生器在MATLAB上实现

    子函数:

    function [mseq]= m_sequence(fbconnection)
    n = length(fbconnection);
    N = 2^n-1;                          %m序列的长度
    register = [zeros(1,n - 1) 1];             %定义移位寄存器的初始状态
    mseq(1)= register(n);                  %m序列的第一个输出码元
    for i = 2:N
    newregister(1)= mod(sum(fbconnection.*register),2);
    %寄存器与反馈的模2和
    for j = 2:n
    newregister(j)= register(j-1);
    end;
    register = newregister;                 %移位后的寄存器
    mseq(i) = register(n);                  %新的寄存器输出
    end
    

    主函数:

    clear;
    %fbconnection=[0 1 0 0 1];             %这是n=5时的m序列
    fbconnection=[1 0 0 1];                %这是n=4时的m序列
    m_sequence=m_sequence(fbconnection);
    stem(m_sequence)
    axis([0 35 -0.2 1.2]);
    grid on;
    

    仿真结果

    M序列即为:1000-1111-0101-100

    1.4、N=4的M序列发生器在FPGA上实现

    顶层文件

    测试文件

    仿真结果

    M序列即为:1000-1111-0101-100

     

     

     

    >>点击此处返回导航页<<

     

     

     

     

     

    展开全文
  • Verilog实现m序列发生器

    万次阅读 多人点赞 2015-07-18 13:09:53
    1.m序列简介 m序列是目前广泛应用的一种伪随机序列,其在通信领域有着广泛的应用,如扩频通信,卫星通信的码分多址,数字数据中的加密、加扰、同步、误码率测量等领域。m序列在所有的伪随机序列里面的地位是最...
    1.m序列简介

    m序列是目前广泛应用的一种伪随机序列,其在通信领域有着广泛的应用,如扩频通信,卫星通信的码分多址,数字数据中的加密、加扰、同步、误码率测量等领域。m序列在所有的伪随机序列里面的地位是最基础同样也是最重要的。它的特点就是产生方便快捷,有很强的规律特性,同时自相关性、互相关特性也很好。在IS-95的反向信道中,选择了m序列的PN码作为地址码,利用不同相位m序列几乎正交的特性来为每个用户的业务信道分配了一个相位 。简单来说,n级反馈移位寄存器的状态最多由2^n 个,同时,在线性的反馈移位寄存器中,全“0”状态永不改变,所以也就是说,它的最长的周期就是 2^n - 1。
    2.m序列性质
    周期为2^n-1的m序列由以下几个特点:
    ①随机性
    在m序列的一个周期中,0和1出现概率大致相同,0码只比1码多一个,且1的个数为,0的个数为。
    ②移位可加性
    某个周期为p的m序列与其经任意延迟移位后的序列模2相加后,其结果仍是周期为p的m序列,只是原序列某次延迟移位后的序列。
    ③预先可确定性
    m序列是由移位寄存器的初始状态和反馈网络唯一确定的。
    ④游程特性
    序列中取值相同的相继元素称为一个游程。游程长度指的是游程中元素的个数。在m序列中,一共有个游程。其中长度为1的游程占总游程数的一半;长度为2的游程占总游程的1/4;长度为k的游程占总游程数的,且在长度为k的游程中,连0与连1的游程数各占一半。另外,还有一个长度为n的1游程和一个长度为(n一1)的0游程。
    3.特征方程
    image
    说明:①ci的值决定了反馈线的连接状态;
    ②在上式和后面的公式中都将“”简写为“+”;
    ③式中xi本身并无实际意义,它仅指明其系数是ci的值。
    ④特征方程f(x)决定了一个线性反馈移存器的结构,从而决定了它产生的序列的构造和周期。
    4.本原多项式
    使一个线性反馈移存器产生最长周期序列的充分必要条件是其特征方程f(x)为本原多项式。
    本原多项式是指满足下列条件的多项式:
    ①是既约的,即不能分解因子的;
    ② 可以整除(x^m + 1),m = 2^n – 1;即是( x^m + 1 )的一个因子;
    ③ 除不尽( x^q+ 1 ),q < m。
    常用本原多项式:
    image
    5.一般的线性反馈移存器方框
    image
    例:表示上式中仅x0, x1,和x4的系数c0 = c1 = c4 = 1,而其余系数c2 = c3 = 0。
    image

    6.Verilog代码
    /******************************************************************************
    功能:产生m序列 生成多项式f( x )=x^3 + x + 1
    email:lidong10280528
    作者:黎冬
    时间:2015.07.18
    ****************************************************************************/

    module m_sequence
    (
    sys_clk,
    sys_rst_n,
    out,shift
    );
    //input
    input sys_clk;
    input sys_rst_n;

    //output
    output out;//最终输出
    output [ 3:0 ]shift;//4位移位寄存器值的输出

    /***********************************************************************/

    reg [ 3:0 ]rShift;//4位移位寄存器
    reg rOut;
    always @( posedge sys_clk or negedge sys_rst_n )
    if( sys_rst_n == 0 )begin //初始化
    rShift <= 'b0110;
    rOut <= 1'b0;
    end
    else 
    begin
    rShift <= { feedback,rShift[ 3:1 ] }; //移位运算
    rOut <= rShift[ 0 ];

    end

    /************************************************************************/
    wire feedback = rShift[ 0 ]^rShift[ 3 ];
    assign out= rOut;
    assign shift = rShift;
    endmodule

    7.激励文件
    `timescale 1 ns/ 1ns
    module m_sequence_test();

    reg sys_clk,sys_rst_n;
    wire out;
    wire [ 3:0 ]shift;
    initial
    begin
    sys_clk = 1'b0;
    sys_rst_n = 1'b0;
    #100;
    sys_rst_n = 1'b1;
    forever #20 sys_clk = ~sys_clk;
    end

    m_sequence I1
    (
    .sys_clk( sys_clk ),
    .sys_rst_n( sys_rst_n ),
    .out( out ),
    .shift( shift )
    );
    endmodule

    8.结果
    image
    default

    展开全文
  • 基于74ls194的m序列发生器(硬件)

    千次阅读 2018-05-30 19:51:06
     若要求m序列发生器的反馈特征多项式为f(x)=x8+x4+x3+x2+1,则需要两个74ls194扩展成一个八位的移位寄存器。根据特征多项式来看,我们需要用到三个异或门(根据m序列产生的方式确定,即可将m序列产生重所说的线性...

      74ls194具有串行、并行输入,串行并行输出的双向移动功能。工作方式由其s0与s1两个引脚控制。
      若要求m序列发生器的反馈特征多项式为f(x)=x8+x4+x3+x2+1,则需要两个74ls194扩展成一个八位的移位寄存器。根据特征多项式来看,我们需要用到三个异或门(根据m序列产生的方式确定,即可将m序列产生重所说的线性模2和理解为异或运算),我采用的是74hc86芯片。应当注意的是,当控制s0s1为10或01时,即串行输入时无论左右移,并行输入口D0-D7输入均无效,即无论其输入任何数值都不会影响m序列的产生。因此,在左右移动之前,应当使用74ls194的并行置位功能输入初始序列,即让s0与s1均处于高电平。具体做法为将两块74ls794的两个s0和s1分别连接在一起连接,然后接地,在接地之前接一个开关,初始状态开关打开,两芯片的s1和s0处于高电平状态。开关闭合,引脚电平为低,符合左右移的要求。所以最开始应当给74ls的八个输入引脚一个初值。此外,两块芯片的输出端均有输出,故示波器可连接在任意一个端口作为串行输出端来检测m序列的产生与否。

      以上结论均来自proteus仿真的结果,或许与实际存在差距。
    展开全文
  • 【原创】基于FPGA的M序列发生器设计

    千次阅读 2020-04-16 14:21:59
    1.1 M序列简介 M序列是最长线性反馈移位寄存器序列的简称。它是由带线性反馈的移位寄存器产生的周期最长的序列。一般来说,一个n级线性反馈移位寄存器可能产生的最长周期为(2^n-1)。 因为移位寄存器的初始值不能为...

    作者:小周
    本文为明德扬原创及录用文章,转载请注明出处!

    1.1 M序列简介
    M序列是最长线性反馈移位寄存器序列的简称。它是由带线性反馈的移位寄存器产生的周期最长的序列。一般来说,一个n级线性反馈移位寄存器可能产生的最长周期为(2^n-1)。

    因为移位寄存器的初始值不能为0,否则不管怎么移,移位寄存器的值都不为0,所以最长周期为(2^n-1)。

    1.2 应用范围

    m序列是广泛应用的一种伪随机序列,其在通信领域有着广泛的应用,如扩频通信,卫星通信的码分多址,数字数据中的加密、加扰、同步、误码率测量等领域。

    在所有的伪随机序列中,m序列是最重要、最基本的一种伪随机序列。它容易产生,规律性强,有很好的自相关性和较好的互相关性。

    1.3 M序列模型

    n级线性移位寄存器结构如下
    在这里插入图片描述

    上图可以转换成数学表达式在这里插入图片描述

    其中Ci 的取值为0或1,其中C0 、Cn-1 为1。当此式为本原多项式(只能被1和自身整除,类似于质数)时才能产生M序列。

    这里给出2阶到10阶的本原多项式
    在这里插入图片描述

    1.4 FPGA实现

    我们以7阶、8阶本原多项式为例设计两个M序列发生器

    1.4.1 7阶架构设计
    在这里插入图片描述

    注: 代表异或

    说明:r0异或r4赋值给r6,其它值按位移就可以。

    信号说明
    在这里插入图片描述

    代码如下

    module ms7_generate(clk, rst_n, en, ms7, r7);
    
        parameter INIT = 7'b000_0001;
    
        input clk, rst_n;
        input en;
        output ms7;
        output reg [6:0] r7;
    
        assign ms7 = r7[0];
    
        always @ (posedge clk or negedge rst_n)begin
            if(!rst_n)
                r7 <= INIT;
            else if(en)begin
                r7[0] <= r7[1];
                r7[1] <= r7[2];
                r7[2] <= r7[3];
                r7[3] <= r7[4];
                r7[4] <= r7[5];
                r7[5] <= r7[6];
                r7[6] <= r7[0] ^ r7[4];
            end
            else
                r7 <= r7;
        end
    
    endmodule
    

    1.4.2 8阶架构设计
    在这里插入图片描述

    信号说明
    在这里插入图片描述

    代码如下

    module ms8_generate(clk, rst_n, en, ms8, r8);
         
         parameter INIT = 8'b0000_0001;
    
        input clk, rst_n;
        input en;
        output ms8;
        output reg [7:0] r8;
    
        assign ms8 = r8[0];
    
        always @ (posedge clk or negedge rst_n)begin
            if(!rst_n)
                r8 <= INIT;
            else if(en) begin
                r8[0] <= r8[1];
                r8[1] <= r8[2];
                r8[2] <= r8[3];
                r8[3] <= r8[4];
                r8[4] <= r8[5];
                r8[5] <= r8[6];
                r8[6] <= r8[7];
                r8[7] <= r8[0] ^ r8[4] ^ r8[5] ^ r8[6];
            end
            else
                r8 <= r8;
        end
    
    endmodule
    

    1.5仿真验证
    tb文件参考工程文件夹中的sim文件夹

    7阶仿真波形
    在这里插入图片描述

    8阶仿真波形
    在这里插入图片描述

    展开全文
  • 【verilog】十一、m序列发生器

    千次阅读 2020-07-04 11:55:57
    m序列:最长线性反馈移位寄存器序列的简称。是一种伪随机序列、伪噪声码。 伪随机序列:不能预先确定但可以重复实现的序列。 二、原理 递推方程: 特征方程: x^i仅指明其系数代表ci的值,x本身的...
  • 系统框图: RTL级电路: ASK、FSK、PSK调制结果图: 具体内容点击这里(或者复制下面网址) 网址:https://www.bilibili.com/read/cv4799713
  • 基于LFSR的伪随机序列发生器

    千次阅读 2018-04-18 21:11:45
    伪随机序列在现在的数字电路设计中还是蛮重要的,在找工作面试中也会碰到,因此整理一下伪随机序列发生器的设计。 伪随机序列包括m序列m序列是目前CDMA系统中采用的最基本的PN序列。 是最长线性反馈移位寄存器序列...
  • 1.m序列简介 m序列是目前广泛应用的一种伪随机序列,其在通信领域有着广泛的应用,如扩频通信,卫星通信的码分多址,数字数据中的加密、加扰、同步、误码率测量等领域。m序列在所有的伪随机序列里面的地位是最基础...
  • Verilog HDL设计实现m序列+选择

    千次阅读 2018-07-23 21:09:39
    设计m序列发生器,其特征方程为,输出数字序列信号m_sequence码速率为10Mbps;设计串行转并行电路,每4位m序列并行输出,先输入的串行数据位于并行输出数据的高位。设计测试程序,进行功能仿真,将Verilog代码和仿真...
  • m序列产生(FPGA学习)

    千次阅读 2019-05-02 17:06:54
    m序列产生器 摘自《Altera FPGA 系统设计实用教程》清华大学出版社 伪随机数在密码邻域的应用无处不在,是很多密码算法和密码协议的基础,常见伪随机数发生器基于线性反馈移位寄存器的伪随机数发生器,简称LFSR...
  • m序列产生原理及其性质

    万次阅读 多人点赞 2019-05-06 21:21:24
    m序列产生原理及其性质 一、m序列的简介 1、m序列是最长线性移位寄存器序列的简称。顾名思义,m序列是由多级移位寄存器或其延迟元件通过线性反馈产生的最长的码序列。在二进制移位寄存器中,若n为移位寄存器的级数...
  • 基于FPGA的伪随机序列发生器设计1 基本概念与应用1)LFSR:线性反馈移位寄存器(linear feedback shift register, LFSR)是指给定前一状态的输出,将...
  • 文章目录流密码(二)m序列、Geffe序列、钟控生成器m序列Geffe生成JK触发器please触发器钟控生成交错生成收缩生成 m序列 定义:若 C(D)∈Z2[D] 是一个L次本原多项式,则 <L,C(D)> 称 为最大长度LFSR。...
  • 序列信号发生器的三种实现方式

    千次阅读 2020-09-04 21:48:31
    一、状态转移型的序列信号产生的verilog HDL 设计用一个不断循环的状态机,循环产生序列信号001011。过程过于简单,我就不画状态图了。直接给出verilog HDL设计代码://有限状态机方式实现001011序列信号产生 ...
  •  计数型序列信号发生器能产生多组序列信号,这是移位型发生器所没有的功能.计数型序列信号发生器是由计数器和组合电路构成的。  本实验的目的就是设计一个序列信号发生器。设计产生序列11100100、11100100、···...
  • 后期更新:matlab中产生m序列最简单的方法是调用idinput()函数,关于idinput()的具体用法可以在matlab中查看说明,这里举两个简单的例子: src = idinput(8191,'RBS')'; % 产生随机的二进制数据 1 -1 m = idinput...
  • verilog 产生m序列

    千次阅读 2016-08-30 23:02:31
    m序列是最常用的伪随机序列,是最长线性反馈移位寄存器序列的简称。如果是4级的寄存器(下面都假设n=4),那么最长周期是2^4-1=15。 m序列的特征多项式必须是4次的本原多项式。必须满足条件: 1、既约的; ...
  • 完整的m序列序列生成函数和调用

    千次阅读 2017-10-03 17:25:47
    上午写的m序列的产生方法(点这里),下午我又把调用方法简单化了一下,把所有的代码贴上来,供大家参考。mseq.m生成m序列的主文件,调用的时候直接用生成系数的二进制或者八进制都行。function [seq]=mseq(coef) %=...
  • FPGA产生m序列及其应用

    千次阅读 2020-06-16 17:25:56
    伪随机序列又称为伪随机码,是...伪随机序列发生器 m序列在保密通信中的应用,如下表所示: 简单地说,就是将信号源发出的信息经过m序列的异或操作处理加密,达到接收方之前,再用加密时使用的那串m序列再次异或处理
  • m序列的原理以及verilog实现

    万次阅读 热门讨论 2017-09-21 19:19:16
    m序列是最长线性反馈移位寄存器序列的简称。它是由带线性反馈的移存产生的周期最长的序列。一般来说,一个n级线性反馈移存可能产生的最长周期等于(2^n -1)。 m序列是一种典型的伪随机序列。在通信领域有着...
  • 文章目录一、实验平台二、实验描述三、...最近在学习时序电路,接触到状态机,就利用有限状态机,写了一个8位的序列信号发生器(11010010),分为串行输出和并行输出。这次只是仿真,所以没有进行分频,不过我会把...
  • m序列详解及VHDL语言实现

    千次阅读 多人点赞 2019-01-29 17:56:10
    m序列产生,线性反馈移位寄存器,vhdl语言是实现
  • Verilog HDL 之 序列信号发生器 一、原理  在数字电路中, 序列信号是指在同步脉冲作用下循环地产生一串周期性的二进制信号.能产生这种信号的逻辑器件就称为序列信号发生器.根据结构不同,它可分为反馈移位型和...
  • 用verilog实现m序列生成

    千次阅读 2014-07-20 11:21:09
    m序列是最常用的伪随机序列,是最长线性y
  • 伪随机序列有很多种,如m序列、Gold序列和正交Gold序列,其中m序列的构造及MATLAB生成方法见: 线性移位寄存器序列(m序列)之MATLAB实现 m序列虽然性能优良,但同样长度的m序列个数不多,且m序列之间的互相关函数值...
  • LFSR及小m序列

    千次阅读 2020-04-20 21:21:40
    如果剩余的 2r−12^{r-1}2r−1个状态构成一个循环,即该循环以 N=2r−1N=2^{r-1}N=2r−1为周期,则称该循环输出序列为最大周期线性移位寄存器序列(简称 mmm序列)。 能够产生 mmm序列的充要条件是其特征多项式必须为...
  • 通过一个例子说明(m序列具有良好的自相关性) h1 = commsrc.pn('GenPoly', [1 1 0 1 1 0 0 0 0 0 0 0 0 1],...%[13 12 10 9 0] ;生成多项式系数,降序排列,可以二进制或者十进制书写 'InitialStates',[0 0 0 0...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 100,713
精华内容 40,285
关键字:

m序列发生器