包络分析的定义
包络分析是一种信号处理方法,主要用于从复杂的振动信号中提取低频调制信号。它通过分析信号的包络(即信号的幅度变化趋势)来揭示隐藏在高频噪声中的低频特征。这种方法在轴承和齿轮故障诊断中非常重要,因为故障引起的周期性冲击会产生调幅信号,而包络分析能够有效地提取这些信号。
包络谱的定义
包络谱是信号包络的频谱分析结果。它通过对信号进行包络分析后,再进行傅里叶变换(FFT)得到。包络谱能够清晰地显示与故障特征频率相关的频谱成分,尤其是低频调制信号。与传统的频谱分析相比,包络谱对冲击事件更为敏感。
包络谱的获取方法
- 去均值:对原始信号去除直流分量(即去均值),以消除信号中的趋势。
- 希尔伯特变换:对去均值后的信号进行希尔伯特变换,将其转换为解析信号。
- 获取包络信号:取解析信号的模(幅值),得到包络信号。
- 再次去均值:对包络信号再次去均值。
- 傅里叶变换:对去均值后的包络信号进行快速傅里叶变换(FFT),得到包络谱。
包络谱分析的应用
在轴承状态评估中,包络谱分析能够检测滚动轴承和齿轮损坏引起的周期性冲击。通过分析包络谱,可以清晰地识别出故障特征频率及其倍频成分,从而判断故障的位置和严重程度。例如,外圈故障和滚动体故障在包络谱中会表现出不同的特征频率。
好的,让我们一步步地通过数学公式来详细说明如何获取包络谱。
1. 去均值
假设原始信号为
x
(
t
)
x(t)
x(t),去均值后的信号
x
mean-removed
(
t
)
x_{\text{mean-removed}}(t)
xmean-removed(t)可以表示为:
x
mean-removed
(
t
)
=
x
(
t
)
−
x
ˉ
x_{\text{mean-removed}}(t) = x(t) - \bar{x}
xmean-removed(t)=x(t)−xˉ
其中
x
ˉ
\bar{x}
xˉ是
x
(
t
)
x(t)
x(t)的均值,计算公式为:
x
ˉ
=
1
T
∫
0
T
x
(
t
)
d
t
\bar{x} = \frac{1}{T} \int_0^T x(t) \, dt
xˉ=T1∫0Tx(t)dt
T
T
T是信号的总时长。
2. 希尔伯特变换
对去均值后的信号
x
mean-removed
(
t
)
x_{\text{mean-removed}}(t)
xmean-removed(t)进行希尔伯特变换,得到解析信号
z
(
t
)
z(t)
z(t):
z
(
t
)
=
x
mean-removed
(
t
)
+
i
⋅
H
{
x
mean-removed
(
t
)
}
z(t) = x_{\text{mean-removed}}(t) + i \cdot \mathcal{H}\{x_{\text{mean-removed}}(t)\}
z(t)=xmean-removed(t)+i⋅H{xmean-removed(t)}
其中
H
{
x
mean-removed
(
t
)
}
\mathcal{H}\{x_{\text{mean-removed}}(t)\}
H{xmean-removed(t)}是
x
mean-removed
(
t
)
x_{\text{mean-removed}}(t)
xmean-removed(t)的希尔伯特变换,定义为:
H
{
x
mean-removed
(
t
)
}
=
1
π
∫
−
∞
∞
x
mean-removed
(
τ
)
t
−
τ
d
τ
\mathcal{H}\{x_{\text{mean-removed}}(t)\} = \frac{1}{\pi} \int_{-\infty}^{\infty} \frac{x_{\text{mean-removed}}(\tau)}{t - \tau} \, d\tau
H{xmean-removed(t)}=π1∫−∞∞t−τxmean-removed(τ)dτ
什么是希尔伯特变换?
希尔伯特变换(Hilbert Transform)是一种线性运算符,它将一个实数信号转换成一个复数信号,即解析信号。对于一个实数信号 x ( t ) x(t) x(t),其希尔伯特变换 H { x ( t ) } \mathcal{H}\{x(t)\} H{x(t)}定义为:
H { x ( t ) } = 1 π ∫ − ∞ ∞ x ( τ ) t − τ d τ \mathcal{H}\{x(t)\} = \frac{1}{\pi} \int_{-\infty}^{\infty} \frac{x(\tau)}{t - \tau} \, d\tau H{x(t)}=π1∫−∞∞t−τx(τ)dτ
- x ( t ) x(t) x(t):原始实数信号,是时间 t t t 的函数。
- H { x ( t ) } \mathcal{H}\{x(t)\} H{x(t)}: x ( t ) x(t) x(t) 的希尔伯特变换,也是时间 t t t 的函数。
- τ \tau τ:积分变量,表示在积分过程中的一个瞬时时间点。
- t t t:当前时间点,是希尔伯特变换结果 H { x ( t ) } \mathcal{H}\{x(t)\} H{x(t)} 的自变量。
- 1 π \frac{1}{\pi} π1:希尔伯特变换的常数因子,用于归一化积分结果。
- ∫ − ∞ ∞ \int_{-\infty}^{\infty} ∫−∞∞:积分范围,表示对整个时间轴进行积分。
- x ( τ ) t − τ \frac{x(\tau)}{t - \tau} t−τx(τ):被积函数,表示在时间点 t t t 处,原始信号 x ( τ ) x(\tau) x(τ) 与时间差 t − τ t - \tau t−τ 的比值。
解析过程
- 积分过程:对于每个时间点 t t t,希尔伯特变换通过积分整个时间轴上的 x ( τ ) x(\tau) x(τ) 与 t − τ t - \tau t−τ 的比值,来计算 H { x ( t ) } \mathcal{H}\{x(t)\} H{x(t)} 的值。
- 奇异性:被积函数 x ( τ ) t − τ \frac{x(\tau)}{t - \tau} t−τx(τ) 在 τ = t \tau = t τ=t 处有一个奇异性(即分母为零)。为了处理这个奇异性,通常使用柯西主值积分(Cauchy Principal Value)。
- 结果:希尔伯特变换的结果 H { x ( t ) } \mathcal{H}\{x(t)\} H{x(t)} 是一个复数信号,其实部是原信号 x ( t ) x(t) x(t),虚部是 x ( t ) x(t) x(t) 的希尔伯特变换。
为什么要进行希尔伯特变换?
- 提取信号的包络:希尔伯特变换可以将信号的包络(即信号的幅度变化趋势)提取出来。在故障诊断中,包络信号可以清晰地显示周期性冲击事件,有助于识别故障特征频率。
- 生成解析信号:希尔伯特变换将实数信号转换为解析信号,解析信号的实部是原信号,虚部是原信号的希尔伯特变换。解析信号的模(幅值)即为包络信号,可以用于进一步的频域分析。
- 消除负频率:在傅里叶变换中,实数信号的频谱是对称的,包含正频率和负频率。解析信号的频谱只包含正频率,这使得频域分析更加直观和方便。
希尔伯特变换是一种重要的信号处理工具,它通过将实数信号转换为解析信号,帮助我们提取信号的包络,生成只包含正频率的频谱,从而在故障诊断等领域发挥重要作用。
3. 获取包络信号
取解析信号
z
(
t
)
z(t)
z(t)的模(幅值),得到包络信号
e
(
t
)
e(t)
e(t):
e
(
t
)
=
∣
z
(
t
)
∣
=
x
mean-removed
2
(
t
)
+
(
H
{
x
mean-removed
(
t
)
}
)
2
e(t) = |z(t)| = \sqrt{x_{\text{mean-removed}}^2(t) + \left(\mathcal{H}\{x_{\text{mean-removed}}(t)\}\right)^2}
e(t)=∣z(t)∣=xmean-removed2(t)+(H{xmean-removed(t)})2
4. 再次去均值
对包络信号
e
(
t
)
e(t)
e(t)再次去均值:
e
mean-removed
(
t
)
=
e
(
t
)
−
e
ˉ
e_{\text{mean-removed}}(t) = e(t) - \bar{e}
emean-removed(t)=e(t)−eˉ
其中
e
ˉ
\bar{e}
eˉ是
e
(
t
)
e(t)
e(t)的均值,计算公式为:
e
ˉ
=
1
T
∫
0
T
e
(
t
)
d
t
\bar{e} = \frac{1}{T} \int_0^T e(t) \, dt
eˉ=T1∫0Te(t)dt
5. 傅里叶变换
对去均值后的包络信号
e
mean-removed
(
t
)
e_{\text{mean-removed}}(t)
emean-removed(t)进行快速傅里叶变换(FFT),得到包络谱
E
(
f
)
E(f)
E(f):
E
(
f
)
=
F
{
e
mean-removed
(
t
)
}
E(f) = \mathcal{F}\{e_{\text{mean-removed}}(t)\}
E(f)=F{emean-removed(t)}
其中
F
{
⋅
}
\mathcal{F}\{\cdot\}
F{⋅}表示傅里叶变换,定义为:
E
(
f
)
=
∫
−
∞
∞
e
mean-removed
(
t
)
⋅
e
−
i
2
π
f
t
d
t
E(f) = \int_{-\infty}^{\infty} e_{\text{mean-removed}}(t) \cdot e^{-i 2 \pi f t} \, dt
E(f)=∫−∞∞emean-removed(t)⋅e−i2πftdt
总结
通过上述步骤,我们从原始信号 x ( t ) x(t) x(t)中提取了包络谱 E ( f ) E(f) E(f)。包络谱能够清晰地显示与故障特征频率相关的频谱成分,尤其是低频调制信号,从而帮助我们进行轴承和齿轮的故障诊断。
好的!以下是一个完整的示例,展示如何通过计算过程获取包络谱。假设我们有一个简单的模拟信号,其中包含一个高频载波信号和一个低频调制信号(例如,一个故障引起的周期性冲击信号)。
示例信号
假设原始信号为:
x
(
t
)
=
A
⋅
cos
(
2
π
f
c
t
)
⋅
cos
(
2
π
f
m
t
)
x(t) = A \cdot \cos(2\pi f_c t) \cdot \cos(2\pi f_m t)
x(t)=A⋅cos(2πfct)⋅cos(2πfmt)
其中:
-
A
=
1
A = 1
A=1(信号幅度)
-
f
c
=
1000
f_c = 1000
fc=1000Hz(高频载波频率)
-
f
m
=
10
f_m = 10
fm=10Hz(低频调制频率,例如故障特征频率)
这个信号模拟了一个高频载波被低频调制的情况,类似于轴承故障引起的周期性冲击。
1. 生成原始信号
假设采样频率 ( f_s = 10000 ) Hz,采样时间 ( T = 1 ) 秒。
import numpy as np
import matplotlib.pyplot as plt
# 参数设置
fs = 10000 # 采样频率
T = 1 # 采样时间
t = np.arange(0, T, 1/fs) # 时间向量
A = 1 # 信号幅度
fc = 1000 # 载波频率
fm = 10 # 调制频率
# 生成原始信号
x = A * np.cos(2 * np.pi * fc * t) * np.cos(2 * np.pi * fm * t)
# 绘制原始信号
plt.figure(figsize=(12, 4))
plt.plot(t, x)
plt.title("原始信号")
plt.xlabel("时间 (s)")
plt.ylabel("幅值")
plt.grid()
plt.show()
2. 去均值
去除直流分量(即信号的均值)。
# 去均值
x_mean_removed = x - np.mean(x)
# 绘制去均值后的信号
plt.figure(figsize=(12, 4))
plt.plot(t, x_mean_removed)
plt.title("去均值后的信号")
plt.xlabel("时间 (s)")
plt.ylabel("幅值")
plt.grid()
plt.show()
3. 希尔伯特变换
对去均值后的信号进行希尔伯特变换,得到解析信号。
from scipy.signal import hilbert
# 希尔伯特变换
analytic_signal = hilbert(x_mean_removed)
# 绘制解析信号的实部和虚部
plt.figure(figsize=(12, 6))
plt.subplot(2, 1, 1)
plt.plot(t, np.real(analytic_signal))
plt.title("解析信号的实部")
plt.xlabel("时间 (s)")
plt.ylabel("幅值")
plt.grid()
plt.subplot(2, 1, 2)
plt.plot(t, np.imag(analytic_signal))
plt.title("解析信号的虚部")
plt.xlabel("时间 (s)")
plt.ylabel("幅值")
plt.grid()
plt.tight_layout()
plt.show()
4. 获取包络信号
取解析信号的模(幅值)。
# 获取包络信号
envelope = np.abs(analytic_signal)
# 绘制包络信号
plt.figure(figsize=(12, 4))
plt.plot(t, envelope)
plt.title("包络信号")
plt.xlabel("时间 (s)")
plt.ylabel("幅值")
plt.grid()
plt.show()
5. 再次去均值
对包络信号再次去均值。
# 再次去均值
envelope_mean_removed = envelope - np.mean(envelope)
# 绘制再次去均值后的包络信号
plt.figure(figsize=(12, 4))
plt.plot(t, envelope_mean_removed)
plt.title("再次去均值后的包络信号")
plt.xlabel("时间 (s)")
plt.ylabel("幅值")
plt.grid()
plt.show()
6. 傅里叶变换
对去均值后的包络信号进行快速傅里叶变换(FFT),得到包络谱。
# FFT
n = len(envelope_mean_removed)
fft_values = np.fft.fft(envelope_mean_removed)
fft_magnitude = np.abs(fft_values[:n//2]) # 取一半频率范围
frequencies = np.fft.fftfreq(n, 1/fs)[:n//2] # 频率轴
# 绘制包络谱
plt.figure(figsize=(12, 4))
plt.plot(frequencies, fft_magnitude)
plt.title("包络谱")
plt.xlabel("频率 (Hz)")
plt.ylabel("幅值")
plt.grid()
plt.show()
结果分析
在包络谱中,你会看到一个明显的峰值出现在 ( f_m = 10 ) Hz 处,这正是我们模拟的低频调制频率。这表明包络谱能够有效地提取出低频调制信号,从而帮助我们识别故障特征频率。
总结
通过上述步骤,我们完整地展示了如何从一个包含高频载波和低频调制的信号中提取包络谱。这个过程包括去均值、希尔伯特变换、获取包络信号、再次去均值和傅里叶变换。希望这个示例能帮助你更好地理解包络谱的获取过程!
包络谱图的横纵坐标单位取决于信号的性质和分析的具体内容。以下是包络谱图的横纵坐标单位及其含义:
1. 横坐标(X轴)
- 单位:赫兹(Hz)
- 含义:横坐标表示频率,即包络信号中周期性冲击成分的频率。这些频率通常与轴承或齿轮的故障特征频率相关,例如:
- 轴承的故障频率(如内圈、外圈、滚动体故障频率)。
- 齿轮的啮合频率及其边频。
2. 纵坐标(Y轴)
- 单位:通常是无量纲的幅值(Amplitude),或者以分贝(dB)为单位。
- 含义:纵坐标表示包络信号在对应频率处的幅值大小。幅值越高,说明该频率成分的能量越强,可能与故障相关。
3. 包络谱图的示例
假设包络谱图的横坐标是频率(Hz),纵坐标是幅值(Amplitude),图形可能如下所示:
幅值
|
| /\
| / \
| / \
| / \
| / \
| / \
| / \
|/ \
+------------------> 频率 (Hz)
- 在某个频率处(如轴承外圈故障频率)出现明显的峰值,说明可能存在外圈故障。
4. 总结
- 横坐标:频率(Hz),表示包络信号中的频率成分。
- 纵坐标:幅值(Amplitude)或分贝(dB),表示对应频率成分的能量大小。
包络分析和FFT分析是两种不同的信号处理方法,适用于不同类型的信号和问题。
1. FFT分析(快速傅里叶变换)
FFT分析用于将时域信号转换为频域信号,展示信号中不同频率成分的强度。它适用于分析平稳信号,能够识别信号中的周期性成分。
- 结果图:FFT分析的结果通常是频谱图,横轴为频率,纵轴为幅值或功率。
- 特点:适合分析信号的整体频率成分,但对瞬态或冲击信号不敏感。
2. 包络分析
包络分析用于提取信号的包络,常用于检测冲击或调制信号(如轴承故障)。它通过解调高频信号来提取低频特征。
- 结果图:包络分析的结果通常是包络频谱图,横轴为频率,纵轴为包络幅值。
- 特点:适合检测瞬态或调制信号,尤其在故障诊断中表现突出。
结果图对比
FFT分析结果图
幅值
|
| ____
| / \
| / \
|/ \________
+-------------------> 频率
包络分析结果图
幅值
|
| __
| / \
| / \
|/ \____
+-------------------> 频率
总结
- FFT分析:展示信号的频率成分,适合平稳信号。
- 包络分析:提取信号的包络,适合瞬态或调制信号。
选择方法应根据具体信号特性决定。