如何从PSD或ASD中获取振幅谱函数?

How to get the amplitude spectrum function from the PSD or ASD?

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

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

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

我看了很多论坛页面,我知道 iff​​t 这里应该发生,以便从频率切换域到时域(例如,这里介绍了一个很好的算法: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)?

这是初始函数的等式:

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) 'grey curve' 通过以下公式获得:

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

其中 tslength - 是信号长度

但我还使用了更多的组合(通过归一化等),但其中 none 给出了正确的 U(f)。

非常感谢您的帮助!

A​​SD 和幅度谱 (AS) 之间正确转换的过程如下:

  1. 定义等效噪声带宽:

  1. 计算单面 AS:

这个方案非常适合我。