APP下载

FSK来电识别软解码算法研究

2012-11-01赵书朵陈云生颜恒

关键词:解码芯片变量

赵书朵 陈云生 颜恒

(西南石油大学,成都 610500)

FSK来电识别软解码算法研究

赵书朵 陈云生 颜恒

(西南石油大学,成都 610500)

介绍电话POS STM32F103VC平台上FSK制式CID的软件解码实现。分析2DFT、移位相乘两种FSK软解调方法的原理,在MATLAB上对这两种解调方法的性能进行分析。MATLAB运算结果表明,2DFT方法和移位相乘方法各有优缺点。将解调算法按标准C代码移植至VC,再将其移植至电话POS STM32F103VC主控芯片,并在POS系统中对解码性能进行测试,优化解码算法。

电话POS;来电显示;频移键控;软件解码;MATLAB

通信技术的发展日新月异。通信的目的是传送信息,但是消息的传送一般都不是直接的,它必须借助于一定形式的信号才能远距离的传输和进行各种处理,这种信号称为基带信号。要将低频的基带信号调制后才能传输,常见调制有幅度调制AM、频率调制FM、相位调制PM等。FM的抗衰减性能优于ASK,设备简单,易于实现。

主叫号码信息识别及传送 (CID,Calling Identity Delivery),是指交换机把主叫用户的相关信息,如主叫号码、呼叫的日期、时间等,发送给被叫用户,由被叫用户的接收终端,将主叫号码显示出来并存储,以便用户今后查阅。

在目前电信业务中,CID信息的传输方式有:FSK、DTMF。和DTMF相比,FSK方式有如下几个优点:(l)数据传输速率快,在相同时间内能传的字符相对较多;(2)FSK支持 ASCII字符集,而DTMF仅支持数字及少数字符。目前,采用FSK方式传输CID的国家有中国、美国、日本、英国等,而DTMF方式则由以瑞典为代表的一些欧洲国家所采用。

1 研究内容

目前电话POS来电显示的解码方案多采用专用芯片实现。如联迪商用设备有限公司的电话POS产品SP-100系列,其来电显示模块架构为ARM Cortex-M3+CMX865,如图1所示。在实际的应用中,来电显示的通信方式为DTMF或FSK,不能确定,而CMX865芯片不具备自适应FSK或DTMF制式能力,需要根据实际线路情况,对CMX865芯片内部寄存器进行设置。这样,产品对线路制式的适应性不理想。

该产品SP-100系列中,主控Cortex-M3使用的是STM32F103VC芯片,该芯片外围资源丰富,处理能力较强。因此,有可能采用数字信号处理算法,直接解析电话线上FSK来电显示信号。若成功的话,由于软件的灵活性,有可能自动识别FSK或DTMF信号制式,而不需人工设置。同时,取代目前的CMX865芯片后,又可降低成本。

图1 来电显示硬件解码方案架构

在本应用系统中,用到CMX865的功能有FSK调制、解调,DTMF调制、解调等,如使用软解码系统取代CMX865,需要软件实现其全部功能。这些功能中,属“FSK解调”部分最难,运算量最大。本文研究“FSK解调”的实现,并将其用于CID。若FSK解调成功,也可方便地应用于FSK通信。因此,本文研究在POS上实现FSK制式的来电识别软解码。

2 研究方法

基于“在POS上实现FSK制式的来电识别软解码”的任务,根据“分而治之”的思想,对该任务进行子任务划分,见图2。

图2 子任务划分

理论:此步骤主要学习、分析通信技术及2FSK相关理论知识,包括查阅资料,并自行理解,推导验证。Matlab:此步骤主要使用Matlab验证FSK的软件解调方法,并将关键数据可视化,以便于理解算法原理,分析算法性能。VC:将上步的Matlab算法,改写为标准C语言代码,在VC上实现FSK来电识别的软解码。POS:将上步的标准C语言代码,使用keil集成开发环境,移植至Cortex-M3平台。测试:测试Cortex-M3主控对于FSK来电识别显示信息的解析能力,并对细节进行优化,改进。

3 FSK软件解调方法

FSK信号在通信系统中的应用很广泛,因此其解调技术也成为一种核心技术。根据各自应用系统的架构,可分为软件解调和硬件解调两种方式。常用的软件解调算法有基于时域的延迟相关解调方法、基于时频分析(时域、频域同时分析)方法的短时傅里叶变换(STDFT)解调方法。还有些文献给出全数字锁相环的FSK解调方法,以及利用正弦频率估计的方法解调FSK信号,也有过零统计方法等[1]。文本主要研究了时域的移位相乘关系方法和时频分析的短时DFT方法。

4 Matlab算法实现

Matlab是矩阵实验室(Matrix Laboratory)的简称,其数值计算功能十分强大[3]。为了更方便地进行用户界面设计,Matlab提供了图形用户界面开发化境GUIDE,这使得界面设计在可视化状态进行,设计过程变得简单直观,实现了“所见即所得”[4]。为完成Matlab解码功能,编写了以下程序,其步骤见图3。

图3 Matlab程序步骤

步骤1:打开文件,从.wav/.txt文件中获取FSK波形数据及相关信息,将波形数据存于变量handles.y中。

步骤2:计算基带,从变量handles.y中获取波形数据,采用“移位相乘”或“2点DFT”方法,计算FSK的基带信号,存于变量handles.y_base中。

步骤3:判决比特,从变量handles.y_base中获取基带信号,对其进行采样判决,得出FSK比特信息,存于变量handles.y_bit中。

步骤4:合成字节,从变量handles.y_bit中获取比特流信息,将其按照FSK数据链路协议,进行字节合成,得出字节信息,即为FSK数据帧,存于变量handles.y_byte中。

步骤5:从变量handles.y_byte中获取FSK数据帧,将其按照FSK CID帧格式协议进行解析,得出CID时间、姓名、号码信息,存储于handles.msg中。

5 移植测试

完成Matlab算法解码录音文件的工作,已经从原理上,验证了FSK信号软解码的可行性。而要在POS上运行软解码代码。还要编写标准C代码,在vc上能够解析.wav和.txt文件后,最后将其移植到POS。

在vc上面运行解码算法,程序结构与Matlab大致一样,这里不作介绍。

在移植到POS时,程序架构设计为实时解码方案。9 600Hz的定时中断触发ADC,采样完成后,触发DMA,有DMA直接将采样数据送往指定的内存区。DMA传送了设定数据的一半或全部时,触发软解码方案对现有的数据进行解码。这样,整个软解码系统和数据采样并行进行,保证了系统的实时性。

测试阶段,使用JH2001电话/短消息分析仪,产生FSK仿真信号,对FSK信号的各项参数进行交叉测试。因为实际拨号测试,其信号质量因交换机不同而不同,且一般信号都较好,不容易发现问题。实际测试时,对各项参数进行交叉测试,结果见表1。

6 结 论

通过测试发现,采用2DFT算法进行软解码,对FSK信号有较好的适应能力,能够满足基本的国标要求。但实际应用时,应当尽可能提高解码算法的适应能力,仅满足国标要求是不够的。

软解码性能与系统的电话线接口电路设计有很大的关系。从原理上讲,我们的软解码算法性能如下:

(1)对于信号源的相位准确度要求要高。由于小信号加上恒定的加性噪声后,相位将变得模糊。因此,对于小信号的解码效果稍差。解决办法是从硬件上提高电话线接口电路的放大倍数,将信号适当放大,使其幅值足以抵抗恒定的加性噪声。这样,信号的相位信息较少受到噪声的干扰,对于解码有利。

(2)对信号的频率准确度要求不高。即便是信号放大到出现截顶失真的情况下,出现高次谐波频谱时,也可以很好地解码。因为出现频谱失真时,其信号幅值必定是很大的,此时信号的相位信息非常准确。因此,对于2DFT算法,也能够很好地解码。实际上,只要信号幅值足够大,相位足够准确,即便是将信号通过过零比较器进行二值化,也是能够解码的。

因此,2DFT算法,除了对小信号解码效果稍差以外,对信号的电平差、频偏、信噪比等都不是很敏感。如欲提高解码性能,一种有效的方法就是从硬件上对信号进行放大。

[1]樊昌信,曹丽娜.通信原理(第六版)[M].长沙:国防工业出版社,2009:184-188.

[2]程佩青.数字信号处理教程[M].北京:清华大学出版社,2007:98-138.

[3]刘卫国.Matlab程序设计与应用(第二版)[M].北京:高等教育出版社,2009:217-239.

[4]罗华飞.MATLAB GUI设计学习手记[M].北京:北京航空航天大学出版社,2009:190-213.

[5]胡延平,李纲,王展,等.一种基于DSTFT解调2FSK信号的新方法[J].通信学报,2006,21(6):54-59.

Research of Soft Decoding Algorithm For FSK CID

ZHAO ShuduoCHEN YunshengYAN Heng
(Southwest Petroleum University,Chengdu 610500)

This paper introduces the achievement of software decoding for FSK CID on the STM32F103VC of POS.At first,it analyzes the theory of the'2DFT'and'Shift-Multiplication'FSK soft demodulate method,and analyzes the function of the two methods on MATLAB.The results show that the two methods have their own advantages and disadvantages.We transplant the algorithm to VC by standard C code,and transplant the C code to the STM32F103VC of the telephone POS terminal.In the POS system,we have test the decoder's performance and tried to optimize it.

phone POS;CID;FSK;Soft decode;MATLAB

TN915

A

1673-1980(2012)01-0133-04

2011-07-10

西南石油大学校级科技基金项目(215)

赵书朵(1982-),女,河北任丘人,硕士,助教,研究方向为应用电子技术。

猜你喜欢

解码芯片变量
芯片会议
《解码万吨站》
抓住不变量解题
关于射频前端芯片研发与管理模式的思考
也谈分离变量
解码eUCP2.0
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机
多通道采样芯片ADS8556在光伏并网中的应用
分离变量法:常见的通性通法