加速度传感器振动信号读取、傅里叶变换及数字滤波处理系统
项目介绍
本项目是一个基于 MATLAB 开发的综合性振动信号处理平台。它专门设计用于处理加速度传感器采集的原始数据,能够实现从数据输入、预处理、频域转换到特征参数提取的全流程分析。该系统核心通过数字信号处理技术,帮助工程师从含有随机噪声的复杂振动信号中提取有价值的频率成分和统计特征,广泛应用于机械故障诊断、结构健康监测及 NVH 测试等场景。
功能特性
- 多源数据获取:支持通过模拟合成生成标准振动信号,并具备 CSV 格式文件的读取与写入能力,模拟真实的工业数据接口。
- 多模式数字滤波:集成了基于巴特沃斯算法的低通、高通和带通滤波器,有效滤除高频噪声、解决基线漂移及提取特定频段信号。
- 频域精细分析:利用快速傅里叶变换(FFT)计算信号的单边幅度谱,识别信号中的主导频率及其谐波成分。
- 时域指标提取:自动计算原始与滤波后信号的关键统计指标,包括均方根值(RMS)、峰值(Peak)及峰值因子(Crest Factor)。
- 可视化综合分析:提供多维度的图形化对比方案,直观展现信号处理前后的时域波形差异及频谱演变过程。
- 处理结果导出:支持将降噪后的处理序列以文本格式持久化存储,并能生成详细的分析打印报告。
使用方法
- 环境配置:启动 MATLAB 环境,并确保工作路径包含当前脚本。
- 参数设定:根据实际传感器参数,在代码头部修改采样频率(Fs)、采样时间(T)以及滤波器的截止频率(Cutoff Frequency)。
- 执行分析:直接点击运行脚本。系统将自动生成模拟数据、执行滤波算法并触发 FFT 计算。
- 结果查看:
* 观察弹出的图形窗口,对比左右两侧原始与滤波信号的波形和频谱。
* 在 MATLAB 命令行窗口查看打印的振动特性指标报告。
- 数据应用:处理完毕后,可以在工作目录中找到生成的分析结果导出文件,用于后续的深入研究。
系统要求
- 软件版本:MATLAB R2016b 或更高版本。
- 必要工具箱:Signal Processing Toolbox(信号处理工具箱)。
- 内存需求:标准办公配置即可满足 2000Hz 级别采样率的处理需求。
实际功能实现逻辑
系统内部按照严格的信号处理流程执行,具体逻辑如下:
- 参数初始化:预设采样频率为 2000Hz,采用 1 秒的主动采样周期。设置低通截止为 100Hz,带通区间为 40-160Hz,高通截止为 5Hz,滤波器阶数统一设定为 4 阶。
- 信号生成与 IO 模拟:
* 通过正弦函数叠加构造包含 50Hz(主频)和 150Hz(谐波)的复合信号,并注入高斯白噪声。
* 执行文件导出与二次回读操作,验证了系统对外部 CSV 数据的兼容性和稳定性。
- 数字滤波器实现:
* 采用 butter 函数计算 IIR 滤波器系数(b, a)。
* 应用 filtfilt 双向零相位滤波技术,确保处理后的信号在时域上不存在相位滞后,保持信号特征的实时性。
- 频域分析流程:
* 对信号执行 FFT 变换,将数据从时域映射到频域。
* 执行幅值归一化处理,并计算单边幅度谱,将双边谱的能量集中到正频率域,确保物理意义明确。
- 统计特征计算:
* 利用匿名函数封装算法逻辑,通过均方根算法评估振动强度。
* 通过最大绝对值法锁定信号峰值。
* 通过峰值与均方根的比值计算峰值因子,用于评估信号的冲击特性。
- 可视化与输出系统:
* 采用 2x2 子图布局,将时域分析与频域分析置于同一画布,实现处理前后效果的即时对齐。
* 自动识别并标注滤波后信号中的主导频率及其对应的幅值。
关键算法与实现细节分析
- 巴特沃斯滤波器设计:代码选用了巴特沃斯滤波器,其在通带内具有最大平坦特性,能够最大限度地减少滤波处理对有用振动频率信号幅值的扭曲。
- 零相位滤波(filtfilt):相比于传统的单向滤波,系统通过双向过滤技术消除了 IIR 滤波器固有的群延迟现象,这对于需要精确对齐时域波形的设备诊断工作至关重要。
- FFT 能量补偿:在计算单边幅度谱时,代码对除直流分量外的所有频率成分进行了 2 倍补偿,这符合信号处理中从双边谱转换到单边谱的能量守恒原理。
- 指标评估体系:引入的 RMS 指标能够客观反映振动的总能量水平,而峰值因子则是判断轴承损伤、齿轮剥落等冲击性故障的核心依据。