实时FFT绘图

时间:2011-11-04 03:39:30

标签: java android sdk arduino

我有一个奇怪的问题,我希望有人可以帮助我。

背景:我正在尝试设计一个系统,该系统将接收来自VLF天线/前置放大器系统的连续时间数据,该系统将获取该数据,对其进行FFT分析(幅度与时间的关系)并绘制得到的FFT数据作为实时频谱图。该项目被称为“嗡嗡嗅探器”,但专门用于查看15 - 35 kHz范围内的信号干扰。我已经购买了几本“自学java”书籍,我正在阅读它们。我是一名工程专业的学生,​​在Ansi-C和Matlab编程方面经验丰富。

问题:Android市场上有几个应用程序将使用麦克风作为输入源执行类似功能,我购买了所有应用程序只是为了了解它们的运行方式。我还从Sparkfun购买了带有USB Host屏蔽的Arduino Uno以及来自Sparkfun的IOIO板。我真的非常希望我可以将我购买的那些电路板与上述天线/前置放大器系统结合起来,在我尚未创建的Android程序中绘制这些实时频谱图。

我不是在寻找任何人来完成这个过程,但如果有人有任何相似的经验,我将不胜感激。此时我主要担心的是,在将数据输入手机之前是否需要设计外部系统进行A / D转换,或者我是否可以将CT信号数据直接发送到Android并让手机同时执行A / D转换和FFT图。哦,我是否可以使用USB端口将数据发送到手机中。

我正在使用我的Nexus S 4G进行所有测试/应用。

提前感谢任何输入。

2 个答案:

答案 0 :(得分:0)

您是否尝试过手机的headset microphone connection和使用录音应用程序连接音频?然后你应该得到一个你可以在Matlab中读到的文件,并且可以随时了解手机上音频输入的功能。

如果音频输入足够好,那么编写应用程序进行实时FFT和绘图应该不会太棘手。这样你就可以避免处理Arduino和Android USB附件支持。

答案 1 :(得分:0)

IOIO硬件能够达到500ksps。目前,固件限制为每通道1ksps,以限制所使用的USB带宽。但是,如果您知道自己在做什么并且不会溢出USB通道,则可以非常轻松地进行更改(单个数字和固件重建)。 单个通道上的单个样本将是3B消息。在40KHz时,这将是120KB / s,这是在ADB上达到的有效带宽内(最大值约为300KB / s)。 如果您需要帮助重建固件,ioio-users列表就是您的朋友。