一种基于FPGA的AGWN信号生成器的设计
时间:11-08
来源:互联网
点击:
在通信系统中分析计算系统抗噪声性能时,经常假定信道噪声为加性高斯型白噪声(AGWN)。本文就是通过分析AGWN的性质,采用自顶向下的设计思路,将AGWN信号分成若干模块,最终使用Verilog硬件描述语言,完成了通信系统中AGWN信号发生电路的设计和仿真,其实质上是设计一个AGWN信号发生器。该信号主要应用在数字通信系统中,所以只需要产生数字形式的AGWN信号,这样既便于信号产生,也便于在数字通信系统中运用。
1 AGWN信号的产生
AWGN信号指同时满足白噪声和高斯噪声的条件的信号。白噪声功率密度函数在整个频率域内是常数,即服从均匀分布。完全理想的白噪声不存在。高斯噪声指概率密度函数服从高斯分布(即正态分布)。AGWN信号其实就是一个具有确定功率谱密度和概率分布函数的随机信号。
由随机过程的理论可以知道,不相关随机序列的功率谱密度为常数(白噪声),伪随机序列(PN)就是这样的不相关序列。再由中心极限定理,独立同分布的随机变量的和收敛于高斯随机变量。这样就可根据PN序列的性质和中心极限定理来设计AWGN信号。
为简单起见,设计用8个PN序列发生器产生8个独立的伪随机序列(每个分为实部和虚部),根据中心极限定理,将8个信号相加之后的信号,更加接近于AG-WN信号,最后再乘以一个可变系数,就产生了可在数字通信系统中直接引用的AGWN信号。AGWN信号生成的总体框图如图1所示。
在FPGA内部产生n位并行伪随机序列,可由n个并行的结构相同但初始态互不相同的线性反馈移位寄存器(LFSR)产生。结构相同的LFSR在不同初始状态下产生的序列之间存在着一种移位关系,导致n个序列并非相互独立。如果所期望的序列长度为k,那么只有在保证任一状态在k次移位操作之内都不会与其他状态发生重复后,这种方法才是可取的。
在通信中,信号一般都表示为复数形式,所以该设计采用了实部与虚部的表示方法,AGWN信号分为实部与虚部,它们满足正交关系。
2 模块的设计与实现
设计主要分为三大模块:PN序列产生模块,产生符合高斯型白噪声伪随机序列;加法器模块,将产生的8个PN序列相加产生更加符合AGWN信号的伪随机序列;乘法器模块,将加法器产生的伪随机序列乘以一个可变系数,得到最终的符合数字信号的伪随机序列。
2.1 n个PN序列发生器的设计与实现
PN序列产生模块的主要功能就是产生PN序列。而PN序列中m序列又是周期最大,伪随机性最好的一种移位寄存器序列。m序列的自相关性、随机性特性很好地满足了AGWN信号的要求,故用其产生的序列可以来产生该设计中的信号。
要产生m序列,就要求移位寄存器的反馈链路满足本原多项式,由,n个并行的结构相同但初始态互不相同的线性反馈移位寄存器(LFSR)产生的序列在其周期足够长的情况下可以把它们看作是独立的。
设计中选取n=8,移位寄存器位数选取为25位,其m序列周期为33 554 431。其信号实部抽头选取3,0,虚部抽头选取3,2,1,0,分别对应PN序列的特征多项式。这样选取是因为一个移位寄存器的本原多项式有很多种,这里选取的两个抽头比较简单,对电路实现在资源、结构上都有优势。PN发生器选择8个是考虑到资源利用率方面的问题,这样选取可使资源利用率达到最大。
2.2 叠加电路设计与实现
根据中心极限定理,对于若干个独立同分布的随机变量,其和的极限分布是标准正态分布。这样将产生的8个序列叠加将产生符合高斯特性的序列。发生器串行输出的实部,虚部8个独立的码相异或。即每8个一位二进制数相异或。
2.3 乘法系数电路的设计与实现
2.3.1 设计思想
乘法器设计是FPGA设计中的一个难点,有很多种算法来实现它。可以采用移位加实现,在GF(28)域上乘法是这样进行的:乘以2相当于将该8位二进制数向高位移一位,如果此8位二进制数的最高位为1,则需要将移位结果异或8位二进制数00000001。还有一种方法就是,在代码中直接将乘法写成*,让综合工具自己去综合出可用的硬件电路。本文采用综合工具自带的模块电路。
2.3.2 电路实现
设计对时序要求较严格。乘法器电路必须用到三个寄存器以用来保存加法器串行输出的连续8个PN码,乘法系数和乘积。
在reset之后,PN序列发生电路已经产生第一个输出码,同时加法器也将结果运算出来,但这时乘数寄存器中只有最低位是有用的刚传进来的一位码,其他位还是无用信号,只有到了8个时钟信号之后,乘数寄存器中才保存了8个连续的有用的PN码,这时必须很快地进行乘法运算并将结果保存在乘积寄存器中,第9个时钟信号到来时乘法运算必须进行完毕,空闲出来的乘数寄存器用来寄存后面的8个连续的PN码,然后一直这样循环工作。8个乘数寄存器保存PN码时钟信号后,立即进行乘法运算并保存乘积,这就要求乘积寄存器空出来,为了空出乘积寄存器,第8个时钟到来时必须将乘积寄存器中的数据一位一位串行输出。乘积寄存器中有16位二进制数,这就要求一个时钟信号的2倍频信号作为乘积寄存器串行输出的时钟信号。基于以上问题的考虑,乘法电路用综合工具自己生成的8位乘法器,该模块电路中还要用到一个2倍频电路,这也用综合工具自带的模块电路。
1 AGWN信号的产生
AWGN信号指同时满足白噪声和高斯噪声的条件的信号。白噪声功率密度函数在整个频率域内是常数,即服从均匀分布。完全理想的白噪声不存在。高斯噪声指概率密度函数服从高斯分布(即正态分布)。AGWN信号其实就是一个具有确定功率谱密度和概率分布函数的随机信号。
由随机过程的理论可以知道,不相关随机序列的功率谱密度为常数(白噪声),伪随机序列(PN)就是这样的不相关序列。再由中心极限定理,独立同分布的随机变量的和收敛于高斯随机变量。这样就可根据PN序列的性质和中心极限定理来设计AWGN信号。
为简单起见,设计用8个PN序列发生器产生8个独立的伪随机序列(每个分为实部和虚部),根据中心极限定理,将8个信号相加之后的信号,更加接近于AG-WN信号,最后再乘以一个可变系数,就产生了可在数字通信系统中直接引用的AGWN信号。AGWN信号生成的总体框图如图1所示。
在FPGA内部产生n位并行伪随机序列,可由n个并行的结构相同但初始态互不相同的线性反馈移位寄存器(LFSR)产生。结构相同的LFSR在不同初始状态下产生的序列之间存在着一种移位关系,导致n个序列并非相互独立。如果所期望的序列长度为k,那么只有在保证任一状态在k次移位操作之内都不会与其他状态发生重复后,这种方法才是可取的。
在通信中,信号一般都表示为复数形式,所以该设计采用了实部与虚部的表示方法,AGWN信号分为实部与虚部,它们满足正交关系。
2 模块的设计与实现
设计主要分为三大模块:PN序列产生模块,产生符合高斯型白噪声伪随机序列;加法器模块,将产生的8个PN序列相加产生更加符合AGWN信号的伪随机序列;乘法器模块,将加法器产生的伪随机序列乘以一个可变系数,得到最终的符合数字信号的伪随机序列。
2.1 n个PN序列发生器的设计与实现
PN序列产生模块的主要功能就是产生PN序列。而PN序列中m序列又是周期最大,伪随机性最好的一种移位寄存器序列。m序列的自相关性、随机性特性很好地满足了AGWN信号的要求,故用其产生的序列可以来产生该设计中的信号。
要产生m序列,就要求移位寄存器的反馈链路满足本原多项式,由,n个并行的结构相同但初始态互不相同的线性反馈移位寄存器(LFSR)产生的序列在其周期足够长的情况下可以把它们看作是独立的。
设计中选取n=8,移位寄存器位数选取为25位,其m序列周期为33 554 431。其信号实部抽头选取3,0,虚部抽头选取3,2,1,0,分别对应PN序列的特征多项式。这样选取是因为一个移位寄存器的本原多项式有很多种,这里选取的两个抽头比较简单,对电路实现在资源、结构上都有优势。PN发生器选择8个是考虑到资源利用率方面的问题,这样选取可使资源利用率达到最大。
2.2 叠加电路设计与实现
根据中心极限定理,对于若干个独立同分布的随机变量,其和的极限分布是标准正态分布。这样将产生的8个序列叠加将产生符合高斯特性的序列。发生器串行输出的实部,虚部8个独立的码相异或。即每8个一位二进制数相异或。
2.3 乘法系数电路的设计与实现
2.3.1 设计思想
乘法器设计是FPGA设计中的一个难点,有很多种算法来实现它。可以采用移位加实现,在GF(28)域上乘法是这样进行的:乘以2相当于将该8位二进制数向高位移一位,如果此8位二进制数的最高位为1,则需要将移位结果异或8位二进制数00000001。还有一种方法就是,在代码中直接将乘法写成*,让综合工具自己去综合出可用的硬件电路。本文采用综合工具自带的模块电路。
2.3.2 电路实现
设计对时序要求较严格。乘法器电路必须用到三个寄存器以用来保存加法器串行输出的连续8个PN码,乘法系数和乘积。
在reset之后,PN序列发生电路已经产生第一个输出码,同时加法器也将结果运算出来,但这时乘数寄存器中只有最低位是有用的刚传进来的一位码,其他位还是无用信号,只有到了8个时钟信号之后,乘数寄存器中才保存了8个连续的有用的PN码,这时必须很快地进行乘法运算并将结果保存在乘积寄存器中,第9个时钟信号到来时乘法运算必须进行完毕,空闲出来的乘数寄存器用来寄存后面的8个连续的PN码,然后一直这样循环工作。8个乘数寄存器保存PN码时钟信号后,立即进行乘法运算并保存乘积,这就要求乘积寄存器空出来,为了空出乘积寄存器,第8个时钟到来时必须将乘积寄存器中的数据一位一位串行输出。乘积寄存器中有16位二进制数,这就要求一个时钟信号的2倍频信号作为乘积寄存器串行输出的时钟信号。基于以上问题的考虑,乘法电路用综合工具自己生成的8位乘法器,该模块电路中还要用到一个2倍频电路,这也用综合工具自带的模块电路。
Verilog 电路 仿真 信号发生器 FPGA Quartus 相关文章:
- 基于ARM的嵌入式系统中从串配置FPGA的实现(06-09)
- FPGA按键模式的研究与设计(03-24)
- 周立功:如何兼顾学习ARM与FPGA(05-23)
- 验证FPGA设计:模拟,仿真,还是碰运气?(08-04)
- 初学者如何学习FPGA(08-06)
- 为何、如何学习FPGA(05-23)