问题标签 [spectral-density]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - 我无法将 R 包 psd 中的 psd 范围扩展到 1.5Hz 的频率
我有一个时间序列,我需要使用 R 的 PSD 值。数据是以非均匀间隔采样的,但我使用 predict 命令进行了样条插值,以精确地插入 0.01 秒的读数。我可以非常正确地从 spec.pgram 获得幅度值,但它们不是 psd 值。然而,来自 psd 包的 pspectrum 命令的 psd 值仅在 0 到 0.5Hz 之间,而我感兴趣的区域扩展到大约 1.2Hz。时间序列是:这里
matlab - 如何从 PSD 或 ASD 中获得幅度谱函数?
对于一个有点笨拙的问题,我很抱歉,但我真的陷入了从给定的 PSD 或 ASD 中找到幅度谱函数的简单但并非微不足道的问题。
我最后想要的是:时间序列域中的信号。
我已经阅读了很多论坛页面,并且我知道应该在这里进行ifft以便从频域切换到时域(例如,这里提出了一个很好的算法: https://www.researchgate。 net/post/How-do-I-generate-time-series-data-from-given-PSD-of-random-vibration-input)
问题是我在时域中也已经有了一个信号(从其他软件获得),所以我可以检查我的 ifft 是否工作正常。
综上所述,如果一切正常,输出时间序列信号的 ASD 和 PSD 应该与输入 ASD 和 PSD 一致:
我的问题是我无法正确计算频域 U(f) 中的幅度谱,以便在 ifft 过程中进一步使用它:
在青色曲线下方的图表上,应该是 U(f),而灰色曲线是我所拥有的。因此输出的 ASD 和 PSD 与输入的不一致(右下图)
你能告诉我我应该使用哪种转换来从输入 ASD(或 PSD)到正确的 U(f)?
这是初始函数的方程:
绘制的 U(f)“灰色曲线”通过以下公式获得:
其中tslength
- 是信号长度
但是我也使用了更多的组合(使用归一化等),但它们都没有给出正确的 U(f)。
将非常感谢您的帮助!
r - 如何在 R 中打开/读取 ENVI 文件
我是在 R 中使用 GIS 的新手,我正在尝试按照这篇文章R 如何读取 ENVI .hdr 文件的建议打开一个包含高光谱数据的 ENVI 文件?,但我似乎无法这样做。我尝试了三种不同的方法,但都失败了。我似乎也找不到任何其他描述我的问题的帖子。
- 我尝试的第一个选项是仅使用文件名
但我收到以下错误消息:
- 然后我尝试了第二个选项,即使用文件名 + 使用file.path读取的头文件名
同样,我收到一条错误消息,上面写着:
- 最后,我尝试了第三个选项,使用文件名 + 使用readLines读取的头文件名
但我收到错误消息:
任何帮助将非常感激!
python - 用 numpy FFT 与 scipy.signal.welch 计算的复杂数据的功率谱密度缩放
在阅读了这个出色的答案后,它演示了实值数据的基于 FFT 的功率谱密度 (PSD) 与通过 scipy.signal.welch 计算的功率谱密度 (PSD) 的比例关系,我想知道如果输入时域数据是复杂的。
我直接复制了上面答案中的代码,包括缩放因子(“比例”),并简单地在输入正弦曲线中添加了一个随机虚部:
这输出:
和示例数据图:
Welch PSD 与 FFT PSD 中的样本之间的比率为 0.5。
我认为问题在于,一旦离散傅里叶变换被赋予复数值而不是纯实数值,缩放就不再相同。但是,我不确定如何计算比例因子应该是多少。我注意到,如果我将比例因子设置为 1/(len(y)^2),则 PSD 中的样本之间的比率为 1,但光谱中的总功率不相等。
有人可以帮助我更好地理解这一点吗?
python - 大量数据的功率谱分析
我有一个电压信号,我正在尝试去噪。信号来自非常大的文件(524288 个单元格)。当我获取整个文件并使 n 等于数据集的长度时,我在频率 0 和最大值处得到两个非常大的峰值。
有没有办法分析整个文件,或者我必须将其拆分为更小的数据集?
python - 具有特定截止频率的高通滤波器
情况
我正在尝试对黑白图像应用高通滤波器,以通过保持高频来增强纹理。signal.welch()
目标是从从scipy
库中应用的结果中获得的特定频率值中进行过滤。到目前为止,我尝试过的代码运行良好,我可以绘制频率-PSD 图并直观地识别感兴趣的频率值。
编码
以下代码采用 2D numpy 数组图像并计算每个水平线导数的 PSD,并获得绘制周期图的平均值。
在此示例图像中(忽略红线),f=0.23 附近的峰值有助于识别应用滤波器的**截止频率**(即 fc=0.23)。
问题
有了截止频率,我应该如何在频域中过滤图像并返回空间域?
我最好的猜测是我应该将所有Pxx_tot
对应的元素f_tot
都设置为 0 低于fc
. 如果这种方法是正确的,我仍然不知道如何在过滤图像后回到空间域。