如何从录制的声音中获取PCM数据进行傅立叶分析
How to get PCM data from recorded sound for Fourier analysis
我一直在编写c++代码,它将接收声音并输出其核心频率,就像吉他调谐器一样。我可以生成我自己的随机正弦波,并成功地执行FFT从一个文本文件,只是幅度与时间。我只是不知道如何从麦克风或声音文件中产生可用的数据。
是否有一个简单的方法来采样声音,并有它在振幅与时间文本文件中输出数据?
我已经研究了WAV文件格式和各种块是如何工作的,但它有点高于我的水平。
如果你能确保你的WAV是单声道的,未压缩的,16位的,并且在一个已知的采样率下,你可以跳过WAV/RIFF/任何头文件,或者把它当作样本来吸收(如果文件很长,这应该不会影响你的FFT结果)。
除此之外,未压缩的WAV并不是一种可怕的复杂格式。通过更多的努力,您将解析它。
相关文章:
- 防止主数据类型C++的隐式转换
- 用于访问容器<T>数据成员的正确 API
- 嵌套在类中时无法设置成员数据
- 使用流处理接收到的数据
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 在cuda线程之间共享大量常量数据
- C++将文本文件中的数据读取到结构数组中
- 如何在C++中序列化结构数据
- 捕获音频数据并保存到AudioFlinger中的原始PCM文件
- 在哪里可以从Android框架中获取原始的PCM数据
- 如何使用GStreamer播放PCM数据数组
- 如何使用IMFSinkWriter编写内存PCM数据
- FFmpeg:编码PCM 16音频数据分配错误
- Linux上有符号的16位ALSA PCM数据到U8的转换
- 如何从MediaCodec输出缓冲区中获取pcm数据缓冲区
- 使用FAAC编码到m4a的原始PCM数据是不可识别的
- iOS:如何在运行时使用audio Unit重新采样音频(PCM数据)
- 取消PCM(*.wav)立体声音频数据的交互
- 如何从录制的声音中获取PCM数据进行傅立叶分析