1

我正在通过 iPhone 的耳机插孔开发遥控器。这个需要:

  • 在 Sending 模式下,Send signal (19kHz) 和 signal (10kHz) 分别为 1 和 0
  • 在学习模式下,接收其他遥控器的相应信号

我读了一个网站,它介绍了 AudioUnit (http://cocoawithlove.com/2010/10/ios-tone-generator-introduction-to.html) 来生成用于发送的音调

但是学习模式呢?我的应用程序如何将 19kHz 和 10kHz 检测为 1 和 0 ?

谢谢。

4

3 回答 3

1

是的,这个想法应该可行,但 19kHz 可能正在突破 iPhone 录音能力的极限。您可以在此处找到 iPhone 设备频率响应的完整比较。请注意,19kHz 落在奈奎斯特频率的边缘,因此会有更多的滚降。因此,学习模式可能是必要的功能,具体取决于设备系列。

于 2012-05-23T07:14:10.107 回答
0

一个简单的 DSP Goertzel 滤波器将能够以低数据速率检测这些音调。要获得更高的数据速率,请在业余无线电杂志或网站中查找 FSK 解调代码。

于 2012-05-22T20:01:33.823 回答
0

您有 2 个问题需要解决:

  1. 如何获取音频
  2. 如何检测音调。

第一:音调生成示例代码将audiounit设置为输出,non用于输入。获取输入的一种方法是使用 aurioTouch,但根据我的经验,通过 SpeakHere 示例代码要简单得多。您可以在这里找到一个好主意http://www.youtube.com/watch?v=bINtRRyblZA 第二:要检测音调,您可以使用由 FFT 和 vDsp 制作的音高检测器(或 Goertzel 滤波器,但我不知道您是否可以在 ObjC 中找到已经制作的代码)

最后,您可以使用 SpeakHere 简单地通过谷歌搜索找到用于输入和音高检测的示例代码。希望这有帮助

于 2013-02-11T11:21:27.693 回答