- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
函数spicy.signal.spectrogram
:https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.spectrogram.html
和spicy.signal.stft
:https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.stft.html
似乎做了一件很相似的事情。
这两个函数有什么区别?
最佳答案
Tl;dr:如果我用 SciPy 文档给出的输出编写它:Sxx = Zxx ** 2
解释:频谱图和短时傅里叶变换是两个不同的对象,但它们却非常接近。
The short-time Fourier transform (STFT), is a Fourier-related transform used to determine the sinusoidal frequency and phase content of local sections of a signal as it changes over time. In practice, the procedure for computing STFTs is to divide a longer time signal into shorter segments of equal length and then compute the Fourier transform separately on each shorter segment. This reveals the Fourier spectrum on each shorter segment. One then usually plots the changing spectra as a function of time. Wikipedia
另一方面,
A spectrogram is a visual representation of the spectrum of frequencies of a signal as it varies with time. Wikipedia
频谱图基本上会在小窗口中截断您的信号,并显示一系列颜色来表示这个或那个特定频率的强度。与 STFT 完全一样。事实上,它正在使用 STFT。
现在,对于差异,根据定义,频谱图是信号 s(t)
的短时傅立叶变换 (STFT) 的平方幅度:
频谱图(t, w) = |STFT(t, w)|^2
scipy.signal.stft
页面底部显示的示例显示:
>>> plt.pcolormesh(t, f, np.abs(Zxx), vmin=0, vmax=amp)
它正在运行,您可以看到色标。但它是线性的,因为 abs
操作。
实际上,要获得真正的频谱图,应该这样写:
>>> plt.pcolormesh(t, f, Zxx ** 2, vmin=0, vmax=amp)
关于python - scipy.signal.spectrogram 和 scipy.signal.stft 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55683936/
在使用 STFT(短时傅立叶变换)后,输出是一个表示 3d 图的矩阵,就像 (A[X, Y] = M) A 是输出矩阵,X 是时间 ,Y为频率,第三维M为振幅,由像素颜色的强度表示,如下图: Spec
目前,我正在编写python脚本,该脚本应执行以下操作: 通过scipy.io.wavfile.read()分别读取音频文件和wav文件。 计算给定的wav文件的频谱图。 将频谱图中的数据写回到wav
我正在使用 librosa 库将音乐片段转换为梅尔频谱图,以用作我的神经网络的输入,如文档 here 中所示。 . 这与 MFCCs 有什么不同,如果有的话?使用这两种方法有什么优点或缺点吗? 最佳答
我刚刚开始编写一段代码来预处理一些音频数据,以便最近用它来馈送神经网络。在更深入地解释我的实际问题之前,请提到我从 this site 获取了如何做该项目的引用。 。还使用了一些来自 this pos
调用scipy.signal.spectrogram后是否可以确定给定段的不同频率的强度? 即执行以下命令后: fs, data = wavfile.read(waveFile) sampleF
我是 Matlab 和信号处理的新手。我在定义处理频谱图的频率范围时遇到问题。当我绘制 .wav 音频数据的频谱图时,y 轴频率范围从零到大约 23 kHz。我正在寻找的有用数据在 200-400 H
scipy.signal.spectrogram 计算信号的频谱图,但我看不到增加此频谱图频率分辨率的选项。给定可从 documentation 获得的代码,如何实现? from scipy impo
我正在关注 scipy.signal.spectrogram 上的教程示例. 是否可以限制我们想要计算频谱图的频率,假设在 1000-2000Hz 范围内。根据 FFT,我们将获得一半的采样频率。如果
在 Matlabs 的最新版本中,specgram 函数被 spectrogram 取代,文档说明: Note. To obtain the same results for the removed
当我使用以下代码使用 matplotlib 中的 plt.specgram 时,生成的频谱图是正确的 import matplotlib.pyplot as plt from scipy import
什么nfft这个函数中的参数是什么意思?有关文档,请参阅此链接 https://docs.scipy.org/doc/scipy-0.19.0/reference/generated/scipy.si
我尝试使用 scipy.signal.spectogram 创建幅度谱图。不幸的是我没有让它工作。 我的测试信号应该是一个频率为 400 赫兹、幅度为 1 的正弦波。频谱图幅度的结果似乎是 0.5 而
我有: import librosa from scipy import signal import scipy.io.wavfile as sf samples, sample_rate =
以下代码使用 scipy.signal.spectrogram 生成频谱图或 matplotlib.pyplot.specgram . specgram的颜色对比不过功能比较低。 有没有办法增加它?
我正在寻找在 Android 应用程序中生成频谱图图像的方法。我找到了this project它似乎完成了所需的一半工作:它加载音频文件并在给定的时间和频率创建强度的二维数组。然而,现在我有点迷失:如
函数 spicy.signal.spectrogram:https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.spectr
我正在开发 Telegram 机器人,我有一个关于 sendvoice API 的问题发送语音(音频)信息。 我推送从 MP3 源文件转换的 OGG 文件,使用 ffmpeg 进行转换,使用以下命令:
我正在尝试绘制 .wav 文件的频谱图。 下面代码行为方式的奇怪之处在于它适用于某些 .wav 文件而在其他文件上失败。我怀疑这是因为某些 .wav 文件与其他文件相比具有不同数量的 channel
我有一个用于音乐和语音分析的 PyQt 加 pyqtgraph 程序,我想绘制 wav 文件的频谱(使用 scipy python 包计算)。我可以在 matplotlib 中完成,但由于 matpl
我正在将 Python 代码转换为 MATLAB。 Python 代码,使用以下命令: stft_ch = librosa.core.stft(audio_input[:, ch_cnt], n_ff
我是一名优秀的程序员,十分优秀!