如何解决如何从 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)?
这是初始函数的方程:
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)。
非常感谢您的帮助!
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。