短波信道仿真总体结构是由高斯噪声生成器(AWGN)、低通滤波器(LPF)、Hilbert变换以及等效离散时间模型组成。
3.1 抽头系数的产生
短波信道模型的抽头系数是期望为零、方差为σ2的相位独立的高斯过程,它可由高斯白噪声通过一个低通滤波器得到。
(1)高斯分布随机序列:本文首先采用混合同余算法产生均匀分布的随机数序列,其迭代公式如下:
式中c≠0,增量c与模数m互质,a称作乘子,a-1必须是模数m任意一个素因子的倍数,如果m是4的倍数,则n-1是4的倍数,发生器的最大周期为m。各项参数本文采用了标准C语言的定义,即m=232,c=12345,a=1103515245。以混合同余算法为基础,经过适当的变换即可得到高斯分布随机序列,具体实现流程如图3所示。
需要注意的是进入AWGN模块前需要指定信噪比。
(2)高斯成形低通滤波器:前述产生的两个高斯型变量G1,G2经过低通滤波后则为等效离散时间模型的抽头系数,其仿真了多普勒频率扩展。为使每个分量的功率谱为高斯型,低通滤波器所期望的幅度响应为高斯分布,为此,本文采用了Matlab设计的IIR滤波器中IIRLPNORM(n,d,f,edges,a)函数,利用IIRLPNORM函数构造低通滤波器,使其幅度响应逼近高斯分布,通过该函数可得到滤波器系数。该设计的采样频率是8 kHz,IIR滤波器的阶数为8,多普勒频率扩展范围是0.1~30 Hz。
实现过程中,首先采用Matlab产生符合不同衰落要求下低通滤波器的系数矩阵D,将系数矩阵D以数据文件形式保存至硬盘中,为模拟系统工作时生成衰落所需的高斯控制信号做准备。
3.2 希尔伯特(Hilbert)变换
本文设计的系统中,首先设计了一个低通滤波器,其冲激响应为hlp(t)。如图2所示,输入的音频信号分别经过带宽为3 kHz的带通滤波器和3 kHz带宽的Hilbert滤波器,将输入信号变换成为一个复信号I和Q。两个带通滤波器的冲激响应为:
式中,T为采样周期,N为滤波器阶数,f0为中心频率。
输入信号成为复信号后,可以按照所需路径数(实际系统中是通过总控导演台设置完成,框图示意了两路信号)选择相应的路径和延迟。
4 分布式实时仿真设计与实现
综合通信训练模拟系统主要由总控导演台、信道仿真台、收(发)信方仿真台、系统监控台、通信设备模拟器(单片机实现)、串口服务器和接口等部分组成。各仿真台站计算机通过局域网相互连接。
4.1 分布式实时仿真设计
基于面向对象的程序设计方法,将信道仿真台的信道仿真系统软件划分为系统初始化模块、滤波器数据库模块、AWGN数据生成模块、信道算法(如短波信道的多径、衰落等)实现模块和各类后台线程(信源数据实时接收线程、合成数据实时传送线程和总控数据接收线程)。其中初始化模块包括各数据存储单元的初始化和显控设备的初始化,这一模块在系统启动时运行。
为解决模型逼真度与解算速度的问题,在程序设计上采用了分布式数据解算方法,充分利用系统硬件资源,以保证程序具有足够的速度和灵活性。
信道仿真系统是利用局域网内的4台计算机进行多机联合仿真。这4台计算机按照所担负的任务分别命名为:Matlab数据库计算机、信源数据计算机、信道解算计算机、数据合成与传送计算机。各计算机间通过UDP/IP协议实现数据交换和握手通信。各模拟器终端利用单片机实现收信与发信,单片机与计算机之间、计算机与计算机之间并、串行工作。
4.2 基于VC++的分布式实时仿真实现
基于上节的设计方案,采用VC++语言实现了一个集成化的通信信道仿真环境,以实现通信信道模型仿真和信号源实时产生等功能的有效调度和管理。该系统通过信道仿真模型、算法、数据、输入输出参数等的统一管理,将各个功能模块以及仿真结果分析与表示等集成在一个仿真环境下,加强系统各部分之间的联系与交互,进而完成模拟设备收发数据的实时产生、解算与传送。
图4显示了信源数据计算机产生高斯噪声和通信信号数据帧生成的程序执行路径。程序执行时,首先将数据存储单元初始化,同时启动与主控导演台和信道解算计算机之间的数据交换线程。线程一接收总控导演台用户根据既定场景、任务条件下设定的各项参数,同时唤醒主程序进行数据生成,产生数据帧的同时,通过线程二将数据传送至信道解算计算机。