python - 正确地没有在 numpy.fft 中获取频率

标签 python numpy fft

我在频域中有一个信号。然后我获取了信号的 numpy.fft.ifft。我得到了时域信号。我再次正确地获取了同一时间信号的 fft,我没有得到负频率和正频率(图 3)数字)。 enter image description here

     time       = np.arange(0, 10, .01)
     N          = len(time)
     signal_td  = np.cos(2.0*np.pi*2.0*time)
     signal_fd  = np.fft.fft(signal_td) 
     signal_fd2 = signal_fd[0:N/2]
     inv_td2    = np.fft.ifft(signal_fd2)
     fd2        = np.fft.fft(inv_td2)

最佳答案

一般评论:我避免使用 time 作为变量名称,因为 IPython 将其加载为“神奇”命令。

我有时对matplotlib感到困惑的是,当您绘制一个复杂数组时,它实际上绘制的是实部。在代码片段中:

tt       = np.arange(0, 10, .01)
N          = len(tt)
signal_td  = np.cos(2.0*np.pi*2.0*tt)
signal_fd  = np.fft.fft(signal_td) 
signal_fd2 = signal_fd[0:N/2]
inv_td2    = np.fft.ifft(signal_fd2)
fd2        = np.fft.fft(inv_td2)

以下数组的 dtypefloat64:ttsignal_td。其他的是complex128。您在 fd2 中只看到一个峰值的原因是它是 exp(4j*np.pi*tt) 的变换,而不是 cos(4*np .pi*tt).

关于python - 正确地没有在 numpy.fft 中获取频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26468382/

相关文章:

signal-processing - FFT 音高检测 - 旋律提取

python - Django 重复键错误但键不存在

python - 循环地将操作数列表减少为单个结果

python - 如何矢量化循环遍历 3D 点数组的 python 函数?

python - 将立方体的每个平面除以其中值,无循环

python - 执行 FFT 和峰值检测后如何获取 BPM

python - 分箱后无法访问数据帧的 groupby 对象的各个列

Python - cx_freeze 一直说文件/目录不存在

python - 仅查找 numpy 数组末尾的重复项数量

python - 为什么我需要 "fftshift"DFT 的乘积来恢复卷积乘积