我正尝试在python中创build一个graphics频谱分析仪。 我正在读取一个16位双通道44,100Hz采样率audiostream的1024个字节,并将这两个通道的幅度平均在一起。 所以现在我有一个256签名的短裤arrays。 我现在想要使用像numpy这样的模块在该arrays上进行fft预处理,然后使用结果创buildgraphics频谱分析仪,该分析仪的启动时间仅为32个小节。 我已经阅读了关于快速傅立叶变换和离散傅里叶变换的维基百科文章,但我仍然不清楚结果数组表示什么。 这是使用numpy在我的数组上执行fft之后数组的样子: [ -3.37260500e+05 +0.00000000e+00j 7.11787022e+05 +1.70667403e+04j 4.10040193e+05 +3.28653370e+05j 9.90933073e+04 +1.60555003e+05j 2.28787050e+05 +3.24141951e+05j 2.09781047e+04 +2.31063376e+05j -2.15941453e+05 +1.63773851e+05j -7.07833051e+04 +1.52467334e+05j -1.37440802e+05 +6.28107674e+04j -7.07536614e+03 +5.55634993e+03j -4.31009964e+04 -1.74891657e+05j 1.39384348e+05 +1.95956947e+04j 1.73613033e+05 +1.16883207e+05j 1.15610357e+05 -2.62619884e+04j -2.05469722e+05 +1.71343186e+05j -1.56779748e+04 +1.51258101e+05j -2.08639913e+05 +6.07372799e+04j -2.90623668e+05 -2.79550838e+05j -1.68112214e+05 +4.47877871e+04j -1.21289916e+03 +1.18397979e+05j -1.55779104e+05 +5.06852464e+04j 1.95309737e+05 +1.93876325e+04j -2.80400414e+05 +6.90079265e+04j 1.25892113e+04 -1.39293422e+05j […]
我是新来的matlab和FFT,想了解Matlab的FFT的例子 。 现在我有两个主要问题: 1)为什么x轴(频率)在500? 我怎么知道没有更多的频率,或者只是忽略了? 2)我怎么知道频率在0到500之间? FFT不应该告诉我,在哪个极限频率是? FFT是否仅在没有频率的情况下返回振幅值? 感谢任何提示! 问题示例: 考虑以1000Hz采样的数据。 形成一个信号,其中包含振幅为1,振幅为0.7和120 Hz正弦波的50 Hz正弦曲线,并用一些零均值随机噪声损坏它: Fs = 1000; % Sampling frequency T = 1/Fs; % Sample time L = 1000; % Length of signal t = (0:L-1)*T; % Time vector % Sum of a 50 Hz sinusoid and a 120 Hz sinusoid x = 0.7*sin(2*pi*50*t) + […]
因为我不想自己做,我正在寻找一个很好的Java的FFT实现。 首先,我在这里使用了FFT Princeton,但是它使用了对象,我的分析器告诉我,由于这个事实,它不是很快。 所以我再次search,发现这一个: FFT哥伦比亚更快。 也许你们中的一个人知道另一个FFT实现? 我想有一个“最好”的,因为我的应用程序必须处理大量的声音数据,用户不喜欢等待… 😉 问候。
我目前正在尝试使用Android来实现一些代码,以检测通过手机麦克风播放多个特定audio范围的时间。 我已经使用AudioRecord类设置了类: int channel_config = AudioFormat.CHANNEL_CONFIGURATION_MONO; int format = AudioFormat.ENCODING_PCM_16BIT; int sampleSize = 8000; int bufferSize = AudioRecord.getMinBufferSize(sampleSize, channel_config, format); AudioRecord audioInput = new AudioRecord(AudioSource.MIC, sampleSize, channel_config, format, bufferSize); 然后读入audio: short[] audioBuffer = new short[bufferSize]; audioInput.startRecording(); audioInput.read(audioBuffer, 0, bufferSize); 执行FFT是我陷入困境的地方,因为我在这方面的经验很less。 我一直在尝试使用这个类: 在Java和复杂类的 FFT 与它一起去 然后我发送以下值: Complex[] fftTempArray = new Complex[bufferSize]; for (int i=0; i<bufferSize; i++) […]
我一直在试图find一些地方来帮助我更好地理解DFT,以及如何计算它,但无济于事。 所以我需要帮助理解DFT和计算复数。 基本上,我只是寻找关于如何计算DFT的例子,并解释它是如何计算的,因为最后我想创build一个algorithm来计算它。
我在我的Android手机上录制了来自我的麦克风的数据[1024],并通过实际数据的一维正向DFT(将另外的1024位设置为0)传递给它。 我将这个数组保存到一个文本文件中,并重复这8次。 我回来了16384的结果。 我打开Excel中的文本文件,并创build一个graphics,看看它是什么样子(x =数组的索引,y =返回的数字的大小)。 有一些大规模的尖峰(包括积极的和消极的),数量在110,232左右,而小尖峰一直延续到1817年和1941年,尖峰再次变大,然后再次下降。 我的问题是,无论我在哪里寻找帮助的话题,都提到gettng的实数和虚数,我只有一维数组,我从我从Piotr Wendykier的类使用的方法回来: DoubleFFT_1D.realForwardFull(audioDataArray); // from the library JTransforms. 我的问题是:我需要做什么来这个数据返回一个频率? 录制的声音是我在我的吉他的底弦(第五品)上(大约440Hz)播放“A”。
我正在开发一个使用八度从头开始的语音识别系统。 我试图通过检测频率的差异来检测音素。 目前我已经阅读了一个wav文件,将这些值组织成块并将fft应用于整体数据。 之后,我绘制新的数据与plot(abs(real(fft(q))))创build此图: 我怎样才能得到频率值(图表的峰值)?
我在哪里可以find一个免费的,非常快速,可靠的C#执行FFT? 那可以用在产品上? 还是有任何限制?
有没有人使用Apple FFT的iPhone应用程序,或知道在哪里可以find一个示例应用程序如何使用它? 我知道苹果有一些示例代码发布,但我不知道如何实现它到一个实际的项目。
我有一个FFT结果。 这些存储在两个double数组中:一个实数部分数组和一个虚数部分数组。 我如何确定这些数组中每个元素对应的频率? 换句话说,我想创build一个数组来存储FFT的每个实部和虚部的频率。