APP下载

基于有限状态机的Morse码识别算法的VHDL实现

2011-01-03田明才

沈阳大学学报(自然科学版) 2011年3期
关键词:莫尔斯状态机码字

吴 琼,张 明,田明才

(1.沈阳大学 信息学院,辽宁 沈阳 110044;2.东软股份有限公司,辽宁 沈阳 110179)

基于有限状态机的Morse码识别算法的VHDL实现

吴 琼1,张 明1,田明才2

(1.沈阳大学 信息学院,辽宁 沈阳 110044;2.东软股份有限公司,辽宁 沈阳 110179)

基于Morse码的基本原理,提出了一种基于有限状态机的Morse码自动识别算法·将电键拍发过程划分为6种状态,利用VHDL硬件描述语言的强大逻辑描述能力,给出了在MAX PlusⅡ开发软件环境下,设计识别Morse码的具体方法和仿真分析结果·算法能根据报务员发报时的码速确定Morse码的判别门限,大大提高了码字识别的准确率·

莫尔斯码;有限状态机;VHDL;码速

莫尔斯(S F B Morse,1791—1872)将电讯实用化,发明了莫尔斯码,建立了早期的电讯通讯模式·莫尔斯信号作为短波通信中简单、实用的一种方式,目前仍广泛应用在海事移动通信、航空移动通信、广播、卫星通信当中[1]·

本文基于VHDL硬件描述语言,应用有限状态机的描述思想,将Morse码发报过程划分为6种不同的状态,在各自状态下完成个体发报速度判别,以此确定码字判决门限,实施状态转换,完成Morse电报的码字识别功能,在考虑个体差异的前提下,大大提高了报文识别的准确率·

1 Mors e码基本原理

莫尔斯码是将文字以数个长短不同的讯号代表,作成最简单的电报通讯,标准的Morse码由点(·)、划(-)两种符号组成·以点为一基本信号单位,划长∶点长=3∶1,点与点、点与划、划与划间隔均为标准信号单位·字符间隔为3个标准信号单位,字之间的间隔为5个标准信号单位·

目前,莫尔斯码识别算法主要有冈瑟算法、相对比较法、绝对比较法、概率分区法等[2]·这些算法都要求以固定参考时间或码字概率来分析判别,但实际发报过程中,由于报务员的个体差异,发报速度不同,莫尔斯码的判别时间门限不能适应相应的变化,所以判别准确率不高,实际应用中往往达不到译码要求·

2 有限状态机的Mors e码识别算法设计

图1 系统译码算法流程图

2.1 系统总体设计方案

系统译码算法流程如图1所示·

该系统主要由如下三部分组成·

状态机判别部分:在时钟上升沿对按键信号进行抽样采集,依当前状态机状态与输入信号值i共同进行判别,执行状态确定与转换·

状态机响应部分:依据时钟采样得到的电键首次按下周期数作为基准信号单位,设定各码字判别的域界标准·以间隔确定出每种信号的类别·

译码表译码部分:遇到字符间隔时对码字(点划)进行适当组合,查“码表”得到相应的码字·对于字组间隔,对码字进行适当组合,得到单词·

2.2 状态确定及状态转换图

根据电键按下与抬起过程可划分为6种不同的拍发状态[3]·6个按键状态的定义如表1所示·

将有限状态机各个状态作成状态转移图(见图2)·在任意发报状态中,当接收到高低电平时,都可由状态转移图判断出系统下一步处于什么状态·对各状态机设计相应的响应,从而最终判决出码字与组字·例如:系统当前处于状态机在 Keyup(电键抬起)状态,当输入为1时,表征电键持续抬起,进入 Keykeepup状态;当输入为 0时,进入Keydown状态,表征电键按下·

表1 状态机状态与按键状态的对应关系

图2 状态转移图

2.3 码速计算及信号类别域界的设定

图3 码字判断规则域及流程图

考虑到报务员个体发报时间存在差异,在发报前,由选定的报务员作“点”时长确认,依据首次电键按下持续时间的时钟周期数作为标准信号单元,进行归一化,设定各信号阈值判决标准·在Keyup状态和 Keydown状态,分别对归一化的按键时间与抬键时间作判断,表征输出码字类型,码字判断规则域及流程如图3所示·

2.4 Morse码的识别过程

该系统采样时钟频率设定 100 Hz,即每隔0.01 s对时钟上升沿进行信号监测,判别有限状态机的状态,对状态持续时间累加,判别码字,输出Morse电报码·

Invalid状态设定为系统初始状态,检测到电键首次按下,将状态转移至 Keyfirstdown并持续直到电键抬起,依据该状态持续时间来确定标准信号单元,存储于信号量a中,系统转入 Keyup状态·进入循环检测·

Keyup状态:由 Keydown或 Keykeepdown状态转入,表明按键状态发生变化,用于确定按键按下状态持续的时间,存储于信号量中·

Keykeepdown状态机:由 Keyup状态转入,表明电键处于持续按下状态,开始计数·

Keydown状态:由 Keyup或 Keykeepup状态转入,表明按键按下,用于确定按键按下状态持续的时间,存储于信号量中·

Keykeepup状态机:由 Keyup状态转入,表明电键处于持续抬起状态,开始计数·

过程如下:假定现在按键处于 Keykeepdown状态,若硬件电路下一时刻对电键抽样得到的是低电平,即按键没有抬起,则根据状态转移图可知,按键还在 Keykeepdown状态,并将Keykeepdown状态时间累加·若对电键抽样时间得到的是高电平,即电键抬起了,根据状态转移图,按键此刻处于 Keyup状态,此时便可得出Keykeepdown状态总共所持续的时间·以此类推,可以得到各个状态持续的时间·

3 Mors e码识别算法的VHDL实现

外部时钟信号Clk,i为串行输入按键状态,o为输出信号码字判别·在时钟上升沿对输入信号i进行检测,判断状态机状态,进行状态转换或信号累加工作,最终完成码字识别·Morse码识别过程核心代码[4]见附录·

4 仿真结果及分析

如图4所示,i为电键状态模拟,首次按下时间累加值a=3,作为报务员标准信号单元,信号量b依据状态基持续时间进行计数,直至按键抬起(或按下)判别b的取值区间,确定输入键码类型,通过输出引脚o输出·本例中输出依次为“0,3,0,2,1”,依照约定即“点、字符间隔、点、点间隔、划”·由此可见,该系统能够依照报务员个体按键速度灵活确定Morse码阈值范围,正确识别出电键按下与抬起状态的具体信号类型·

图4 仿真波形图

5 结 语

采用VHDL硬件描述语言,基于有限状态机的思想,设计并实现了一种码速可预设的莫尔斯码自动译码算法·该算法依据报务员个体初始发报码速,自动计算标准点时间长度与各个判断门限,从而大大提高了译码准确率·在MAX PlusⅡ编译环境下,经仿真测试能正确地译出点划及各种间隔码字,达到了预期要求·系统进一步改进的思路为:依据报务员实时码速变化引入反馈网络,实现在一次译码过程中动态改变各门限阈值的功能,进一步提高译码过程的准确率[5]·

[1] 霍建,刘鸿雁,段秀铭.手工拍发的莫尔斯信号种类识别算法设计[J].鞍山科技大学学报,2006,29(4):351-353.

[2] 李春晓,赵旦峰,李强.用语音识别技术实现莫尔斯报的自动识别[J].信息技术,2006(2):51-53.

[3] 马威,张敬修,王虎帮.Morse电码自动译码系统[J].兵工自动化,2007,26(6):51-55.

[4] 侯伯亨.VHDL硬件描述语言与数字逻辑电路设计[M].西安:西安电子科技大学出版社,2004.

[5] 魏海舰,徐家品.一种手工莫尔斯电报质量评估系统设计[J].微计算机信息,2008,24(8):4-7.

附录:

Discerning Algorithm of Morse Code with VHDL Based on Finite State Machine

W U Qiong1,ZHAN G Ming1,TIAN Mingcai2
(1.School of Information Engineering,Shenyang University,Shenyang 110044,China;2.Neusoft Corporation,Shenyang 110179,China)

A Morse code automatically discerning algorithm on the finite state machine is put forward based on the basic principles of Morse code.The process of pressing the key is divided into six states.The concrete method and the simulation result is given of designing and identifying Morse code in the MAX PlusⅡdevelopment environment,which take advantage of the powerful logical description ability of the Very-High-Speed Integrate Circuit Hardware Description Language.The judgment threshold of Morse code could be determined according to the code-speed of telegraphic keying,which greatly enhanced the accuracy of the codeword identification.

Morse code;finite state machine;VHDL;code-speed

TN 917.2

A

2010-11-29

吴 琼(1979-),女,辽宁鞍山人,沈阳大学信息学院讲师,硕士·

1008-9225(2011)03-0001-04

【责任编辑:刘乃义】

猜你喜欢

莫尔斯状态机码字
基于有限状态机的交会对接飞行任务规划方法
放 下
数据链系统中软扩频码的优选及应用
放下
莫尔斯:文艺青年搞科研
永不言败
莫尔斯暂时屈膝
爱德华·莫尔斯和他的屋瓦研究
长为{4,5,6}的完备删位纠错码的存在性*
FPGA设计中状态机安全性研究