问题标签 [spectrogram]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
662 浏览

python - Matplotlib mlab:更改 psd() 最大频率?

我只是发现了很棒的东西matplotlib.mlab.psd(),但是我遇到了一个问题,那就是:如何更改该方法使用的频率范围?

这有两个返回值:freqs,几乎是各种频率的直方图箱,以及Pxx,每个频率箱的归一化功率。freqs范围为 [0, 100] Hz。我可以使用参数更改分辨率pad_to,但不能将范围更改为 [0, 20]。有任何想法吗?

0 投票
0 回答
89 浏览

c++ - 创建频谱图应该知道/做的事情

我正在尝试使用 C++ 从头开始​​创建一个频谱图,看起来或多或少像这样

在此处输入图像描述

它将从麦克风接收音频,并仅显示数据,无需写入/读取二进制文件。

现在,我不知道创建这个程序需要了解什么。

目前,我正在快速学习 C++,就像整天马不停蹄一样。但是,我感觉,它不会全部用 C++ 完成。

我不是要代码,只是要任何建议如何实现。使用 C++,在 Window7 中

0 投票
1 回答
11363 浏览

c# - 将 WAV 文件转换为频谱图

嗨,我对这件事很陌生,所以请多多包涵。我正在尝试将 WAV 文件转换为频谱图,但不确定如何开始。我阅读了一些内容,上面写着要读取 PCM 数据(我认为这是我的 WAV 文件)并将其存储在 WavReader 类中的数组中,然后再对其应用 FFT 并将其转换为 GUI。我目前使用 Naudio 来实现这一点,但找不到任何显示如何将 WAV 文件转换为频谱图的内容。谢谢

编辑: 我发现了关于使用 Nadio 将 PCM 转换为 FFT 并且我卡住了。

编辑:我还想知道是否可以以编程方式比较 2 个不同文件的 2 个频谱图。

0 投票
1 回答
5070 浏览

c# - WAV 文件到字节数组

我目前正在使用 Naudio 记录用户的声音并将其转换为字节数组,以便我可以对其应用 FFT 并将其转换为双数组,然后转换为频谱图。我目前坚持将 WAV 文件转换为字节数组。谢谢。

编辑:我从 Coding4Fun 获得了这段代码并进行了一点编辑,但不确定这是否是我正在寻找的转换为浮点数并将 FFT 应用于它的内容。对不起,我对音频信号完全陌生。

问题:转换为浮点数后如何应用 FFT?

0 投票
1 回答
5324 浏览

c# - 对 pcm 数据应用 FFT 并转换为频谱图

我目前在 VS2012 中使用 Metro 应用程序。我有 ac# 代码可以记录用户的声音并将其保存到 wav 文件(16 位、44.1kHz、单声道)中。我已将 PCM 处理为仅包含值介于 -1 和 1 之间的双数组数据,如下所示。

下一步是我卡住的地方,我想做的是对双数组数据应用 FFT 并将其转换为频谱图。我想知道是否有任何 FFT 算法最好在不使用任何库的情况下采用双数组。

我还想知道是否有任何方法可以使用 Metro 将这些数据(在应用 FFT 之后)转换为频谱图(稍后用于与另一个频谱图进行比较)。

我的双数组值的一部分示例,我想用它对其应用 FFT 以获取频率并直观地显示它。

这是处理我的 PCM 数据的代码:

编辑 这是我的输出:

0 投票
1 回答
2258 浏览

matlab - Matlab中频谱图的平滑冲浪图

我想要一个 3d 频谱图这是我到目前为止所做的。

0 投票
0 回答
465 浏览

android - 在Android上用OpenGL-ES绘制多条垂直线图,实现Spectrum实时分析仪

我是 android 开发的新手,我使用基本的 opengl 方法,比如 Ububntu 上的粒子引擎或简单的旋转球体场景。我想实现一个频谱分析仪,它从手机麦克风获取音频信号,STFT 处理它们并在屏幕上绘制频谱结果。

我尝试对这种情况进行建模,使用大约 22000(正好 21980)个正方形(每个为 1 Hz)绘制并根据每个频率分量的 STFT 分析结果在 y 轴上缩放它们中的每一个。不幸的是,由于在 Renderer 对象的回调“onDrawFrame()”期间将自身绘制的 22000 个方形对象的计算负担过重,这种方法已经失败。

我找到了关于“glDrawArrays()”的信息,我希望这可以帮助我,但我不明白如何使用这种方法,我可以在 y 轴上拉伸(或缩放)我必须绘制的 LineArray 的每条线渲染器回调“onDrawFrame()”。

你们有没有人给我一些提示,特别是您认为这种方法在 OpenGL SE 引擎上可能具有计算性能?

谢谢和问候,狮子座。

0 投票
2 回答
3444 浏览

matlab - 用matlab识别声音的音高

我正在尝试做一个项目,该项目使用 MATLAB 读取 WAV 文件,其中包含一系列音符。例如,我的 WAV 文件可能包含一系列 CDCE。将此文件输入我的程序会打印出“CDC E”。

我尝试使用 WAVREAD 将文件转换为矢量,然后使用采样对其进行下采样并制作成单通道文件。然后我能够想出一个在某些频率上有“峰值”的频谱图。

从这里,我想获得有关如何使 MATLAB 识别峰值频率的帮助,从而使我能够打印出注释。

还是我走错了路?

提前致谢!

0 投票
1 回答
2488 浏览

matlab - Matlab频谱图汉恩窗

我的任务
是 .wav 格式的信号,采样频率为 44100Hz。我想得到它的功率谱。我想用大小为 200ms 且窗口周期为 50Hz 的 Hann 窗口来做 STFT。我强制的频率范围是 0 ~ 22000Hz。

我的问题
我可以用下面的代码得到我想要的吗?

上面代码返回的矩阵 P 就是我想要的,对吗?

进一步的问题

  1. 窗口大小与其FFT大小有什么关系?我通过他们过去是独立的,但我不确定。任何人都可以提供一个简单的答案或一些参考读物?
  2. 我有一个命令 specgram(x, 512, 8000, hamming(80)); --- 我猜最初的目的是:
    信号采样频率:8000
    窗口 nfft:1024
    窗口周期:10ms
    其实我并不确定这段代码的最初目的,任何人都可以阅读它吗?
0 投票
1 回答
2497 浏览

matlab - 确定功率最大的频率的 MATLAB 脚本

我正在使用移动的音频源和静止的观察者进行线性运动测量。此处描述:http ://www.animations.physics.unsw.edu.au/labs/Doppler/doppler_lab.html

如何编写一个MATLAB脚本来获取音频文件中功率最大的频率的样本数?