[已答复] 采集的随机振动时域信号如何更好的转换为功率谱密度

[复制链接]
chlqbk2012 发表于 2021-8-20 14:51:04
本人是matlab小白,前段时间采集了我们产品一段加速度时域信号,如何将该时域信号转换为PSD图谱呢,请求大神指导,下面是我一同事帮忙写的代码,请问这段代码有没有什么问题?个人主要疑问如下
1、信号是否需要实现进行消除多项式及数据平滑处理
2、采用welch方法效果是否会更好
3、直接调用psd函数能否得到比现有方法更真实的psd图
程序如下
% clear
clc
rng('default')
fs = 200;                                % sample frequency (Hz)
x = data1(:, 1);
x(x>20) = 20;
x = x/10;
t = 0:1/fs:(size(x,1)-1)*1/fs;
t = t';
y1 = fft(x);
y2 = real(y1);
y = y2;       % fft
n = length(x);          % number of samples
f = (0:n-1)*(fs/n);     % frequency range
% power = abs(y).^2/n;    % power of the DFT

start_point = 1;
final_point = 200;
sample_number = 200;
f1 = linspace(0,fs/2, sample_number);
f1 = f1';
number = floor(t(end));
power = zeros(sample_number,1);
for i = 1:1:number
    start_point = (i-1)*200+1;
    final_point = (i-1)*200+200;
    x1 = x(start_point:final_point);
    y11 = fft(x1);
    y22 = real(y11);
    power = power + abs(y22).^2/sample_number;    % power of the DFT
end
power = power/number;
power = power/fs*2;
plot(f1, power,'LineWidth',2)
set(gca,'FontSize',16);
set(gca,'FontName','Times New Roman');
title('Power Spectral Density')
xlabel('Frequency(HZ)')
ylabel('Acceleration Spectral Density(G^2/Hz)')

6 条回复


chlqbk2012 发表于 2021-8-21 15:16:12
自己顶一下,哪位大神帮忙解答下

hux0730 发表于 2021-9-8 00:17:09
你试一下这段代码:
功率谱密度估算.png
我最近也在琢磨这个问题,觉得应该是把加速度计放到振动台上做个“对照”就好了。

chlqbk2012 发表于 2022-3-21 14:46:13
hux0730 发表于 2021-9-8 00:17
你试一下这段代码:

我最近也在琢磨这个问题,觉得应该是把加速度计放到振动台上做个“对照”就好了。

后来改了种算法,用振动台设定标准谱验证了,还算ok,最近在研究怎么包络处理

wangyy3 发表于 2022-5-4 22:17:36
chlqbk2012 发表于 2022-3-21 14:46
后来改了种算法,用振动台设定标准谱验证了,还算ok,最近在研究怎么包络处理 ...

想请教功率谱,谢谢

wangyy3 发表于 2022-5-4 22:18:10
hux0730 发表于 2021-9-8 00:17
你试一下这段代码:

我最近也在琢磨这个问题,觉得应该是把加速度计放到振动台上做个“对照”就好了。

请教 谢谢

小小rrown 发表于 2022-5-9 21:49:13
楼主的问题解决了吗,我最近也遇到了和你同样的问题,可发一下代码吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表