当前位置: 首页 > 面试题库 >

用python绘制功率谱

郭乐湛
2023-03-14
问题内容

我有一个包含301个值的数组,这些值是从一个包含
301帧。这意味着1帧中有1个值。电影剪辑时间是30分钟
fps,实际上是10秒长
现在我想得到这个“信号”的功率谱
轴)。我试过:

 X = fft(S_[:,2]);
 pl.plot(abs(X))
 pl.show()

I also tried:

 X = fft(S_[:,2]);
 pl.plot(abs(X)**2)
 pl.show()

虽然我不认为这是真正的光谱。

有人能帮忙吗?


问题答案:

Numpy有一个方便的功能np.fft.fftfreq格式计算频率
与FFT组件相关:

from __future__ import division
import numpy as np
import matplotlib.pyplot as plt

data = np.random.rand(301) - 0.5
ps = np.abs(np.fft.fft(data))**2

time_step = 1 / 30
freqs = np.fft.fftfreq(data.size, time_step)
idx = np.argsort(freqs)

plt.plot(freqs[idx], ps[idx])

请注意,您看到的最大频率不是30Hz,而是30Hz

In [7]: max(freqs)
Out[7]: 14.950166112956811

在功率谱中你永远看不到采样频率。如果你有一个
如果样本数为偶数,那么您就可以到达[Nyquist]
频率](http://en.wikipedia.org/wiki/Nyquist\u频率),15赫兹
(尽管numpy会将其计算为-15)。



 类似资料:
  • 所以,我想用PyCairo绘制一个图像。效率非常重要,但我使用PyGtk的gtk.gdk.Pixbuf加载图像。我的问题是,通过gtk.gdk检索开罗上下文来呈现Pixbuf是否有性能差异。CairoContext与将Pixbuf转换为cairo的对比。ImageSurface对象,如果是,差异有多大?这是在一个单独的绘图线程中运行的,该线程每秒更新30次左右(但仅当图像需要更新时)。请注意,转换

  • 本文向大家介绍Python matplotlib绘制饼状图功能示例,包括了Python matplotlib绘制饼状图功能示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python matplotlib绘制饼状图功能。分享给大家供大家参考,具体如下: 一 代码 二 运行结果 更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数学运算技巧总结》、《Python数据结

  • 我正试着用Jupyter笔记本画热图。我的表由10个列和许多行组成。第一行是列名。我正在使用plotly lib。 dfs是数据帧。 而不是图形,我得到了很多这样的线条: '\n跟踪=判(\n x=x,y=y,z=z,\n类型="散射3d",\n模式=\'标记\',\n标记=判(大小=5,颜色=\'黑色\',线=判(宽度=0)))\n数据=[跟踪]\n\n\n etc 有什么问题?

  • 问题内容: 我有以下绘制图形的简单脚本: 就目前而言,这条线从一条直线到另一条直线看起来不错,但在我看来可能会更好。我想要的是使两点之间的线变得平滑。在中,我会用绘制。 在PyPlot中有一种简单的方法吗?我找到了一些教程,但是它们看起来都相当复杂。 问题答案: 你可以自己整理数据: scipy 0.19.0中不推荐使用spline,请改用BSpline类。 从切换到复制并不是简单的复制/粘贴操作

  • 本文向大家介绍Python使用Pygame绘制时钟,包括了Python使用Pygame绘制时钟的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Python使用Pygame绘制时钟的具体代码,供大家参考,具体内容如下 前提条件: 需要安装pygame 功能: 1.初始化界面显示一个时钟界面 2.根据当前的时间实现时针、分针、秒针的移动 运行结果: 以上就是本文的全部内容,希望对大家的学

  • 问题内容: 我已经使用matplotlib绘制了一些实验结果。但是,通过单击图像右侧来保存图片会产生非常差的质量/低分辨率图像。 我正在寻找的示例图:示例图 问题答案: 您可以用来导出到图像文件: 另外,您可以为某些标量值指定参数,例如: