Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 实时输入音频的信号处理/FFT_Windows_Signal Processing_Real Time_Fft - Fatal编程技术网

Windows 实时输入音频的信号处理/FFT

Windows 实时输入音频的信号处理/FFT,windows,signal-processing,real-time,fft,Windows,Signal Processing,Real Time,Fft,我被告知这属于编程,而不是信号处理子交换 有没有办法在Windows中对实时音频进行频谱分析(特别是FFT) 我希望能够从麦克风读取音频,并在屏幕上显示结果的傅里叶变换 如果我能在某一组FFT特征出现时执行一个程序,这也会很有用 谢谢大家 要做到这一点,根据您最喜欢的语言/框架,您基本上有两种选择。我不确定你对信号处理有多陌生,所以我会建议一些选择 可视化编程 这些都是可视化编程环境,实际上不需要编写任何代码,但是Simulink和Pure Data都需要用户运行程序的运行时 (已付) Math

我被告知这属于编程,而不是信号处理子交换

有没有办法在Windows中对实时音频进行频谱分析(特别是FFT)

我希望能够从麦克风读取音频,并在屏幕上显示结果的傅里叶变换

如果我能在某一组FFT特征出现时执行一个程序,这也会很有用


谢谢大家

要做到这一点,根据您最喜欢的语言/框架,您基本上有两种选择。我不确定你对信号处理有多陌生,所以我会建议一些选择

可视化编程 这些都是可视化编程环境,实际上不需要编写任何代码,但是Simulink和Pure Data都需要用户运行程序的运行时

(已付) MathWorks/Matlab的可视化编程工具,实时性非常好(在我看来)。使用,您可以轻松地实时捕获系统中的麦克风输入,并执行处理、绘制频谱,如您所说,如果满足某些FFT条件,则可以执行进一步的处理

这不是免费软件,需要安装Matlab/Simulink运行时才能使用。您还可以根据需要(Java、JS和C的交叉)使用Matlab的.m语言编写处理脚本

(已付) Simulink的类似版本,但作为独立的可视化编程工具开发。这将允许您获得与Simulink类似的自由,但我认为重新分发会更容易

您可以将MSP最大化为可执行文件,以便立即提供给某人。这里有一个参考,让你开始在MAX。再次,这不是免费的,但如果你想了解更多,那么我认为这是值得的钱(如果我记得它不是太贵)

如果您需要比内置模块更多的定制处理,我相信您可以使用C或JavaScript设计定制的MAX模块。Max旨在轻松获取系统音频输入/输出,并帮助您入门

额外好处:您可以使用这个插件设计自己的Ableton Live插件,它可以让您的MAX MSP项目被编译成不同的格式。因此,如果您正在制作音乐,您可以创建自定义FX

(免费) MAX MSP的一个非常平淡的开源版本,但完全免费。一开始它可能看起来很枯燥,但我知道很多研究使用它来构建相当复杂的系统,可以进行一些严肃的数据处理。如果您需要自定义模块,也有许多社区为PD构建的附加模块。这里有一个链接,让你开始在PD。您无法使用PD编译应用程序,但由于安装PD完全免费,任何人都可以在安装PD后运行您的程序。另一个用于对PD中的音频I/O进行故障排除(如果它不能立即工作)

程序设计语言 如果你还没有接触过DSP或音频编程,那么视频是一个很好的入门方式。除此之外,这里有一些选项和链接可以开始使用,我会推荐它们

& 与之前一样,支持Matlab脚本中的实时音频I/O。这与Matlab的内置功能相结合,可以让您立即设置编程实时FFT并绘制响应(少于10行代码或其他内容)

它有自己版本的FFT函数和用于渲染绘图响应的不同后端,但没有音频系统工具箱。然而,它也是一个开源的替代方案,用于Matlab/Octave中的音频I/O,支持实时音频输入和输出

(是与Matlab等效的开源软件(Matlab需要付费许可证才能开发程序),但不支持Matlab支持的所有功能)

由于该模块,使用Python实现实时音频I/O和DSP变得更加可能!如果您刚刚开始使用Python,我会推荐您,因为它是对任何编程语言的一个很好的介绍,在尝试较低级别的语言之前,它可以帮助您教授DSP的基础知识

在这里,您可以开始使用PyAudio在Python中进行实时非阻塞音频I/O。要绘制数据,可以使用库,例如(设计类似于Matlab的简易绘制功能)

对于您的FFT,有多个库,但我先从一个库开始

C 经典的(有时也是)最令人畏惧的编程语言之一。由于没有对象(除非你想自己制作)或其他高级抽象,C语言是少数仍感觉像是从头开始构建的语言之一(我个人喜欢)

在我看来,要开始学习音频,我将介绍最广泛使用的跨平台音频I/O库。这将允许您在Mac、Linux和Windows上实时访问声卡数据输入和输出

一旦你把它建立起来,运行一个FFT,我将开始使用它,因为它的使用非常简单。如果你想绘制数据,我可能会看一下,但这不是一条很好的发展路线

如果你对编程非常陌生,除非你真的想陷进去,否则我不推荐你这么做

C++

同时也将用C++代码编译,但这里有两个更高级的替代方案。 我最喜欢的一个是框架/开发环境。它内置了跨平台音频I/O,并且作为框架的一部分,已经有了自定义功能。如果你愿意,你也可以为你的音乐定制。它还提供了对图形窗口的“轻松”(如果您了解C++)访问,以及对openGL的更高级别访问,因此您可以在实时绘制数据时发挥想象力。如果我没记错的话,第一次安装的一个演示项目是一个实时FFT图,您可以编译并查看笔记本电脑麦克风的输入。JUCE免费供个人使用,但附带一个小许可证