执行FFT后Y轴数值异常:振动数据频谱匹配问题求助
匹配WTG分析仪自频谱的FFT校准方案
以下是针对FFT幅值与WTG分析仪自频谱不匹配问题的具体解决步骤,覆盖这类振动分析仪器的常见校准要点:
确认窗函数使用与能量补偿
WTG分析仪默认会给时域数据加窗(多数为汉宁窗),若直接用原始时域数据做FFT,必然和仪器结果存在差异。先给数据添加对应窗函数,再做能量补偿:import numpy as np from scipy.signal import get_window from scipy.fft import rfft, rfftfreq # x为读取到的时域振动数据,fs为采样率 window_type = 'hann' # 可对照WTG仪器设置确认实际窗类型 window = get_window(window_type, len(x)) x_windowed = x * window # WTG常用的窗能量补偿因子计算方式 window_compensation = 2 / np.sum(window) * len(window)按WTG谱类型计算正确幅值
WTG输出的自频谱通常是功率谱密度(PSD)或均方根(RMS)谱,而非单纯的FFT幅值,分场景处理:- 若为PSD输出:
fft_result = rfft(x_windowed) freq_axis = rfftfreq(len(x), 1/fs) # 结合采样率与窗能量计算PSD psd = (np.abs(fft_result) ** 2) / (fs * np.sum(window ** 2)) # 单边谱补偿:DC和Nyquist分量除外,其余乘以2 psd[1:-1] *= 2 - 若为RMS谱输出:
rms_spectrum = np.sqrt(psd) - 若为线性幅值谱输出:
linear_spectrum = (2 * np.abs(fft_result) * window_compensation) / len(x) # DC分量不乘2 linear_spectrum[0] /= 2
- 若为PSD输出:
关键验证步骤
- 核对WTG仪器设置:确认窗类型、谱类型(PSD/RMS/线性幅值)、是否开启平均功能(若仪器开启平均,代码需对应做多次FFT平均)
- 用已知信号校准:给WTG输入已知幅值、频率的正弦波,用代码计算后对比结果,快速定位校准参数是否正确
内容的提问来源于stack exchange,提问作者prashanth ramakrishnan
相关产品推荐
相关产品推荐

