无线气象传真软件接收机解调模块设计与实现
2011-07-13许江宁曹可劲
瞿 洋 , 许江宁 , 曹可劲 , 刘 睿
(1.海军工程大学 导航工程系,湖北 武汉 430033;2.海军92146部队 广东 湛江 524000)
无线气象传真接收机是船舶收集气象信息的主要航保设备,普遍装备至各大中型船舶。随着对其研究的深入和产品的丰富,数字化的接收设备逐渐成为主流。但数字设备增多的同时也导致系统对硬件和功能结构产生更多的依赖[1]。与基于硬件的接收机相比,将气象传真机软件化,使得其可以直接嵌入至现有的短波收信平台,通过相关设置完成气象传真的接收功能。使用方式灵活、简便,具有较高的实用价值。
解调模块是软件接收机的核心,解调效果的好坏也是评估软件接收机性能的重要指标。目前国内主流无线气象传真机的解调核心大多采用的是基于DSP的非相干解调算法,虽然其在硬件实现上比较简单,但在信噪比比较高的情况下,解调效果略逊于相干解调[2]。本工程应用中根据相干解调原理,使用数字正交解调的方法对接收信号进行处理。在验证其可靠性的基础上,将该调制方法进行软件化编程,并成功整合至软件接收机。由于解调作软件化处理,使得软件方便对数据后续分析处理,减弱相干解调在非理想环境中的负面影响。
1 整体方案设计
无线气象传真机软件利用现有硬件,只需要在现有工控机与短波接收设备接好连线并安装好气象传真软件,即可在工控机上完成气象传真图的自动接收、显示、存储气象图等功能。系统整体结构如图1所示。
信号首先经由射频前端将射频信号通过二次混频变成中频信号。随后经过A/D转换变成数字信号通过通信模块传送至软件解调模块。解调模块是软件对数据进行处理的主要部位,其首先对接收到的采样数据进行滤波,再通过算法实现信号的数字解调,最后对数据信号进行门限判决理调,初步还原出原始传真信号。解调后的信号需要先送至控制模块进行启停信号、传输模式信号的检测,当检测到起始信号后控制模块便开启软件中的数据操作模块,在该模块中根据用户需求选择数据操作内容 ,如直接显示气象图,保存数据等。
由系统整体结构框架可以看出,解调模块是整个软件的核心。只有将传真信号先进行准确解调,才能正确引导控制模块进行制式判决,从而对图像数据进行后续的处理,保证整个接收图像流程正常工作。
2 正交解调在解调模块中的应用
根据WMO建议9.TP.4关于收集和交换气象资料设备的规定,气象传真信号传播主要使用直接调频(FM)的模拟方法或频移键控(FSK)的数字方法[3]。该类制式的信号从解调的角度看,其在形式上并没有本质上的区别,因此均可以采取正交的方法进行解调。
2.1 正交解调原理
气象传真信号属于窄带信号,可以用以下模型表示:
式中,eiω0t为信号的载频分量,它作为信号载体不含有用信息。将上式两边乘以e-iω0t,即把载频下移ω0,变成零载频,其结果就是零中频信号,即:
式中 ZBI(t)=a(t)cosθ(t),ZBQ(t)=a(t)sinθ(t),分别为基带信号的同相分量和正交分量。基带信号为解析信号的复包络,是一个复信号,基带信号既有正频分量,也有负频分量,但其频谱不具有共扼对称性,若随意剔除基带信号的负频分量,就会造成信息的丢失。在解调过程中只需要处理零中频信号即基带信号就可以恢复出调制信号。
调频信号的正交基带变换求解流程如图2所示[4]。
图2 调频信号正交解调框图Fig.2 Digital quadrature demodulation of FM signal
对于直接调频的信号来说,其信号经过采集后可以表示为:
将其正交分解,得出同相分量和正交分量分别为:
对正交分量和同相分量的比值进行反正切运算,可得出信号的相位为:
对相位进行差分运算,可得瞬时角频率为:
上式减去直流分量Δω就可以得到解调信号m(n)。
而对于采用二进制FSK信号,其处理流程与调频信号相似。所不同的是在计算出瞬时频率后,需要对解调出的信号进行门限判决,才可恢复出数字信号。
2.2 仿真验证
在Matlab里面运用正交解调的方法对实际信号进行仿真解调。该信号是经过单边带下变频后中心频率为1 900 Hz,上下频偏为400 Hz的标准传真信号。接收采样率设为40 kHz,节选时间长度为2 min 48 s。信号波形如图3所示。
图3 实际气象传真信号Fig.3 Real meteorological facsimile signal
采用正交解调的方法对气象传真信号进行处理,得到初步解调的数据波形:
图4 解调后数据波形Fig.4 Waveform of demodulated data
初步解调的数据需要进行门限判决,根据需要可以采用不同阶不同阈值对数据进行分辨。用于仿真,此处只采用了0、1二值对数据进行理调,理调后的数据如图5所示。
图5 理调后二值图像数据Fig.5 Waveform of monochrome data
将二值图像数据进行合并压缩、数值判决、数据结构变形后绘出的气象传真图如图6所示。
图6 最终绘出的气象图Fig.6 Final demodulated meteorological facsimile image
通过最终解调的气象图看来,正交解调方法在处理该类信号时简单准确,基本满足接收机性能指标。
3 解调模块软件实现
在Windows系统下进行软件编程,与其他编程语言环境相比,使用Visual C++比使用VB语言编程拥有更多灵活性,又不像Delphi语言那样需要过多编程技巧和经验。在微软的Visual C++6.0的版本中,其将大量的Windows API函数进行封装,并通过MFC的方式提供给程序开发人员,使得开发人员可以很方便地对程序进行各种操作,从而大大简化了编程工作,提高工作效率[5]。因此,本软件开发主要使用VC++进行开发。
解调模块从编程角度将其分为界面层、功能代码层、基础操作层3个层次。界面层完成与用户交互操作并将命令参数发送给功能代码层;功能代码层接收参数,翻译后发送给基础操作层;基础操作层根据功能代码层传递过来的命令完成相应的基础操作,如硬件的数据采集、数据解调、数据保存等。为实现解调模块的实时性,模块预先开辟了三内存区间,并采取类似DSP硬件中基于中断的PING-PONG结构进行处理。保证一个缓存空间数据在做解调的同时,另一个缓存不会间断数据传递。为了保证数据的连续性,还多开辟一个缓存空间防止数据丢失或溢出。
整个模块数据处理的具体流程如图7所示。
图7 解调模块的软件实现流程图Fig.7 Flow chart of demodulation module
程序开始时根据传递过来的参数设置完成自身初始化工作,包括内存空间的分配、带通滤波器的预置、采集硬件的准备等。之后打开采集硬件进行数据的实时采集,此时数据为未作处理的原始信息数据,通过软件的制式检测模块先进行信号的判别。当检测到是气象传真图的信号并检测到其起始信号后,数据类型为BOOL的成员变量m_IsStart置位TRUE并进入数据解调运算流程。
程序首先将一块已写满数据的缓存区数据导出至存储长度相同的数组s(n),通过正交变换函数分离成待处理数据z_real(n)和 z_imag(n),作为解析函数 z(n)的实部和虚部,然后使用VC++提供的数学库函数计算出解析函数z(n)相位角,由于直接计算出来的相位角范围在±π,在其边缘的相位角有可能出现跳变,导致解调出来的相位信息不连续[6]。因此解调时需要在其后加上相位角修正的函数,保证解调数据的正确。最后对修正后的相位角进行差分运算,经过判决后得出原信号信息。一次数据解调完毕后BOOL值成员变量m_IsEnd置位TRUE,而后重置本次处理数据的缓存区,重新将其加入到接收数据队列中。
按照如上流程不间断地对接收信号进行处理,直到软件检测模块检测到图像的结束信号或者手动停止接收信号。解调模块停止接收数据,释放占用内存,重置各参数,整个接收流程结束。
4 软件测试及结论
最终完成的气象接收软件将显示灰阶定位9阶,基本可以满足目前所有的气象传真图接收显示指标。将工控机与前端射频接收硬件模块连接好后,软件合作系数设为576,扫描行速为120线/分钟,工控机数据采样率设为40 kHz。实测信号为JMH气象传真服务短波电台测试图像信号,理论中心频率为1 900 Hz,实测中频为1 930 Hz,经软件自适应修正后,显示正常。实际测试效果如图8所示。
图8 实测接收气象传真图Fig.8 Receive test of the software
通过软件实际运行测试可以看出,利用正交解调的方法对调频和频移键控信号进行解调,并在此基础上完成无线气象软件接收机的设计及实现,解调效果与硬件接收机相比无明显差别。但其所需开发工具简单,系统安全稳定,解调准确快速,对数据的后续处理方便。另外由于接收机采用的是软件模式,使得其具有很强的可扩展性和可移植性,应用前景十分广阔。
[1]Bodson D,Cramer B G,Deutermann A R,et al.Facsimile transmission via HF radio[J].IEEE Transactions On Vehicular Technology,1991,40(3):515-520.
[2]Azzouz E E,Nandi A K.Automatic identification of digital modulations types[J].Signal Processing,1995,47(1):55-69.
[3]朱涛,张英元.气象图传真接收机[M].武汉:海军工程大学出版社,1992:61-67.
[4]Grayver E,Daneshrad B.A low-power all-digital FSK recevierfor spaee applications[J].IEEE Transactions on Communications,2001,49(5):911-921.
[5]宋坤,刘锐宁,李伟明.Visual C++开发技术大全[M].北京:人民邮电出版社,2007:4-5.
[6]胡广书.数字信号处理[M].北京:清华大学出版社,2003:435-438.