简体   繁体   English

实时FFT绘图

[英]Real-time FFT plotting

I have a bit of am odd question that I am hoping someone here can help me with. 我有一个奇怪的问题,我希望有人可以帮助我。

BACKGROUND: I am trying to design a system that will take in continuous-time data from a VLF antenna/preamp system which will take that data, do an FFT analysis of on it (magnitude versus time) and plot the resulting FFT data as a real-time spectrogram. 背景:我正在尝试设计一种系统,该系统将从VLF天线/前置放大器系统获取连续时间数据,该系统将获取该数据,对其进行FFT分析(幅度与时间)并将得到的FFT数据绘制为实时频谱图。 The project is what is known as a "hum sniffer" but specifically to see signal interference in the 15 - 35 kHz range. 该项目被称为“嗡嗡嗅探器”,但专门用于查看15 - 35 kHz范围内的信号干扰。 I have purchased a couple of "teach yourself java" books and am in the process of reading them. 我已经购买了几本“自学java”书籍,我正在阅读它们。 I am an engineering student with limited experience with programming in Ansi-C and Matlab. 我是一名工程专业的学生,​​在Ansi-C和Matlab编程方面经验丰富。

QUESTION: There are several applications on the Android market that will perform a similar function using the microphone as the input source and I have purchased all of them just to see how they operate. 问题:Android市场上有几个应用程序将使用麦克风作为输入源执行类似功能,我购买了所有这些应用程序只是为了了解它们的运行方式。 I have also purchased an Arduino Uno with USB Host shield from Sparkfun as well as a IOIO board from Sparkfun. 我还从Sparkfun购买了带有USB Host屏蔽的Arduino Uno以及来自Sparkfun的IOIO板。 I am really REALLY hoping that I can use a combination of those boards I have purchased in conjunction with the aforementioned antenna/preamp system to plot those real-time spectrograms in an Android program I have yet to create. 我真的非常希望我可以将我购买的那些电路板与上述天线/前置放大器系统结合起来,在我尚未创建的Android程序中绘制这些实时频谱图。

I am not looking for anyone to hold my hand through this process but if anyone has any experience with anything similar I would appreciate any insight. 我并不是在寻找任何人来完成这个过程,但如果有人有任何相似的经验,我将不胜感激。 My major concern at this point is whether I need to design the external system to do the A/D conversion before feeding that data into the phone or if I might be able to send the CT signal data into Android directly and have the phone do both the A/D conversion and the FFT plots. 此时我主要担心的是,在将数据输入手机之前是否需要设计外部系统进行A / D转换,或者我是否可以将CT信号数据直接发送到Android并让手机同时执行A / D转换和FFT图。 Oh, and whether or not I can use the USB port to send data into the phone. 哦,我是否可以使用USB端口将数据发送到手机中。

I am using my Nexus S 4G for all testing/applications. 我正在使用我的Nexus S 4G进行所有测试/应用。

Thanks in advance for any input. 提前感谢任何输入。

Have you tried connecting your audio on the phone's headset microphone connection and using a sound recording app? 您是否尝试通过手机的耳机麦克风连接和使用录音应用程序连接音频? Then you should get a file that you can read into Matlab and play around with to get an idea of the capabilities of the audio input on the phone. 然后你应该得到一个你可以阅读Matlab的文件,并且可以了解手机上音频输入的功能。

If the audio input good enough then writing an app to do real-time FFT and plotting shouldn't be too tricky. 如果音频输入足够好,那么编写应用程序进行实时FFT和绘图应该不会太棘手。 That way you avoid dealing with Arduino and the Android USB accessory support. 这样你就可以避免处理Arduino和Android USB附件支持。

IOIO hardware is capable of 500ksps. IOIO硬件能够达到500ksps。 This is currently being limited in firmware to 1ksps per channel in order to bound the USB bandwidth being used. 目前,固件限制为每通道1ksps,以限制所使用的USB带宽。 However, it is super easy to change (a single number, and a firmware rebuild) in case you know what you're doing and won't overflow the USB channel. 但是,如果您知道自己在做什么并且不会溢出USB通道,则可以非常轻松地进行更改(单个数字和固件重建)。 A single sample on a single channel will be a 3B message. 单个通道上的单个样本将是3B消息。 At 40KHz, this would be 120KB/s, which is within the effective bandwidth that has been reached over ADB (the maximum is about 300KB/s). 在40KHz时,这将是120KB / s,这是在ADB上达到的有效带宽内(最大值约为300KB / s)。 If you need help rebuilding the firmware, the ioio-users list is your friend. 如果您需要帮助重建固件,ioio-users列表就是您的朋友。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM