我使用android的Tonegenerator生成声音,其中1由http://developer.android.com/reference/android/media/ToneGenerator.html#TONE_DTMF_0表示,0由http://developer.android.com/reference/android/media/ToneGenerator.html#TONE_DTMF_6表示。现在,当我在另一部手机中录制并保存这些生成的声音时,如何从声音中解码o和1?
答案 0 :(得分:0)
如果您只有两个音调要检测,您可以使用FFT(快速傅里叶变换)来检测已接收的音调。您将面临的问题是确定为每个位执行多少个采样:如果占用太多,则可能会出现FFT将在两个音调上完成的问题。您可以在传输开始时添加同步序列以确保同步,也可以在传输的两个音调之间添加一些“静音”。
快速查看Wikipedia表明使用了两种技术:第一种是使用滤波器组调整滤波器(我猜测是绕过可能的频率)。另一个确实使用了一些FFT和一些预处理。