问题标签 [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.

0 投票
2 回答
1141 浏览

matlab - 将 psd 绘图更改为以 Hz 而非 kHz 显示频率

在 MATLAB 中,我似乎无法弄清楚如何让 dspdata.psd 函数以赫兹而不是赫兹为 x 轴显示我的功率谱密度图。如果有人知道解决方案,将不胜感激,谢谢!

0 投票
2 回答
523 浏览

matlab - 同一图中的多个 PSD - Matlab

我打算在同一张图上绘制多个功率谱密度。我正在使用以下内容来绘制单个信号的功率谱密度。

但是,如果我要在同一个频谱分析仪中绘制另一个信号,使用 hold on 似乎没有帮助

有人可以指导我如何处理这个问题。

编辑:这是我的代码片段:

现在我需要一种方法来在同一个图中绘制两者的 PSD txrx

0 投票
1 回答
1553 浏览

signal-processing - 来自加速度计数据的功率谱密度

我有一个加速度计数据,即 AccX、AccY 和 AccZ。

我正在寻找一种算法来从这些数据中计算功率谱密度。我知道以下内容:

其中“s”是输入信号,fft 是快速傅立叶变换。

我需要知道这s应该是加速度时间序列还是位置时间序列?

0 投票
0 回答
275 浏览

matlab - Python计算一个数组的PSD和CSD

我在信号分析中遇到了一些问题。我在脚本 (x) 中加载了一个形状为 x(68, 815) 的数组。68 代表阵列中的信号数量。所以我想对它执行PSD和CSD。CSD:x[0] 和 x[1] .... x[0] 和 x[67] 以及以下... x[1] 和 x[1] .... x[1] 和 x[67 ] 等等

但不知何故,计算值符合我的预期,在进一步计算中使用它们会导致令人不安的结果。谁能找到我的错误?我完全迷路了。只见林不见树。

0 投票
1 回答
108 浏览

python - 在分析弹拨吉他弦时使用 PSD 是否合适?

我正在使用 python 2.7 来比较吉他刺痛的音调差异。我在dsp.stackexchange.com上问过同样的问题,但运气不佳,所以我想我也会在这里问。

我发现在 matplotlib 中,有一些很棒的内置功能,例如 matplotlib.mlab.magnitude_spectrummatplotlib.mlab.psd

幅度谱函数似乎很简单,因为它是信号的 FFT,显示每个特定的谐波。然而,在比较各种吉他弦时,很难确定每个峰值进行比较。PSD 函数提供了非常漂亮的平滑图形,非常适合进行明显的视觉比较。

我的理解是 PSD 对随机信号很有用,但不一定对已知信号有用。这是真的?有什么理由我不应该使用 PSD 来比较吉他弦吗?

下面是使用 PSD 和幅度谱的 1 秒吉他拨弦效果:

请注意,这些是同一弦的弹奏,而不是不同的弦。在比较各种字符串之前,我试图确保我的弹奏是一致的。

PSD 幅度谱

0 投票
1 回答
350 浏览

r - 在 R 中绘制 PSD

我正在制作我用水听器在水下制作的一分钟白噪声录音的 PSD 图。我有大约 12 个文件要分析。我制作了这些图,但我的教授希望我对数据进行对数转换并绘制它。我是 R 新手,不确定我将如何去做。任何帮助表示赞赏。

0 投票
2 回答
7592 浏览

python - 计算功率谱

我想使用 Python3 计算功率谱。从关于这个主题的另一个线程中,我得到了基本的成分。我认为它应该是这样的:

t是时间,x是光子计数。我也试过:

但两者大多只给我一个零附近的峰值(尽管它们不一样)。我正在尝试从中计算功率谱:

数据

这应该会给我一个 580Hz 左右的信号。我在这里做错了什么?

0 投票
1 回答
1449 浏览

matlab - 对一组信号使用 pwelch:一些问题(Matlab)

我想在一组信号上使用 pwelch,我有一些问题。

首先,假设我们有 32 个(EEG)信号,持续时间为 30 秒。采样频率是fs=256样本/秒,因此每个信号的长度为 7680。我想用pwelch它来估计这些信号的功率谱密度(PSD)。

问题 1: 根据pwelch文档

pxx = pwelch(x) 返回使用 Welch 的重叠段平均估计器找到的输入信号 x 的功率谱密度 (PSD) 估计值 pxx。当 x 是向量时,它被视为单个通道。当 x 为矩阵时,每列独立计算 PSD,并将其存储在 pxx 的对应列中。

但是,如果调用pwelch如下

结果pxx是 size 1025x1,而不是1025x32我所期望的,因为文档指出,如果 x 是矩阵,则 PSD 会为每一列独立计算并存储在 pxx 的相应列中。

问题 2: 假设我克服了这个问题,并且我独立计算了每个信号的 PSD(通过应用于pwelch的每一列ch_signals),我想知道这样做的最佳方法是什么。假设该信号是一个 30 秒的信号,具有采样频率fs=256,我应该如何调用pwelch(使用什么参数?)以使 PSD 有意义?

问题 3:如果我需要将 32 个信号中的每一个拆分为窗口并将 pwech 应用于每个窗口,那么最好的方法是什么?假设我想将每个 30 秒的信号分成 3 秒的窗口,重叠 2 秒。我应该如何调用pwelch这些窗口中的每一个?

0 投票
0 回答
106 浏览

r - 在 R 中进行功率谱分析时出错

我正在尝试使用臭氧数据进行光谱密度分析,但遇到了错误:

ts(tser, frequency = x.fsamp, start = x.start) 中的错误:“ts”对象必须有一个或多个观察值

我不确定问题是什么,因为听起来文件中的条目数有问题,但文件肯定不是空的。什么可能导致这个问题?代码如下:

0 投票
1 回答
165 浏览

c# - 从 FFT 访问处理后的值

我正在尝试使用Lomont FFT来返回复数以使用 c# 构建频谱图/频谱密度图。

我无法理解如何从类中返回值。这是我迄今为止汇总的代码,它似乎正在运行。

我不清楚的是,如何将 Lomont FFT 实现中的值返回/访问回我的应用程序(控制台)?

作为 c# 开发的新手,我想我可能缺少了解如何从 Lomont 类的实例中检索已处理值的基本方面,或者甚至可能错误地调用它。

我一直在寻找如何执行此操作的代码片段或解释,但到目前为止,我没有找到任何我理解或解释我所面临问题的特定方面的内容。任何指导将不胜感激。

上面代码中记录的数组中保存的结果子集data可以在下面找到,根据我目前的理解,它似乎是有效的:

我实际上想做什么?(看法)

我希望将波形文件加载到控制台应用程序中,并将频谱图/频谱密度图/图像作为 jpg/png 返回以进行进一步处理。

我正在阅读的波形文件是单声道格式


更新 1

根据使用的 FFT,我收到的结果略有不同。

使用 RealFFT

RealFFT 的部分结果

使用 FFT

FFT的部分结果: