gpt4 book ai didi

python - Scipy 频谱图与 Matlab 频谱图

转载 作者:行者123 更新时间:2023-11-28 19:08:38 26 4
gpt4 key购买 nike

正如我上一个问题 AttributeError: 'module' object has no attribute 'spectrogram' ,我正在写一个小的 python 脚本,它读取一个 Wav 音频文件,计算频谱图并将相应的数据再次写回一个 Wav 文件。这是一些代码:

Scipy 代码:

windowSize = 512
nOverlap_py = 160
nFFT = 1024

Fpy,Tpy,Spy=signal.spectrogram(s_orig_py,fs=fs_rate,window='hamming',nperseg=
windowSize,noverlap=nOverlap_py,nfft=nFFT,detrend=False,mode='complex')

Scipy 的前 10 个元素:

Scipy First 10

Scipy 的最后 10 个元素:

Scipy Last 10

Matlab 代码:

[S,F,T] = spectrogram(s_orig,window,nOverlap,fftParams.nFFT,fs);

Matlab 的前 10 个元素:

Matlab First 10

Matlab 的最后 10 个元素:

Matlab Last 10

在这两种情况下,参数是相同的。只有一个小问题:Spy 的值甚至不接近 S 的值,我不明白为什么。我知道它们不可能完全相同,因为这两个函数使用不同的算法来计算 FFT,但正如我之前提到的,它们甚至并不接近。

此外,使用 Matlab,生成的 Wav 文件听起来与原始文件“完全”相同。对于 Python,这只是噪音。

最佳答案

在回答您的问题之前,请问您使用哪个库来读取 wav 输入的 scipy.io.wav 文件?

实际上,我最近遇到了这种值不匹配问题,并将问题追溯到 scipy.io.wavfile

在Matlab中,通常使用audioread(fname)。等效的读取库是本文中给出的 pySoundfile。 (我也用过它并从 Matlab 和 Python 得到了相同的矩阵) How to read a audio file in Python similar to Matlab audioread?

关于python - Scipy 频谱图与 Matlab 频谱图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43375216/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com