摩斯电码想必不少伙伴都很熟悉吧,通过简单的长短组合就能把信息编码传递出去,比如声音的长短、灯亮灯的长短等等。虽然现在是信息时代,但摩斯电码这种优雅简介的编码方式依然不过时,甚至在某些关键的场合还能救人一命。
下图是标准版摩斯电码编码,26个英文字母不区分大小写,由点"·"和短横线"-"组成,点代表短信息,短横线代表长信息。
图片来源:zh.wikipedia.org/wiki/莫尔斯电码#/media/File:莫尔斯电码.svg
小编作为重度matlab编程爱好者,当然是很有兴趣用matlab来捣鼓摩斯电码一番,于是用matlab打造的摩斯电码加解码器音频版就诞生了。
上图就是摩斯电码加解码器音频版的主界面,包括文本输入区,文本输出区、加解码按钮、摩斯音频波形显示区、运行状态栏以及音频保存播放导入等操作按钮。
从国际摩斯电码编码表中不难看出,摩斯编码是不能直接对中文等其他非英文系字符进行编码的,为此电邮部推出了专门的标准中文电码 (Chinese commercial code官方网址:apps.chasedream.com/chinese-commercial-code/),但是该电码表并不能涵盖所有汉字。为了更大范围对汉字进行编码,小编这里并没有采用标准中文电码的相关编码规则,而是借助通用的Unicode编码作为桥梁来完成。Unicode作为国际通用编码规则,能够对人类已知的所有类型字符进行编码,也就是采用这种编码方式就可对所有语言字符进行摩斯电码编码。
为了更加直观形象生动,小编还加入了字符转音频的相关代码,这样更方便传递播送。
相关操作演示已发布至懂科学的程序员视频号,欢迎观看:
本文源代码已上传至原创代码与科研论文Q群,群中目前已有53款小编原创或改进改编的源代码,对本文源代码感兴趣的伙伴可加群获取。在懂科学的程序员公众号中回复“原创”或通过今日次条推文了解加群详情。
参考资料:en.wikipedia.org/wiki/Morse_code
图片来源:维基百科