在卫星地面综合测试系统中,遥测前端设备是综合测试系统与卫星的主要信息接口之一,负责下行遥测数据采集,与其他专用设备及主控计算机一起完成对卫星遥测分系统的测试[1]。可编程卫星信号模拟源作为遥测前端设备的一部分,主要功能是产生遥测数据的副载波已调信号。为提供不同信噪比的副载波已调信号,需要参数可变的高斯白噪声。因而高斯白噪声的性能是决定可编程卫星信号模拟源性能的重要方面之一。
目前,为获得参数可调的高斯白噪声,一般采用数字方法产生。数字方法产生分为两步:先产生均匀分布的白噪声,然后通过均匀分布的白噪声获得高斯白噪声。在这两步中均有多种方法可以选择。
1 均匀分布白噪声生成算法的选择
目前,有三种常用的均匀分布白噪声生成算法:线性同余算法、Shift-Register方法和Lagged-Fibonacci算法。
对三种算法的性能进行测试,包括随机数在分布上的均匀性、随机数在随机序列中分布的均匀性和随机序列中子序列的依赖关系等内容。结果如表1所示。其中,满足测试要求视为通过,不满足视为失败。 可见,就性能而言,lagged-Fibonacci算法采用乘最好,lagged-Fibonacci算法采用加或减次之。 从实现角度,Shift-Register方法、lagged-Fibonacci算法采用异或和lagged-Fibonacci算法采用加或减只需要移位、异或和加减法等操作,适合FPGA实现。而线性同余算法和lagged-Fibonacci算法采用乘需要乘法操作,适合DSP实现。 根据以上判断,结合实际硬件情况,采用lagged-Fibonacci算法的加或减。
2 均匀分布白噪声产生高斯白噪声算法的选择 目前,比较常用的有地址方法和公式方法。 (1)采用地址方法产生高斯噪声 根据定理:若给定任何随机变量X的累积分布函数为F(X),则Y= F(X)是在(0,1)内均匀分布的随机函数。这样,当随机变量X为高斯分布,Y为均匀分布白噪声,利用X与Y的映射关系获得高斯白噪声。 (2)采用公式方法产生高斯噪声
通过Matlab仿真,可以获得两种方法产生高斯白噪声的性能,如图1和图2所示。
可见,就性能而言,两者差不多。 从实现角度,前者具体实现时,产生高斯白噪声速度比较快,但需要使用Rom来保存映射关系。为获得较高性能的高斯白噪声,需要大容量的Rom。后者具体实现时,不需要使用大容量的内存,但需要n个均匀白噪声才可以产生一个高斯白噪声,产生速度比较慢。 根据以上判断,结合实际硬件情况,采用公式方法。
3 实际使用 综合前面,在FPGA采用lagged-Fibonacci算法(采用加)和公式方法的组合来实现高性能高斯白噪声。考虑到加入对高斯白噪声的均值和方差的控制,实现框图如图3所示。
均匀白噪声模块中,使用lagged-Fibonacci算法(采用加)。这里使用的算法表达式:F(17,5,+)mod 232。具体步骤如下: 初始化:I=17,J=5及L(n),n=1,…,17 操作:L(I)←L(I)+L(J) 输出L(I)作为均匀白噪声 I←I-1;if I=0,I←17 J←J-1;if J=0,J←17 重复操作 高斯白噪声模块中,公式方法取n=12时,分布已经接近高斯分布了。这时表达式为:
即对产生的12个均匀白噪声按表达式进行操作来获得高斯白噪声。 在获得高斯白噪声后,通过乘法器和加法器实现高斯白噪声方差和均值的调节就得到了参数可调的数字高斯白噪声。因为对高斯分布x,通过变换y=μ+σx,可以获得均值为μ、方差为σ2的高斯分布y。 在Altera的Cyclone中实现该数字高斯白噪声所使用的资源如图4所示。
该高斯白噪声经过低通滤波、D/A转换和模拟低通滤波得到模拟高斯白噪声。该噪声通过频谱仪测量的实际性能如图5所示。可见,该噪声是限带高斯白噪声,且在低频段比较平坦,不超过1个dB。满足可编程卫星信号模拟源的需要。
总之,采用lagged-Fibonacci算法(采用加)和公式方法的组合可以实现高性能的高斯白噪声。包含该功能模块的可编程卫星信号模拟源已在相关卫星测试部门中使用。
|