对基于FPGA的高斯白噪声发生器的研究与设计
其典型的功率谱密度如图2所示。
由图2可以看出,m序列的功率谱密度的包络是[(sin x)/x]2形的,它约在伪随机序列基本时钟频率的45%带宽内具有均匀功率谱密度,所以用滤波器滤除该频带内的信号就可以近似看作带限白噪声。m序列的均衡性、游程分布、自相关特性和功率谱与随机序列的基本性质很相似,所以m序列属于伪噪声的序列或伪随机序列。
2.2 FIR数字滤波算法
m序列的功率谱是固定的,要生成带宽可调的数字噪声序列需要对m序列进行低通数字滤波,本文采用的是FIR数字滤波器。
由Lindeberg定理可知,设有独立随机变量序列
该定理证明了由大量微小且独立的随机因素引起,并积累而成的变量,必是一个正态随机变量。FIR滤波器的单位冲激响应为h(n),0≤n≤N一1,输入函数为x(i),则输出函数y(i)可以写为:
该算法需要N次相乘,N-1次累加。为了产生带宽小于5 MHz高质量的数字噪声序列,需要构建窄通带、通带阻带转换迅速的低通滤波器,对此仅仅增加单级FIR滤波的冲激相应长度n是不够的,对此本文采用了多级FIR数字滤波的方法。为了使得多路多级FIR滤波器能够在常用FPGA平台上实现,对FIR数字滤波模型进行算法优化,以节约所需逻辑单元资源是很有必要的。
采用单位冲激相应h(n)为偶函数的FIR滤波器,并取阶数N为奇数,则式(6)可以化简为:
采用该方法可以将FIR算法中乘的次数减半,总计算量减为(N+1)/2次相乘,N-2次累加,极大地节省了FPGA的逻辑单元资源。FIR的滤波过程实质上就是一个延迟后加权相加的过程,即滤波输出y(i)是输入x(i)以及它的前N一1个状态的加权叠加。
评论