对于一个有点笨拙的问题,我很抱歉,但我真的陷入了从给定的 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)?
这是初始函数的方程:
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)。
将非常感谢您的帮助!