美章网 资料文库 混沌解调的蒙特卡罗仿真范文

混沌解调的蒙特卡罗仿真范文

本站小编为你精心准备了混沌解调的蒙特卡罗仿真参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。

《计算机仿真杂志》2014年第六期

1混沌解调原理

1.12FSK信号混沌解调方法在微弱信号检测领域应用较为广泛的Holmes型Duffing方程标准形式如下:当参数ω,δ确定后,策动力幅值γ逐渐由0增大的过程中,系统相轨迹(x,y)将历经同宿轨道、分叉、混沌轨迹、临界状态,最后进入大尺度周期状态。在微弱信号检测中主要利用的是临界混沌状态和大尺度周期状态。利用Duffing振子弱信号检测模型实现对受噪声干扰的2FSK信号的检测主要是依据在码元传输周期内,接收端接受的信号是固定频率的弱信号,由混沌相变判别方法可知:当载波信号与策动力同频同相时,Duffing系统将处于大周期状态,载波频率与策动力不同时,系统将处于混沌状态。这样,当2FSK的信号在0和1之间跳变时,对应的是Duffing系统在混沌态和大尺度周期态之间的转换。式(3)是用于对2FSK信号进行检测的Duffing振子弱信号检测系统,S(t)是待测2FSK信号,n(t)为加性噪声,γd为检测系统的临界阈值。利用Duffing振子实现2FSK信号的解调主要在于对系统状态的判别,具有量化指标的数值判别方法是使得该弱信号检测技术在通信信号解调中运用的关键。本文采用工程实践中常用的过零周期数算法作为相变判别算法实现混沌检测的并行蒙特卡罗仿真程序设计。

1.2ZCN相变判别标准过零周期数(Zero-crossingnumber,ZCN)算法是基于大尺度周期状态,系统相轨迹收敛于一条确定轨迹,过零周期数恒定,混沌状态下,系统相轨迹没有确定轨迹,过零周期数没有稳定的数值且小于大尺度周期状态的过零周期数[9]。图1所示是在仿真时间为0.005s,k=0.5,ω=(2π×60000)rad/s时的过零周期数变化图。在混沌状态,系统过零周期数呈现大幅度波动状态,当系统进入大尺度周期状态,系统过零周期数将处于一个稳定水平。在数值求解系统微分方程的同时,通过记录过零周期数即可快速判断系统混沌和大尺度周期状态。由以上分析可以看出混沌解调技术主要是将码元周期内的传输信号作为待测信号,通过数值求解Duffing方程,计算量化相变指标,实现对信号的判别,从而达到解调的目的。在传统的CPU平台上进行蒙特卡罗仿真时,由于求解Duff-ing方程和相变判别过程需要大量迭代运算,时间和计算资源消耗巨大,造成了仿真时间效率较低。但对每一个码元而言,该混沌解调过程是独立的,因此通过合理的规划GPU内核函数的存储空间及线程分布,可以实现在GPU平台上的混沌解调并行蒙特卡罗仿真,提高仿真时间效率。

2混沌解调的并行蒙特卡罗仿真方法

2.1并行蒙特卡罗仿真模型利用GPU实现对通信信号的蒙特卡罗仿真,主要是通过其SIMT(单指令多线程)执行模型并发实现多线程码元并行解调。考虑到GPU的片上存储单元十分有限,通过AWGN信道的调制信号无法存储到片上存储器中,同时若存储在片外存储器中,在核函数的每次迭代调用时都需要访问片外存储器,会带来巨大的存储器访问延时,GPU高性能计算的优势无法充分发挥。因此,并行蒙特卡罗仿真模型中将2FSK调制与AWGN信道的信源部分仿真也置于GPU核函数中实现。在Duffing振子迭代求解的每一步中将该时刻运算所需的2FSK信号和随机噪声产生出来并叠加生成此刻的待检测信号。其仿真流程图如图2所示。该模型将调制解调中计算密集型的工作全部分配到GPU中完成,并充分利用了GPU的片上存储单元,使GPU的并行处理能力得到了充分的发挥。

2.2混沌解调的GPU核函数程序设计并行混沌解调模型以GPU的计算核心作为解调的基本单元,在蒙特卡罗仿真中每一个计算核心单元对应于一个待解调码元。CUDA架构下的GPU核函数是单指令多线程并发执行的[10-11],保证了码元的并发解调。该过程的实现关键在于GPU解调核函数的设计。式(4)所示为基于Duffing振子的2FSK解调模型的离散化迭代模型,其中D为噪声单边功率谱密度,ε(t)为服从标准高斯分布的随机数,S2FSK(j)是每一步迭代过程中的待测信号。1)存储器的分配在设计求解Duffing方程数值解的核函数时,由式(4)可以知道,核函数中迭代求解过程需要分配存储空间的变量主要有{x,y}以及系统参数γd{,ω,k,D}等。由于没有线程间的通信,因此选取寄存器变量存储效率最高。同时考虑到在迭代求解Duffing方程过程中对数值解{x,y}进行存储,其存储规模会比较大,但在相变判别时只需对每一步的过零点进行判断计数,因此无需存储中间解,所以选择xj,xj+1,yj,yj{}+1四个寄存器变量,分别存储更新前后的系统数值解。这样,从存储器分配上而言,该核函数的数据基本通过寄存器存储、运算,在访问延时上时延最短,能获得较高的运算效率。2)随机数的产生由式(4)可以看出,在迭代求解的每一步中需要产生相应的噪声序列。调用CURANDLibrary中随机数种子分配核函数为每条线程分配私有的随机数种子,其核函数形式为。该方法保证了在GPU中对码元进行并行解调过程中,每个码元所在的核函数将获得唯一的随机数种子,在每个核函数内部求解Duffing方程中每步迭代中输入待测信号中的噪声点是由该线程拥有的随机数种子随机产生的独立同分布的随机数。调用过程在主机端完成的,但设备生成随机数是在核函数中执行的,生成的随机数将直接供GPU中各线程使用而无需从全局存储器进行读写。3)线程的安排考虑到每个核函数需要占用一定的计算资源,并行蒙特卡罗仿真的线程安排需要考虑到存储器资源,确定一次可以并发执行的计算规模。同时,按照CUDA的执行模型,线程网格(Grid)中的各个线程块(Block)会被分配到GPU的各个流多处理器(SM)中执行,实际运行中线程块(Block)会被分割为更小的线程束(warp)。在Tesla架构的GPU中,一个线程束由32个线程组成。每个SM至少需要6个activewarp才能有效隐藏流水线延迟。所以在线程块(Block)和线程网格(Grid)的维度设计上要尽量保证其数值为32的整数倍。通常在线程组织上,根据问题规模,在确定线程块(Block)的尺寸和维度后,再确定线程网格(Grid)的尺寸和维度。可采用以下方法计算(以x轴为例),N为问题计算规模:。根据以上分析,可以确定2FSK信号混沌解调的并行蒙特卡罗仿真程序执行流程如图3所示,CPU端通过初始化设备和数据,调用GPU设备分别对不同信噪比下的随机码元进行并行解调,将解调结果返回CPU端进一步处理得到蒙特卡罗仿真误码特性曲线。

3仿真及性能分析

3.1仿真环境仿真采用曙光W580工作站,配备了IntelXeon24核CPU和NVIDIATeslaC2050GPU,系统内存为24GB。软件方面,采用CUDAC语言,开发环境使用VisualStdio2010。实验中CPU串行蒙特卡罗仿真程序仅对逻辑控制语句做了必要改动,通过for循环遍历各信噪比和检测码元。

3.2仿真结果及性能分析1)仿真可靠性分析结果是本文在实验室仿真中选择的2FSK信号参数列表。在实验中以f1=60000Hz的信号作为Duffing检测系统策动力的频率,2FSK待测信号是具有频差Δf=5000Hz的典型2FSK信号,其广泛应用于通信、电力线载波通信等领域。实验在信噪比-35dB~-15dB范围内对106量级的随机码元利用GPU进行并行蒙特卡罗仿真。Duffing振子策动力幅值为0.764,积分步长为1/24000000,初始值(x,y)=(0,0)。由图4所示的仿真曲线可以看出,在不同的计算平台下,基于Duffing振子的2FSK信号解调误码率曲线大致相同,各信噪比下的误码率量级一致,说明利用GPU平台实现解调过程的准确性与CPU平台一致,同时仿真能够反映出ZCN算法在2FSK信号解调中具有一定的抗噪声性能。2)仿真时效性分析可以看出,利用GPU实现并行蒙特卡罗仿真的时耗要远小于CPU的时耗,对106个码元在信噪比-35dB~-15dB这21个信噪比下的蒙特卡罗仿真中GPU耗时约为82分钟,而CPU在每一个信噪比下的仿真时间约为93分钟。可见基于GPU的并行蒙特卡罗仿真较CPU串行仿真加速明显,能实现高效的计算机仿真。同时,为了比较数据规模对GPU仿真时间的影响,分别在不同的数据规模下,利用CPU串行蒙特卡罗仿真和GPU并行蒙特卡罗仿真对基于Duffing振子的2FSK信号解调进行了比较实验。其仿真条件参照表2的设置。从图5、图6中可以看出,在数据规模较小时,GPU并行蒙特卡罗仿真程序的时间开销基本相同,而CPU执行时间成线性增长。其主要原因是数据规模较小时,在GPU中执行并行解调的码元数目并没有充分的占用GPU片上的全部存储资源,使得解调的过程在多线程并行下时间消耗没有大的差异。随着数据规模的增加,GPU执行时间的开销也逐渐开始成倍数递增,说明此时GPU上的片上存储资源已得到充分利用,在SIMT执行模型下,每次发射并行执行的线程已达到最大,时间开销随着数据规模的递增也成倍递增。图7是不同数据规模下的GPU并行蒙特卡罗仿真执行时间的加速比,仿真显示伴随数据规模的增加,GPU执行时间的加速比成递增趋势,在数据规模为106量级时,加速比最高可达到近24倍。但随着数据规模的继续增加,加速比成下降趋势,主要原因是GPU资源已得到充分利用,继续增加数据规模会增加数据传递等操作的访问延时,使加速比下降。但可以看出相较CPU执行时间依然可以达到较大的加速,使混沌解调的蒙特卡罗仿真快速、准确的实现,提高了研究的仿真时间效率。

4结论

本文针对通信信号混沌解调研究中蒙特卡罗仿真计算量大、仿真时效性差的问题,将该解调问题分解为码元间并行解调的数据并行问题,通过合理设计解调过程的核函数,实现了基于GPU的并行蒙特卡罗仿真。仿真结果显示,该仿真方法在106量级的数据规模下能获得较CPU串行仿真约24倍的加速比,使实验室仿真研究阶段能够高效地实现通信信号的混沌解调,为新的混沌解调算法研究奠定了基础。

作者:陈鹏芮国胜王林张洋单位:海军航空工程学院信号与信息处理山东省重点实验室海军航空工程学院电子信息工程系