姓名:_ _ 专业及年级:_电子2009__ 学号:_______
一. 课题目标
研究PN码的基本原理,以及CPLD数字可编程逻辑芯片下的编程仿真实现。
二. 基本原理
1、伪随机序列产生原理及作用:
伪随机噪声具有类似于随机噪声的一些统计特性,同时又便于重复产生和处理。由于它具有随机噪声的优点,又避免了它的缺点,因此获得了日益广泛的应用。目前广泛应用的伪随机序列都是由数字电路产生的周期序列得到的,我们称这种周期序列为伪随机序列。
对与伪随机序列有如下几点要求:
① 应具有良好的伪随机性,即应具有和随机序列类似的随机性;
② 应具有良好的自相关、互相关和部分相关特性,即要求自相关峰值尖锐,而互 相关和部分相关值接近于零。这是为了接收端准确检测,以减少差错;
③ 要求随机序列的数目以保证在码分多址的通信系统中,有足够的地址提供给不同的用户;
④ 要求设备简单,易实现,成本低。
通常产生伪随机序列的电路为一反馈移存器。它又分为线形反馈移存器和非线形反馈移存器两类。由线形反馈移存器产生出的周期最长的二进制数字序列称为最大长度线形反馈移存器,通常称为m序列。由于它的理论比较成熟,实现比较简便,实际应用也比较广泛,故在这里以m序列发生器为例,设计伪随机序列发生器。
m序列是由带线形反馈的移存器产生的周期最长的一种序列。线形反馈移位寄存器由时钟控制若干个串接的存储器所组成。在时钟信号的控制下,寄存器的存储信号由上一级向下一级传递。如果让某些寄存器的输出反馈回来进行运算,运算结果作为第一级寄存器的输入,则我们可以得到一个移位寄存器序列。如果移位寄存器的反馈函数和初始状态不同,那么可得到不同的移位寄存器序列。线性移位寄存器的一般形式
1 / 6
如图1所示,总共有1,2,3,…,N个寄存器,他们的状态为Xi(i=1,2,3,…,n),经Ci(I=1,2,3,…,n)相乘后模2加,再反馈。这里Ci∈(0,1),且乘法规则是0·0=0·1=1·0=0,1·1=1。实际上Ci=0表示断开,Ci=1表示连接。因此这个N阶移位寄存器的反馈函数为:
F(X1,X2,…,Xn)=∑i=1CiXi
n
特征多项式是:
f(x)= ∑in=1CiXi=C0+C1X1+C2X2+…+CnXn
特征多项式中的Xi(i=0,1,2...n)与移位寄存器的第i个触发器相对应。
+ c0 c1 c2 c3 cn-1 cn 输出 ak-1 ak-2 ak-3 …… ak-n-1 ak-n
图1 线形移位寄存器的一般形式
上述的反馈函数是一个线形递归函数。当级数(n)和反馈系数一旦确定,则反馈移位寄存器的输出序列就确定了。反馈移存器的级数n不同,则m序列的反馈系数也不同,表1列出了部分的m序列发生器的反馈系数。表中给出的是八进制数值,经转换成二进制数值后,可求出相应的反馈系数。
⊕
1 2 3 4 5 6 7 输出 图2 n=7的反馈移位寄存器的结构模型 伪随机信号在雷达、遥控、遥测、通信加密和无线电测量系统领域有着广泛的应用。利用VHDL语言进行软件编程,通过EDA设计软件对程序编译、优化、综合、仿真、适配,最后将生成的网表文件配置于制定的目标芯片中,可以实现不同序列长度的伪随机信号发生器。
2 / 6
2、m序列的性质:
(1) 均衡性
m序列在一个周期内“1”和“0”的个数基本相等。具体来说,m序列的一个周期中的“0”的个数比“1”的个数少一个。
(2) 游程分布
我们把伪随机序列中取值(“0”或“1”)相同的一段码位称为一个游程。在一个游程中包含的位数称为游程长度。把取值为“0”的游程称为“0”游程,取值为“1”的游程为“1”游程。在m序列中的一个周期内,游程的总个数等于2n-1,而且“0”游程的数目与“1”游程的数目相等,即各占一半。
一般来说,在m序列中,长度为1的游程占游程总数的一半;长度为2的游程占游程总数的2-k,其中1≤k≤(n-2),而且“0”和“1”的游程各占一半。长为n-1的游程只有一个,且为“0”游程,长为“1”。
表1. 部分m序列发生器的反馈系数
级数(n) 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
序列长度 7 15 31 63 127 255 511 1023 2047 4095 8191 16383 32767 65536 131071 262143 524287 1048575 13 23 45,67,75 103,147,155 203,211,217,235,277,313,325,345,367 435,453,537,3,5,551,703,747 1021,1055,1131,1157,1167,1175 2011,2033,2157,2443,2745,3471 4005,4445,5023,5263,6211,7363 10123,11417,12515,13505,14124,15053 20033,23261,30471,32535,37505 42103,51761,55753,60153,71147,67401 100003,110003,120265,133663,142305,1705 210013,233303,307572,311405,347433,375213 400011,411335,444257,527427,6775,714303 1000201,1002241,1025711,1703601 2000047,2020471,2227023,2331067,2570103,3610353 4000011,4001151,4004515,6000031 反馈系数 3 / 6
三. 课题方案设计
1、伪随机码发生器的VHDL实现(方案一)
基于m序列的性质,我利用EDA技术,目前常用的可编程逻辑器件有CPLD(ComplexProgrammable Logic Device)和FPGA(Field Programmable Gate Array),常用的EDA软件包括VHDL,Verilog HDL,ABEL等硬件描述语言。其中,VHDL作为IEEE的工业标准硬件描述语言,又受到众多EDA工具厂家的支持,在电子工程领域,已成为事实上的通用硬件描述语言。
(1) PN码(m序列,n=7)发生器的VHDL源程序: library ieee;
use ieee.std_logic_11.all;
entity PN is ——实体名为“PS7” port(clk:in std_logic; load:in std_logic;
Q :out std_logic); ——定义实体接口 end PN;
architecture behav of PN is
signal c0,c1,c2,c3,c4,c5,c6,c7:std_logic; begin
process(clk,load) begin
if clk’event and clk=’1’then ——定义时钟上升沿触发 if(load=’1’)then c7<=’0’; c6<=’0’; c5<=’0’; c4<=’0’; c3<=’0’; c2<=’0’; c1<=’0’; c0<=’1’; Q<=c7; ELSE c1<=c0; c2<=c1; c3<=c2; c4<=c3; c5<=c4;
4 / 6
c6<=c5; c7<=c6;
c0<=c7 xor c4 xor c3 xor c2; ——设置反馈方式 Q<=c7; end if; end if;
end process; end behav;
(2)实验仿真结果
n=7的伪随机序列产生器的时序仿真波形如下图所示。图中的“load”在“1”电平期间对伪随机序列发生器置初始信号,在“0”电平期间伪随机序列发生器进行移位操作;“CLK”表示移位寄存器的位同步信号;“Q”表示串行伪随机序列信号输出。
2、伪随机码发生器的Verilog HDL实现(方案二)
(1) Verilog hdl 源程序
module pn1(clk, load, Q); input clk, load; output Q; reg[7:0] c; reg Q;
always @(posedge clk) if(load)
begin c[7]<=0; c[6]<=0; c[5]<=0; c[4]<=0; c[3]<=0;
5 / 6
c[2]<=0; c[1]<=0; c[0]<=1; Q<=c[7]; end else begin c[1]<=c[0]; c[2]<=c[1]; c[3]<=c[2]; c[4]<=c[3]; c[5]<=c[4]; c[6]<=c[5]; c[7]<=c[6];
c[0]<=c[7] ^ c[4] ^ c[3] ^ c[2]; //设置反馈方式 Q<=c[7]; end
endmodule
(2)实验仿真结果
四. 总结:设计心得
。。。。。。。。。。。。。
[文档可能无法思考全面,请浏览后下载,另外祝您生活愉快,工作顺利,万事如意!]
6 / 6
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- sarr.cn 版权所有 赣ICP备2024042794号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务