- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
大家好, 我是数据科学的新手,想知道使用abs()函数并对作为python scipy的fft()函数输出接收到的值进行平方的意义。 fftpack 库,在尝试绘制数据集的功率谱密度时使用。我发现许多绘制功率谱密度的代码示例确实使用了abs(),然后对之后获得的值进行平方。谁能给我一个这样做的理由吗?难道我们不能直接绘制从 python 的 scipy.txt 中的 fft() 函数获得的值吗? fftpack 库?
这是我到目前为止编写的代码,通过引用一些代码示例来绘制功率谱密度,
import scipy.io as sio
import numpy as np
Import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_csv("denoised.csv")
data = df.values
x = data[:,0]
from scipy.fftpack import fft,fftfreq
dft= fft(data)
PSD = np.abs(dft) ** 2
最佳答案
通用 FFT 消耗复值数据(即实部和虚部)并返回复值数据。即使您的输入仅为实数,我熟悉的所有 FFT 例程(FFTW、Numpy 的 FFT、Scipy 的 FFTPACK、Matlab 等)都具有返回复数值数据的 fft()
。
所以。要绘制复值向量,我们必须以某种方式将其转换为实数。一种选择是分别绘制实数和图像分量,但这通常不如幅度/abs
(实数平方加图像平方)那么有趣:实数与图像可以告诉我们 <信号的相位,对于真实信号来说通常是随机且无趣的,而幅度则结合了实部和图像分量,并以直接的方式告诉我们给定频率仓中的能量量,这很有用!
如果复数的大小是它的能量,那么大小的平方就是它的幂。工程师通常喜欢看到幅度平方,因为他们可以将该数字与他们正在使用的硬件的额定功率等进行交叉引用。这只是一个约定。
一些旁注:如果您的数据是真实的,实数到复数 FFT 的运行速度会更快。叫做rfft
但它的输出有点令人困惑:它返回格式为 [real, imag, real, imag, …] 的复杂输出。 (社区对此 Scipy issue 中的 FFTPACK 这种不寻常且非标准的约定表示担忧。)如果可能,我通常尝试使用 numpy.fft.rfft
因为它如人们所期望的那样返回复值数据。 (此实数到复数 rfft
返回的复数值输出数量是复数到复数 fft
的一半,这就是运行时的位置改进来自于。)
另一个旁注:这个问题与数据科学无关,只是与数字信号处理相关。考虑在 http://dsp.stackexchange.com 上提出此类问题下次(不过你在这里问没什么大不了的)。
关于python - 绘制给定数据集的功率谱密度时需要 abs () 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43287700/
我正在尝试找到一个 C 代码程序,它可以让我计算方阵的特征值(谱)分解。我特别试图找到最高特征值(及其关联的特征值)位于第一列的代码。 我需要按此顺序输出的原因是因为我正在尝试计算特征向量中心性,因此
我正在尝试找到一个 C 代码程序,它允许我计算方阵的特征值(谱)分解。我专门尝试查找最高特征值(及其相关特征值)位于第一列的代码。 我需要按此顺序输出的原因是因为我正在尝试计算特征向量中心性,因此我只
关于从哪里开始使用 d3 制作 fiddle 图表有什么想法吗?它已经存在了吗? 我环顾四周,想出了如何使用 ggplot2 来完成此操作,并希望有一个现成的示例可供我学习,但尚未找到。 我想我可以做
我在 Glue 数据目录中定义了一个表,我可以使用 Athena 进行查询。由于表中有一些数据我想与其他 Redshift 表一起使用,我可以访问 Glue 数据目录中定义的表吗? 什么是创建外部表查
我想对一些内容进行 md5 散列,然后生成 n 个点的“曲线”或“频谱”。也就是说,要绘制从 0 到 1 的直线上的 5、10 或 20 个点,以某种方式分布,使其对于 md5 哈希是唯一的(碰撞无关
我是一名优秀的程序员,十分优秀!