您如何通过音频线传输数据?


17

我想用短电缆通过音频电缆(即从音频卡到手机)传递一些数据。

我正在寻找一些算法来实现这一目标。他们当然应该包括适当的调制技术,以通过音频信号传输数据,以便手机可以通过其麦克风插孔解释数据。

有想法吗?;)

(PS-我当前的想法是使用Biphase标记代码。这样做有什么好处吗?)

谢谢。



3
我只是想摆脱这个问题-这让我感到太老了。早在我还是个孩子的时候,计算机就带有盒式磁带驱动器,用于以音频格式存储数据。所以是的,可以通过音频电缆传输数据,实际上,这是这样做的最早方法之一:)
AngryEE 2011年

Answers:


12

这是使用FSK的示例项目:http : //sree.cc/electronics/arduino-as-an-fsk-modem

FSK调制解调器基本上是通过频移键控技术将数字信号转换为模拟信号或声音信号的。在这里,我们可以通过上传简单的代码使Arduino成为FSK调制解调器。该项目产生并播放与数字信号相对应的声音,并将声音信号解调为相应的数字信号。


2
您能再给我们介绍一下吗?这些链接本身不应该是完整的答案。实际上,您的第二个链接甚至不再起作用。
Kellenjb'3

11

考虑使用Baudot(规格EIA / TIA-825)。它是用于TDD的协议,TDD是聋哑用户的一种调制解调器技术。它以每秒45.5位的速度传输,并且可以很好地应对恶劣的音频耦合环境。

我已经看到它是通过一些简单的频率分析(关键频率的窗口采样/滤波)软件实现的。我知道Astrix项目可以实现它,因此如果您不关心许可问题,可能会有一些代码需要审查。


感谢您的好意见。您知道更简单的吗?我每次需要传输大约4-8位数据,它们之间可能会有一些暂停。(数据突发)。
罗马

2
@roman-对于这么多的数据,我只选择播放两个容易分辨的音调,然后在每个频率上应用陷波滤波器并测试能量水平。您可以使用其他两个来回切换的频率并将它们用作时钟。快速搜索应该会为您提供几乎任何所需语言的陷波过滤器。
Jim Rush

5

有什么特殊的原因使用您的手机中可能已经包含的调制解调器

否则,我建议您看一下1980年代和90年代用于POTS(普通电话服务/系统)座机的低速调制解调器标准。我怀疑使用音频部分可以使用从Bell 103,212(300,1200bps)到V.32(9600bps)的音频部分,我认为该部分与美国300至〜3000 Hz的贝尔陆线标准大致相同(已校正)频率响应正负无线数字语音编解码器问题。

如果您想自己动手,则通过两音音频频移键控(AFSK)V.21可以达到300 bps ,在软件或硬件中非常容易实现。否则,使用调制解调器IC,例如Silicon Labs SI2401或CML Microcircuits FX / MX614CMX869B。(还有很多)


我之前在一对FRS收音机上使用了300bps的AFSK。很棒!
布拉德(Brad)

2

如果数据量很少(<= 4位),则可以简单地使用DTMF。易于编码,易于解码。在嘈杂的环境中效果很好。


存在用于解码DTMF的硬件,但是总的来说,我不会说它很容易解码。编码并不是很困难,但这并不是世界上最简单的事情。没有专门的硬件,解码就比较困难。
2013年

1
由于OP正在寻找要在手机上使用的算法,因此不需要专用硬件。手机已经具有足够的计算能力,可以将DTMF解码为值。
杰里·彭纳
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.