M序列原理及其verilog实现

M序列原理及其verilog实现
M序列原理及其verilog实现

M序列原理及其verilog实现

一.定义

m序列是最长线性移位寄存器序列的简称,是一种伪随机序列、伪噪声码(PN:pseudo-noise Sequence)。可以预先确定并且可以重复实现的序列称为确定序列;既不能预先确定又不能重复实现的序列称为随机序列;不能预先确定但可以重复实现的序列称为伪随机序列。

二. 原理

图1. 线性反馈移位寄存器原理框图

如图所示,m序列可由二进制线性反馈移位寄存器产生。它主要由n个串联的寄存器、移位脉冲产生器和模2加法器组成。图中第i级移存器的状态ai表示,ai=0 或ai=1,i=整数。反馈线的连接状态用ci 表示,ci=1表示此线接通(参加反馈),ci=0表示此线断开。由于反馈的存在,移存器的输入端受控地输入信号。不难看出,若初始状态为全“0”,则移位后得到的仍为全“0”,因此应避免出现全“0”状态,又因为n 级移存器共有2^n种可能的不同状态,除全“0”状态外,剩下2^n-1种状态可用。每移位一次,就出现一种状态,在移位若干次后,一定能重复出现前某一状态,其后的过程便周而复始了。反馈线位置不同将出现不同周期的不同序列,我们希望找到线性反馈的位置,能使移存器产生的序列最长,即达到周期P=2^n-1。按图中线路连接关系,可以写为:

该式称为递推方程。

上面曾经指出,ci的取值决定了移位寄存器的反馈连接和序列的结构。现在将它用下列方程表示:

该方程称为特征多项式。式中仅指明其系数ci的值(1或0),x本身的取值并无实际意义,也不需要去计算x的值。例如,若特征方程为f(x)=1+x+x4则它仅表示x0,x1和x4的系数c0=c1=c4=1,其余为零。经严格证明:若反馈移位寄存器的特征多项式为本原多项式,则移位寄存器能产生m序列。只要找到本原多项式,就可构成m系列发生器。

三. 本原多项式

若一个n次多项式f(x)满足下列条件:

1)f(x)为既约的,即不能再因式分解;

2)f(x)可整除(x^m +1),m=2^n -1;

3)f(x)除不尽(x^q +1),q

则称f(x)为本原多项式。为什么要理解本原多项式?因为一个线性反馈移存器能产生m序列的充要条件:反馈移存器的特征多项式为本原多项式。常用的本原多项式由查表得到。

四. m序列的基本性质如下:

(1)周期性:m序列的周期p取决于它的移位寄存器的级数, p=2^n-1;

(2)平衡特性:m序列中0和1的个数接近相等;m序列中一个周期内“1”的数目比“0”的数目多1个。

(3)游程特性:m序列中长度为1的游程约占游程总数的1/2,长度为2的游程约占游程总数的1/22 ,长度为3的游程约占游程总数的1/23 …

(4)线性叠加性:m序列和其移位后的序列逐位模2相加,所得的序列还是m序列,只是相移不同而已。

(5)二值自相关特性:码位数越长越接近于随机噪声的自相关特性。

五. verilog实现

module m_sequence(

input sclk,

input rst_n,

output wire m_seq

);

parameter POL Y = 8'b10001110;//由本原多项式得到

reg [7:0] shift_reg;

always@(posedge sclk or negedge rst_n)

begin

if(rst_n == 0) begin

shift_reg <= 8'b11111111;//初值不可为全零

end

else begin

shift_reg[7] <= (shift_reg[0] & POL Y[7])^

(shift_reg[1] & POL Y[6])^

(shift_reg[2] & POL Y[5])^

(shift_reg[3] & POL Y[4])^

(shift_reg[4] & POL Y[3])^

m序列Simulink仿真实现

m序列Simulink仿真Verilog实现1. 4阶m序列生成器

Simulink模型如下: 其中,可以在Unit Delay属性中设置初始值为1000,由于Unit Delay输出为double,所以要将其转为Boolean以便进行模二加运算,使用XOR实现。

下面分别是最后一级和所有级的输出波形,可以看出,与上面的是一致的。

Verilog实现 `timescale 1ns / 1ps ////////////////////////////////////////////////////////////////////////////////// // Company: // Engineer: // // Create Date: 11:02:17 05/01/2012 // Design Name: // Module Name: PNcode // Project Name: ////////////////////////////////////////////////////////////////////////////////// module PNcode( clk, rst, PNstate, PNout

); input clk; input rst; output PNstate; output PNout; // PN code n = 4, f(x) = 1 + x + x^4 parameter order = 4; reg PNout = 0; reg [order-1 : 0] PNstate = 0; always @ (posedge clk) if(rst == 1) begin PNout <= 0; PNstate <= 4'b1000; // PN seed = b1000 end else begin PNout <= PNstate[0]; PNstate <= {PNstate[3]+PNstate[0], PNstate[3:1]}; end endmodule 测试文件: `timescale 1ns / 1ps //////////////////////////////////////////////////////////////////////////////// // Company: // Engineer: // // Create Date: 14:37:43 05/01/2012 // Design Name: PNcode // Module Name: E:/me/CAST/Project/FPGAcomm/PNcode/PNcode_tb.v

verilog m序列发生器

module m_sequen( clk, rst, m_out ); input clk; input rst; output m_out; reg m_out; reg [7:0] reg_buffer; //-------------feedback--------------// wire feedback = reg_buffer[7] ^ reg_buffer[6] ^ reg_buffer[2] ^ reg_buffer[1] ; //----------initial,linear shifting---------// always @ (posedge clk,negedge rst) begin if(!rst) begin reg_buffer <= 8'b11111111; end else begin reg_buffer[7:0] <= {reg_buffer[6:0],feedback}; end end //-------------check all zero-------------// always @ (posedge clk,negedge rst) begin if(reg_buffer==8'b00000000) begin reg_buffer <= 8'b11111111; end end //----------------output----------------// always @ (posedge clk,negedge rst) begin if(!rst) begin

m_out <= 1'b0; end else begin m_out <= reg_buffer[7]; end end endmodule

4级m序列发生器设计参考

3级m序列发生器设计方案 图2.2 七位反馈移位移存器 方案一: 根据图2.2的结构模型,对于级数为n=3的m序列,可设置四个寄存器,将寄存器0和寄存器1进行异或运算,把结果赋给寄存器3。然后将寄存器2,1,0右移一位。再将寄存器3赋给寄存器2。这样就不会产生数据覆盖。最后把寄存器0输出。同理可得15位m序列,级数n=4的verilog建模思路。 方案二: 由于7位m序列1110010可用三位二进制7种状态表示,因此可用Moore有限状态机的行为进行建模方法。Moore有限状态机,其输出值只取决于当前状态,与输入值无关。可以通过在always语句块内使用case语句来实现,在每个case分支都应当有输出值及状态转换。设状态A=3'b111,B=3'b011,C=3'b001,D=3'b100,E=3'b010,F=3'b101,G=3'b110;它们的转换关系图如图2.3: 图 2.3 m序列发生器的状态转移图 方案一的程序比方案二简洁,方案二的思路比方案一更明白。二者的各有千秋。

4级m序列及其Manchester编码 module manchester_encodingnew(enc_data,m_test,clk); parameter BYTE_WIDTH=8; input clk; output enc_data; output m_test; reg phase; reg busy; wire clkr; wire enc_data; reg [2:0] bit_count; reg reg_data; reg Data_CLKT,Buff; reg [3:0]m_Buff; assign clkr=clk; initial begin Data_CLKT=0; busy=0; phase=0; bit_count=0; end always@(posedge clkr) begin Data_CLKT=~Data_CLKT; end always@ (posedge clkr) begin phase=~phase; end always@ (posedge clkr) begin if((bit_count==BYTE_WIDTH-1)&&phase) busy=0;

基于FPGA的VHDL语言m序列生成详解+源码

说明 可控m序列产生器我分成四个小模块来做,M,M1,M2,M3分别对应为:m序列产生器、控制器、码长选择器、码速率选择器。 一、M: m序列产生器 这是该设计的核心部分,原理就是设计一个通用m序列产生子单元,然后由外部选择器来写入码型,码长等参数,加以循环可连接成任意长度的m序列产生器,其子单元结构如下: 如上图,若N=15,就有15个这样的子单元首尾相接。注意:开头和结尾的两个子单元会有所不同,因为首单元需要输入初值,尾单元要进行直通反馈,在程序里请多留意。 图中,主要部件是一个D触发器,Q(N+1)为上一级输出;Q(N)既是本级输出;CP为选择后的时钟脉冲;B(N)为本级参数选择控制;A(N)受控于B(N),决定本级输出Q(N)是否反馈(B(N)为1时反馈);C(N)为本级反馈;C(N-1)为下一级反馈。具体原理参看m序列组成结构。 此外,本程序还加入了EN(发送控制)、RN(首单元置数)、SEL1(码长选择,即N的选择,N=2-15)、SEL2(码型选择,即正逆码选择)四个控制端,可满足设计要求。OP为码输出端。 二、M1:控制器

控制器主要是将外部的序列发送控制信号STA转换为EN和RN 两个控制信号。其中,EN与STA的波形基本一致,只是它与CP进行了同步处理;RN在EN为‘1’的头一个脉冲周期里置高电平,以达到为序列发生器的首端置数的目的。如果不清楚的话可以看一下它的模拟波形。(注意:STA要采用自锁定开关,高电平有效) 三、M2:码长选择 序列的码长选择既是N值的选择,码长=2**N-1。核心就是一个计数器,可从2计到15。按一次PUSH就可以自动加一(注意:按键建议采用自弹跳按键,如过需要软件清除按键震颤的话,我再做发给你),没有0,1两个状态。如果需要的话还可以扩展7段数码管的接口,以显示N值。 四、M3:码速率选择器 码的传输速率是靠CP来控制的,CP的频率就等于码元速率。这段程序包含一个倍频器,一个5分频的分频器,可把5MHZ的脉冲源CLK扩展成1MHZ和10MHZ。FSEL1、FSLE2、FSEL3分别在选择1、5、10MHZ时为高电平,其余两个为低,建议采用3选1单刀单掷开关。

verilog_m序列代码

// 可综合模块 // 此模块将signal.v 中产生的indata信号进行编码: // 1 编码成为31位的+M序列;0 编码为-M 序列。 // 其中包括了一个5级的移位寄存器用于产生M序列。 `timescale 1ns/1ns module coder( c lk_1, //数据输入时钟 clk_31, //数据输出时钟 indata, //输入数据 outdata, //输出数据 rst, //启动信号 en); //使能信号 input clk_1,clk_31; input rst,en; input indata; output [1:0] outdata; //输出信号:+1表示代码1 ;-1表示代码0 wire [1:0] outdata; reg indata_buf; //输入积存器 reg [4:0] shift_buf; //M序列产生的5位移位积存器 assign outdata =(en)?(((indata_buf^shift_buf[0])==1)?2'b11:2'b01):2'b00; //当en信号高电

平时, //输入信号为1时产生+M序列 //输入信号为-1时产生-M序列 always@(posedge clk_1) //clk_1信号来临则将输入信号indata积存到indata_buf中 indata_buf <=indata; always@(posedge clk_31) begin if(!rst) shift_buf <=5'b10000; //五位初始为10000 if(en) begin shift_buf[4] <=shift_buf[0]^shift_buf[3]; //5级M序列编码规则 shift_buf[0] <= shift_buf[1]; shift_buf[1] <= shift_buf[2]; shift_buf[2] <= shift_buf[3]; shift_buf[3] <= shift_buf[4]; end end

m序列发生器设计实现

河南师范大学设计性实验报告 学期:2014-2015学年第 1 学期 m序列发生器设计实现_实验 实验小组成员: 班级:2013级网络工程班 学院:计算机与信息工程学院 填表日期: 2014年 11月 29 日

实验项目简介: 1 问题描述 通常产生伪随机序列的数字电路为一反馈移位寄存器。根据其构成结构,它又分为线性反馈移位寄存器和非线性反馈移位寄存器两类,由线性反馈移位寄存器产生的周期最长的二进制数字序列称为最大长度线性反馈移位寄存器序列,简称m序列。 2.实验原理: 此实验是用4位移位寄存器实现可控乘/除法2到8步长为2n电路通过分析不难看出本次实验的乘除法运算中一个只出现三个数字2、4、8写成二进制为0010、0100、1000可以发现每一次乘法都只是将1向左移一个位每一次除法则是向右移一位,那么就可以使用74194双向移位寄存器。首先要了解4位移位寄存器。工作原理:74194是一个4位双向移位寄存器。它具有左移、右移、并行输入数据、保持以及清除等五种功能: 当~R=1MA MB=00 MA MB=01 MA MB=10 MA MB=11 3.一个完整的系统应具有以下功能: 1)控制信号的移动方向,通过改变S1S0的编码状态,使移位器左移、右移、保持等。 2)可以得到m序列的周期,通过观察示波器中CLK与Sl或者Sr的波形,可以得出m序列的周期。 4.实验目的: 1、掌握M序列信号产生的基本方法 2、利用EWB产生M序列信号,设计电路做成M序列信号发 5.实验条件:学院提供公共机房,1台/学生微型计算机。

实验总结: 1.在实验的过程中,小组成员积极准备。通过实验加深了对74194芯片性能的 了解,提高了各个成员的动手能力。 2.但是由于知识掌握不够全面准确的原因,实验过程中多次出现问题,小组成 员积极思考,最终解决了问题。 3.在观察m序列周期的过程中,出现了周期同预期不符合的情况,最终发现 是输入脉冲时出现了问题。

M序列原理及其verilog实现

M序列原理及其verilog实现 一.定义 m序列是最长线性移位寄存器序列的简称,是一种伪随机序列、伪噪声码(PN:pseudo-noise Sequence)。可以预先确定并且可以重复实现的序列称为确定序列;既不能预先确定又不能重复实现的序列称为随机序列;不能预先确定但可以重复实现的序列称为伪随机序列。 二. 原理 图1. 线性反馈移位寄存器原理框图 如图所示,m序列可由二进制线性反馈移位寄存器产生。它主要由n个串联的寄存器、移位脉冲产生器和模2加法器组成。图中第i级移存器的状态ai表示,ai=0 或ai=1,i=整数。反馈线的连接状态用ci 表示,ci=1表示此线接通(参加反馈),ci=0表示此线断开。由于反馈的存在,移存器的输入端受控地输入信号。不难看出,若初始状态为全“0”,则移位后得到的仍为全“0”,因此应避免出现全“0”状态,又因为n 级移存器共有2^n种可能的不同状态,除全“0”状态外,剩下2^n-1种状态可用。每移位一次,就出现一种状态,在移位若干次后,一定能重复出现前某一状态,其后的过程便周而复始了。反馈线位置不同将出现不同周期的不同序列,我们希望找到线性反馈的位置,能使移存器产生的序列最长,即达到周期P=2^n-1。按图中线路连接关系,可以写为: 该式称为递推方程。 上面曾经指出,ci的取值决定了移位寄存器的反馈连接和序列的结构。现在将它用下列方程表示: 该方程称为特征多项式。式中仅指明其系数ci的值(1或0),x本身的取值并无实际意义,也不需要去计算x的值。例如,若特征方程为f(x)=1+x+x4则它仅表示x0,x1和x4的系数c0=c1=c4=1,其余为零。经严格证明:若反馈移位寄存器的特征多项式为本原多项式,则移位寄存器能产生m序列。只要找到本原多项式,就可构成m系列发生器。 三. 本原多项式 若一个n次多项式f(x)满足下列条件: 1)f(x)为既约的,即不能再因式分解; 2)f(x)可整除(x^m +1),m=2^n -1; 3)f(x)除不尽(x^q +1),q

通信设计练习-M序列1

通信系统电路设计练习: M序列编码/解码器的设计 作业的背景及训练目的 为了给通信专业的同学们提供一个设计实践的机会,在最短的时间段内掌握数字设计的动手能力,提高Verilog语言的使用能力,所以专门设计了这样一个难度适中的数字通信系统设计练习。本练习是根据工程实际问题提出的,但为了便于同学理解,对设计需求指标做了许多简化。希望同学们在设计范例和老师的指导下,一步一步地达到设计目标。期望同学们能在两至三周内,参考设计范例,独立完成自己的设计任务,在这一过程中学习用Verilog编写RTL代码和仿真验证用测试代码技术,以及用综合器进行综合的技术、并熟练掌握较复杂数字系统的多层次的仿真验证的方法,以逐步提高同学在设计工作中的自信心。 1.1 M序列介绍: M序列是PN(pseudo noise)伪随机噪声中最广为人知的一种,主要用在扩频率通信中,先简要介绍一下扩频通信工程的原理,然后分析M序列的数学特性从而回答即为什么要选择M序列,然后再谈谈M序列在扩频应用中的局限性。有了一定的理论基础后,我们就可以开始讨论怎样用具体的硬件实现应用M序列

的扩频通信的发射端和接收端电路。 1.2扩频通信的短暂的历史 有关扩频通信技术的观点是在1941年由好莱坞女演员Hedy Lamarr 和钢琴家George Antheil提出的。基于对鱼雷控制的安全无线通信的思路,他们申请了美国专利#2.292.387。不幸的是,当时该技术并没有引起美国军方的重视,直到20世纪八十年代才引起关注,将它用于敌对环境中的无线通信系统。 扩频通信技术解决了短距离数据收发信机、如:卫星定位系统(GPS)、3G移动通信系统、WLAN (IEEE802.11a, IEEE802.11b, IEE802.11g)和蓝牙技术等应用的关键问题。扩频技术也为提高无线电频谱的利用率(无线电频谱是有限的因此也是一种昂贵的资源)提供帮助。 1.3扩频技术理论证明 在Shannon和Hartley信道容量定理中可以明显看出频谱扩展的作用: C = B Log2 (1+ S/N) 式中:C是信道容量、单位为比特每秒(bps),它是在理论上可接受的误码率(BER)下所允许的最大数据速率;B是要求的信道带宽,单位是Hz;S/N是信噪比。C表示通信信道所允许的信

EDA 课程设计M序列及相关检测器

目录 任务书 (1) 第一章系统分析 (2) 1.1QuartusII简介 (2) 第二章设计容及要求 (3) 2.1设计的目的及主要任务 (3) 2.1.1设计目的 (3) 2.1.2 设计容依据 (3) 2.2设计思想 (3) 第三章设计原理与模块分析 (4) 3.1 序列检测器介绍 (4) 3.2 序列检测器设计原理 (4) 3.3 序列检测器模块 (4) 3.3.1 分频器模块 (4) 3.3.2 序列输入模块 (5) 3.3.3 序列检测模块 (5) 3.4顶层文件 (6) 第四章电路仿真与分析 (8) 4.1 单元模块的仿真与分析 (8) 4.1.1 分频器模块的仿真与分析 (8) 4.1.2 序列信号输入模块的仿真与分析 (8) 4.1.3 序列检测模块的仿真与分析 (8) 4.2 顶层电路的仿真与分析 (9) 第五章电路的硬件调试 (10) 参考文献 (11) 附录 (11)

城建大学 课程设计任务书 系专业班级 课程设计名称:EDA技术及应用B 设计题目:M序列及相关检测器 完成期限:自年月日至年月日共 1 周 一.课程设计依据 在掌握常用数字电路原理和技术的基础上,根据EDA技术及应用课程所学知识,利用硬件描述语言(VHDL或VerilogHDL),EDA软件(QuartusⅡ)和硬件开发平台(达盛试验箱CycloneⅡFPGA)进行初步数字系统设计。 二.课程设计容 设计八位线性反馈移位寄存器产生伪随机序列,串行输出9600bit/s速率伪随机码用做测试数据,序列检测器对该序列进行10101010序列检测,连接伪随机序列发生器和序列检测器构成完整系统,如果检测到该码,则输出1指示灯亮,否则输出0。要求采用由状态机或串行滑窗方法检测器。 三.课程设计要求 1. 要求独立完成设计任务。 2. 课程设计说明书封面格式要求见《城建大学课程设计教学工作规》附表1 3. 课程设计的说明书要求简洁、通顺,计算正确,图纸表达容完整、清楚、规。 4. 测试要求:根据题目的特点,采用相应的时序仿真或者在实验系统上观察结果。 5. 课设说明书要求: 1) 说明题目的设计原理和思路、采用方法及设计流程。 2) 对各子模块的功能以及各子模块之间的关系作明确的描述。 3) 对实验和调试过程,仿真结果和时序图进行说明和分析。 4) 包含系统框图、电路原理图、HDL设计程序、仿真测试图。 指导教师(签字): 教研室主任(签字): 批准日期:

一次输出8bit-n4-m序列Simulink仿真Verilog实现

1.4阶m序列生成器 一开始希望通过使用8个PN序列生成器并行实现,但是,每个生成器都不能得到后8个状态的值。 由于后面的8bit PN序列,通过一个clk不可能通过状态转换实现,所以,只能通过计算得到 利用Matlab计算得到后8位PN码与初始状态的关系,得到一个输出生成矩阵,使用生成矩阵与初始状态相乘,即可得到8位PN码 同时,计算得到生成第8位PN码时移位寄存器的状态,得到一个初始值生成矩阵,使用此矩阵与初始状态相乘,即可得到生成第8位PN码时移位寄存器的状态,从而为下一次迭代提供初始状态。 两个矩阵在PN码生成过程中保持不变,而初始状态得到不断更新,8位PN码不断输出。 clc; clear; n = 4; % 4 order bit = zeros(9,n^2); bit(1,:) = [1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1]; initial = [1 0 0 0]; for i = 2:9 % generate polynimial, 1 + x + x^4, ==========x + x^4, bit(i,:) = [ mod( bit(i-1,1:n)+bit(i-1,3*n+1:4*n), 2), bit(i-1,1:3*n)]; end genmatrix = bit(2:9,3*n+1:4*n) % generate matrix remain the same for j = 1:1 mseq = mod(genmatrix*initial', 2) % Update initial temp = initial; for k = 1:n initial(k) = mod( sum(bit(9,(k-1)*n+1:k*n)*temp'), 2); end end 输出生成矩阵为: genmatrix = 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 初始状态值生成矩阵为: gm_init = 1 1 0 1 1 0 1 0 0 1 0 1 1 1 1 0 Verilog代码: `timescale 1ns / 1ps

基于QuartusⅡ的伪随机m序列发生器的设计

基于QuartusⅡ的伪随机m序列发生器的设计

————————————————————————————————作者: ————————————————————————————————日期: ?

通信系统 课程设计报告 设计题目:伪随机m序列发生器的设计班级: 13物联网1 姓名:李亚军 学号:2013313136 指导教师:程钦、任艳玲 课程地点: 60-507 江苏理工学院 电气信息工程学院 2106 年9 月8日

目录 序言………………………………………………………………………………………………1第1章QuartusⅡ软件介 绍 (2) 1.1 QuartusⅡ简 介 (2) 第2章基于QuartusⅡ的伪随机m序列发生器的设 计 (3) 2.1伪随机m序列发生器的设计要 求 (3) 2.2伪随机m序列发生器的设 计 (3) 2.3伪随机m序列发生器的实 现 (5) 2.3.1原理图输入法实现与仿真结果分 析 (5) 2.3.2 VHDL语言实现与仿真结果分 析……………………………………………………7 2.4 设计分析与总 结 (9) 2.4.1故障分 析…………………………………………………………………………………9 2.4.2功能分 析 (9) 参考文

献………………………………………………………………………………………10 体会与建议 (11) 附录………………………………………………………………………………………………12

序言 随机噪声降低了通信系统的可靠性,限制信道容量但又可以用于测试通信系统性能和提高保密通信,所以就有伪随机序列的产生。因为其具有类似于随机噪声的某些统计特性又避免了随机噪声不能重复产生和处理的缺点。 m序列是最长线性移位寄存器序列的简称,是一种伪随机序列、伪噪声(PN)码或伪随机码。可以预先确定并且可以重复实现的序列称为确定序列;既不能预先确定又不能重复实现的序列称随机序列;不能预先确定但可以重复产生的序列称伪随机序列。 m序列是目前广泛应用的一种伪随机序列,其在通信领域有着广泛的应用,如扩频通信,卫星通信的码分多址,数字数据中的加密、加扰、同步、误码率测量等领域。 在所有的伪随机序列中,m序列是最重要、最基本的一种伪随机序列。它容易产生,规律性强,有很好的自相关性和较好的互相关特性。 采用原理图输入和VHDL语言产生周期为127,码元速率为50HZ的m序列

基于FPGA的m序列发生器

基于FPGA的m序列发生器 摘要 m序列广泛应用于密码学、通信、雷达、导航等多个领域,本文提出了一种基于FPGA的伪随机序列产生方法,应用移位寄存器理论从序列的本原多项式出发,获得产生该序列的移位寄存器反馈逻辑式,结合FPGA芯片结构特点,在序列算法实现中采用元件例化语句。算法运用VHDL语言编程,以A1tera的QuartusⅡ软件为开发平台,给出了序列的仿真波形。序列的统计特性分析表明:该方法产生的序列符合m序列的伪随机特性,验证了算法的正确性。 关键词:m序列;移位寄存器理论;VHDL语言

1 m序列 m序列是伪随机序列的一种 ,结构简单 ,实现方便。在现代工程实践中 , m 序列在通讯、导航、雷达、通信系统性能的测量等领域中有着广泛的应用。例如 , 在连续波雷达中可用作测距信号 , 在遥控系统中可用作遥控信号 , 在多址通信中可用作地址信号 , 在数字通信中可用作群同步信号 ,还可用作噪声源及在保密通信中起加密作用等。伪噪声发生器在测距、通信等领域的应用日益受到人们重视。目前,m序列产生实现方法主要有3种: (1)门电路实现 该方法设计简单,但随移位寄存器级数的增长,电路装调困难,且占用的印制板面积较大。 (2)DSP编程实现 该方法专业性过强,不适合一般用户。 (3)VHDL与CPLD实现 由于CPLD的高集成度,而且VHDL语言编程较为方便,故可以大大减少电路的装调的困难。文章提出VHDL语言实现,,l序列电路是周期、初相位可编程变化的,其应用较为灵活,通过微处理器对其进行适当的初始化,即可产生用户所需周期、初相位的m序列输出。用软件方式构成的特点是采用灵活的数据查询方式可以获得任意级数 n 的本原多项式系数 ,从而实现 m 序列的产生 , 但速度受到单片机工作速度的限制。而 FPGA 具有硬件电路实现的优点 , 又具有设计上的灵活性 , 并且由于FPGA 便于实现大规模的数字系统。 1.1 理论基础 m 序列是最长线性反馈移位寄存器序列的简称,它是由带线性反馈的移位寄存器产生的周期最长的一种序列。。m 序列发生器的结构主要分为两类,一类称为简单型码序列发生器,另一类称为模块型码序列发生器。原理图如图 1 所示。 图1-1 m列原理图

基于QuartusⅡ的伪随机m序列发生器的设计

通信系统 课程设计报告 设计题目:伪随机m序列发生器的设计班级: 13物联网1 姓名:李亚军 学号: 2013313136 指导教师:程钦、任艳玲 课程地点: 60-507 江苏理工学院 电气信息工程学院

目录 序言 (1) 第1章QuartusⅡ软件介绍 (2) 1.1 QuartusⅡ简介 (2) 第2章基于QuartusⅡ的伪随机m序列发生器的设计 (3) 2.1伪随机m序列发生器的设计要求 (3) 2.2伪随机m序列发生器的设计 (3) 2.3伪随机m序列发生器的实现 (5) 2.3.1原理图输入法实现与仿真结果分析 (5) 2.3.2 VHDL语言实现与仿真结果分析 (7) 2.4 设计分析与总结 (9) 2.4.1故障分析 (9) 2.4.2功能分析 (9) 参考文献 (10) 体会与建议 (11) 附录 (12)

序言 随机噪声降低了通信系统的可靠性,限制信道容量但又可以用于测试通信系统性能和提高保密通信,所以就有伪随机序列的产生。因为其具有类似于随机噪声的某些统计特性又避免了随机噪声不能重复产生和处理的缺点。 m序列是最长线性移位寄存器序列的简称,是一种伪随机序列、伪噪声(PN)码或伪随机码。可以预先确定并且可以重复实现的序列称为确定序列;既不能预先确定又不能重复实现的序列称随机序列;不能预先确定但可以重复产生的序列称伪随机序列。 m序列是目前广泛应用的一种伪随机序列,其在通信领域有着广泛的应用,如扩频通信,卫星通信的码分多址,数字数据中的加密、加扰、同步、误码率测量等领域。 在所有的伪随机序列中,m序列是最重要、最基本的一种伪随机序列。它容易产生,规律性强,有很好的自相关性和较好的互相关特性。 采用原理图输入和VHDL语言产生周期为127,码元速率为50HZ的m序列

eda课程设计m序列及相关检测器

目录 任务书 ....................................................... 错误!未定义书签。第一章系统分析 .............................................. 错误!未定义书签。 简介....................................................... 错误!未定义书签。第二章设计内容及要求......................................... 错误!未定义书签。 设计的目的及主要任务....................................... 错误!未定义书签。 设计目的............................................... 错误!未定义书签。 设计内容依据.......................................... 错误!未定义书签。 设计思想................................................... 错误!未定义书签。第三章设计原理与模块分析..................................... 错误!未定义书签。 序列检测器介绍............................................ 错误!未定义书签。 序列检测器设计原理........................................ 错误!未定义书签。 序列检测器模块............................................ 错误!未定义书签。 分频器模块............................................ 错误!未定义书签。 序列输入模块.......................................... 错误!未定义书签。 序列检测模块.......................................... 错误!未定义书签。 顶层文件................................................... 错误!未定义书签。第四章电路仿真与分析......................................... 错误!未定义书签。 单元模块的仿真与分析...................................... 错误!未定义书签。 分频器模块的仿真与分析................................ 错误!未定义书签。 序列信号输入模块的仿真与分析.......................... 错误!未定义书签。 序列检测模块的仿真与分析.............................. 错误!未定义书签。 顶层电路的仿真与分析...................................... 错误!未定义书签。第五章电路的硬件调试......................................... 错误!未定义书签。参考文献 ..................................................... 错误!未定义书签。附录 ......................................................... 错误!未定义书签。

相关文档
最新文档