我目前正在研究一些使用音频转换在激光器上传输消息/文件/和其他数据的代码。我当前的代码使用Python中binascii模块的hexlify函数将数据转换为二进制,然后为1发出一个音调,为0发出一个不同的音调。这在理论上是有效的,尽管不是编码/解码的最快方式,但在测试中证明存在一些错误。Python中的二进制相移键控
产生未发现对音调,即:发射在150Hz可以变成是145-155Hz在接收端,这不是一个大问题,因为我可以只设置在接收端的边界更低或更高。
真正的问题是,如果我发出一个音并且它被播放,接收端的计算机可能会多次读取它,或根本不会根据它对采样音频进行采样的速率来读取它。我试图以它采样的速度播放这些音调,但这非常不方便。
总之,我已经有几次使用短消息的成功运行,但由于上述问题,这是非常不可靠和不准确的。
我已经进一步研究了这个问题,对此的解决方案看起来可能涉及BPSK或二进制相移键控,尽管我不知道如何实现这一点。任何建议或代码示例将不胜感激!
我的项目代码可以找到here但我正在处理的主要文件是二进制解码和编码,它是here和here。我不是python的专家,所以请原谅我,如果我说的是错误的,我的代码不是最好的,或者如果我忽略了一些基本的东西。
谢谢! :-)
谢谢,这会有很大帮助! – sbrichards