振动信号分析

信息处理 fft 信号分析 傅里叶变换 r
2022-02-11 15:41:54

我有一个来自加速度计测量的电机的振动信号(不规则时间序列),我需要使用这些信号进行分析。

图2

我需要将此信号转换为某种形式以进行分析。我阅读了一些包含振动信号处理技术的博客和网站基本的事情是将信号从时域转换到频域。

所以我使用fft函数来使用 R 进行转换

X.k <- fft(signal)

plot.frequency.spectrum()绘制给定 fft 的频谱 [链接:此处]

plot.frequency.spectrum <- function(X.k, xlimits=c(0,length(X.k))) {
  plot.data  <- cbind(0:(length(X.k)-1), Mod(X.k))


  plot.data[2:length(X.k),2] <- 2*plot.data[2:length(X.k),2] 

  plot(plot.data, t="h", lwd=2, main="", 
       xlab="Frequency (Hz)", ylab="Strength", 
       xlim=xlimits, ylim=c(0,max(Mod(plot.data[,2]))))
}

这个 fft 的频谱看起来像这样 她

第一个峰非常高。我不知道为什么会发生这种情况,因为这是信号处理技术的新手。我不能将其用于分析目的并进行预测,因为它会以糟糕的结果告终。还有其他方法可以执行此方法吗?还是我需要使用其他技术?

3个回答

第一个峰值是频谱的直流分量,与交流分量相比较大(您的信号没有负值,并且始终高于零,这会导致较大的直流偏置)

找出信号随时间的平均值,然后从信号中减去它以去除直流分量。

祝你好运。

从加速度计获得的数据包含很多噪声,在进行 FFT 之前,您可以使用陷波滤波器滤除直流分量

您的问题似乎与 FT 的实用性有关。所以首先你需要决定你想看到什么。您是否有兴趣查看功率随频率的分布?如果这是您需要的,那么 FFT 是您的首选工具。为了这个目的,真的没有别的了。正如其他人所说,从迹线中可以明显看出您的信号具有直流分量。这需要首先取出,因为它没有告诉你任何有用的信息。您已经可以通过时域信号的 y 轴看到它。

删除平均值后,您将能够看到功率下降的位置,即频率。为了使这意味着完整,您需要对您感兴趣的带宽有所了解。请记住,对于给定的 FFT 大小 N,您的分辨率将为 Fs/N,其中 Fs 是您的采样频率,因此您需要要知道将您的 FFT x 轴(或 bin 编号)转换为实际频率。

Charan Langton www.complextoreal.com