首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError:第一个参数必须是实数序列2 signal.spectrogram

TypeError:第一个参数必须是实数序列2 signal.spectrogram
EN

Stack Overflow用户
提问于 2019-12-05 09:23:58
回答 1查看 392关注 0票数 1

我试图从电子读数中提取信号并将其分解成频谱图,但我一直收到一个奇怪的错误。代码如下:

代码语言:javascript
复制
f, t, Sxx = signal.spectrogram(i_data.values, 130)
plt.pcolormesh(t, f, Sxx)
plt.ylabel('Frequency [Hz]')
plt.xlabel('Time [sec]')
plt.show()

下面是错误:

代码语言:javascript
复制
convert_to_spectrogram(i_data.iloc[1000,:10020].dropna().values)
Traceback (most recent call last):

  File "<ipython-input-140-e5951b2d2d97>", line 1, in <module>
    convert_to_spectrogram(i_data.iloc[1000,:10020].dropna().values)

  File "<ipython-input-137-5d63a96c8889>", line 2, in convert_to_spectrogram
    f, t, Sxx = signal.spectrogram(wf, 130)

  File "//anaconda3/lib/python3.7/site-packages/scipy/signal/spectral.py", line 750, in spectrogram
    mode='psd')

  File "//anaconda3/lib/python3.7/site-packages/scipy/signal/spectral.py", line 1836, in _spectral_helper
    result = _fft_helper(x, win, detrend_func, nperseg, noverlap, nfft, sides)

  File "//anaconda3/lib/python3.7/site-packages/scipy/signal/spectral.py", line 1921, in _fft_helper
    result = func(result, n=nfft)

  File "//anaconda3/lib/python3.7/site-packages/mkl_fft/_numpy_fft.py", line 335, in rfft
    output = mkl_fft.rfft_numpy(x, n=n, axis=axis)

  File "mkl_fft/_pydfti.pyx", line 609, in mkl_fft._pydfti.rfft_numpy

  File "mkl_fft/_pydfti.pyx", line 502, in mkl_fft._pydfti._rc_fft1d_impl

TypeError: 1st argument must be a real sequence 2

我的读数有130个观察值的完整周期,它作为熊猫df的单个值存储。我特别使用的wave可以在here中找到。有人知道这个错误是什么意思吗?

(小免责声明,我对信号处理了解不多,如果这是一个幼稚的问题,请原谅我)

EN

回答 1

Stack Overflow用户

发布于 2019-12-06 20:21:31

Python 3.6.9,scipy 1.3.3

下载你的file并用pandas.read_csv读取,我可以生成下面的光谱图。

代码语言:javascript
复制
import matplotlib.pyplot as plt
import pandas as pd
from scipy.signal import spectrogram
i_data = pd.read_csv('wave.csv')
f, t, Sxx = spectrogram(i_data.values[:, 1], 130)
plt.pcolormesh(t, f, Sxx)
plt.ylabel('Frequency [Hz]')
plt.xlabel('Time [sec]')
plt.show()

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59186888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档