【问题标题】:How to get the amplitude spectrum function from the PSD or ASD?如何从 PSD 或 ASD 中获得幅度谱函数?
【发布时间】:2021-08-27 17:02:03
【问题描述】:

对于一个有点笨拙的问题,我很抱歉,但我真的陷入了从给定的 PSD 或 ASD 中找到幅度谱函数的简单但并非微不足道的问题。

所以,我最初得到的是信号的 ASD 和 PSD:

最后我想要的是:时间序列域中的信号。

我已经阅读了很多论坛页面,并且我知道这里应该发生 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) 应该是 U(f),而灰色曲线是我所拥有的。因此输出的 ASD 和 PSD 与输入的不一致(下图右)

您能否告诉我,我应该使用哪种转换来从输入 ASD(或 PSD)到正确的 U(f)?

这是初始函数的方程:

y = (1e-12 * sqrt( (1e-3./f).^4 ./  ((1e-5./f).^4+1) + 1 + (f/1e-1).^4)).^2;

acc_freq_asd = abs(sqrt(y)); %convert to ASD
acc_freq_psd = abs(y); %convert to PSD

绘制的 U(f)“灰色曲线”通过以下公式获得:

U_f = sqrt(2*acc_freq_psd.*tslength);

其中tslength - 是信号长度

但我也使用了更多的组合(使用规范化等),但它们都没有给出正确的 U(f)。

非常感谢您的帮助!

【问题讨论】:

    标签: matlab signals fft noise spectral-density


    【解决方案1】:

    在 ASD 和幅度谱 (AS) 之间正确转换的过程如下:

    1. 定义等效噪声带宽:

    1. 计算单面 AS:

    这个方案非常适合我。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-16
      • 2020-07-21
      • 1970-01-01
      • 1970-01-01
      • 2017-01-14
      • 2015-02-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多