我目前正在开展一个比较简单的项目,直到现在。基础项目是使用音频转换在激光器上传输数据/消息。 简而言之过程目前是这样通过激光器进行Python音频传输
- 用户输入一个消息
- 消息变成二进制
- 对于每个1和0的二进制消息中,它起着对应音调的信号,其在我的情况下,250赫兹为1和450赫兹为0.
- 输出音频通过立体声电缆发送到音频变压器,使用镭射装置
- 太阳能电池板充当麦克风并记录传入“声音”作为文件
- 它们播放文件并读取音调,并尝试将每个250和450赫兹与1或0(这是我的问题所在)匹配。
直到声音的实际处理很好,我目前的问题如下。
我在x时间播放每个音调,在接收端记录y个时间,y时间被削减多次采样,然后通过样本分析样本,然后记录每个频率。这是低效和不准确的。无论何时播放音调,我都有过许多问题,因为它经常听到两次音,或根本听不到它,这完全抛弃了整个信息。
我试图将它的采样率与每个音调播放的时间相匹配,但除非相应对齐,否则不起作用。我只对“测试”和“嗨”等消息进行过一些成功的测试。我已经看过bpsk和fsk,但我感觉好像我已经在做类似的事情,但是我有一个糟糕的接收端来破译它。
这是全部用Python编写的,我非常感谢您提供的任何提示,建议或可能的实现。另外对于音调发射,我使用pyaudiere
和录音我使用pyaudio
。
谢谢!
-Steve
好问题 - 这是更多的DSP相关的不是编程有关,但这样你可能会想尝试http://DSP.stackexchange.com –
多久的是什么方法您目前使用的检测每个音调和? –
可能重复[Binary Phase Shift Keying in Python](http://stackoverflow.com/questions/7466715/binary-phase-shift-keying-in-python) –