定位胆
定位胆

玩转摩尔斯电码:自制摩尔斯电码音频解析器

军事新闻 2019-05-25 21:3668未知admin

  摩尔斯电码(又译为摩斯密码,Morse code)是一种时通时断的信号代码,通过不同的排列顺序来表达不同的英文字母、数字和标点符号,从而实现通▪…□▷▷•信。

  我最早接触的摩尔斯电码是SOS(··▪•★· — — — ···),是小▷•●时候看一本儿童读物中提到某轮船沉船时发出的求救信号。后来在各种军事题材的影视作品中又频繁接触到了摩尔斯电码,当时就被它的神秘而着迷。

  写本文的主要目的是□◁想设计一套★△◁◁▽▼系统,帮助听报员解放双耳,实现对音频的摩尔斯电码自动解码。但手头没有现成的摩尔斯电码的音频文件,所以只好先设计一套摩尔斯电码音▲●…△频发生器,然后再设计一套摩尔斯电码音频解析器。

  首先制作两个音频文件:short.wav和long.wav。其中short.wav会发出700HZ的100毫秒时长的音频,代表发出“.”音,long.wav会发出700HZ的300毫秒时长的音频,代表发出“-”音。

  再通过编码来控制每个音的播放时间间隔,从而可以按照莫尔斯码表的规则来实现发送文字、单词、句子,最终就可以实现通信了。

  摩尔斯电码音频发生器的核心代码如下(注:如果需要完整源代码,请在评论区留言,留下你的邮箱,我会一一发送):

  摩尔斯电码音频解析器实现起来相对比较困难,需要掌握一些信号处理的知识,重点是掌握◇…=▲FFT变换。

  采样是将一个信号(即时间或空间上的连续函数)转换成一个数值序列(即时间或空间上的离散函数)。香农采样定理指出采样频率必须高于信号频率的两倍,只有这样,原来的连续信号才可以从采样样本中完全重建出来。

  本实验中莫尔斯码音频发生器产生的音频频率为700HZ,所以莫尔斯码音频解析器的采样频率应该使用略大于原始★▽…◇音频频率2倍,本文采样▼▲频率为1600HZ。

  在做信号处理时,经常要把时域信号转换为频域信号。为了增强信号的清晰度及抑制频谱泄漏,需要通过加窗来实现,本文使用的窗函数是布莱克曼窗函数(Blackman Window)。

  FFT (Fast Fourier▽•●◆ Transform, 快速傅里叶变换) 是离散傅里●叶变换的快速算法。FFT能将时域的数字信号转换为频域信号。

  由快速傅里叶变化的性质可知:当采样频率 (sampling_rate) 确定的情况下,取波形中的 fft_size个数据进行 FFT 变换时,若这 fft_size个数据包含整数个周期, FFT 所计算的结果是精确的。即当被采▪▲□◁样频率 f 满☆△◆▲■足如下公式时,FFT 的计算结果是精确的。

  对时域信号进行FFT变换后,会出现fft_size/2(fft_size为你做FFT的信号长度)频谱;由于fft_size值的大小,sampling_rate/fft_size分辨率◆●△▼●达不到,会出现大于1个以上比较大的频谱幅度值的。当fft_si◆◁•ze值比较大的情况下,对于单频信号,幅度值最大的所对应的频率值就是你的单频信号的频率。

  摩尔斯电码音频解析器的核心代码如下(注:如果需要完整源代码,请在评论区•□▼◁▼留言,留下你的邮箱,我会一一发送):

  冲杯咖啡,坐在屋子里。将摩尔斯电码音频发生器和摩尔斯电码音频解析器放在一起,听着耳边响起的滴答声,看着音频解析器的屏幕输出的文字,那一刻仿佛时间都静止了,不禁感叹——编码线 题外话

定位胆

Copyright @ 2011-2028 定位胆 All Rights Reserved. 版权所有 | Sitemap | 网站导航 备案号:苏ICP52131544

站长统计代码放在此处

联系QQ: 564455445 邮箱地址:5454545549@qq.com