MATLAB 带通滤波器代码详解:分析信号并提取包络
这段代码使用 MATLAB 实现了一个带通滤波器,具体步骤如下:
- 加载.mat文件,文件路径为'D:\春苗结冰预警实验数据+代码\Al1_ice1.mat'。
- 绘制一个新的图形窗口。
- 从 Frequency_Hz 中提取一部分频率数据,选择第 1 到第 25 个元素,步长为 4。
- 从 Group_Velocity_m_s 中提取一部分速度数据,选择第 1 到第 25 列,步长为 4。
- 使用 for 循环,循环 6 次,变量 i 从 1 到 6。
- 计算带通滤波器的参数,包括中心频率 f_central_、带宽 f_band、左边界频率 f_left 和右边界频率 f_right。
- 使用 bandpass 函数对 acor 进行带通滤波,滤波频率范围为 [f_left f_right],采样率为 fs。
- 对滤波后的信号 acor_ 进行包络提取,采用峰值检测方法,窗口大小为 5。
- 在第 i 个子图中绘制滤波前的信号 acor_,使用红色线条,线宽为 1。
- 计算时间延迟 tim_a,该值为 dis(距离)除以 cg_all(1, i)(群速度)。
- 在第 i 个子图中绘制时间延迟范围内的红色交叉标记点,坐标为 [-tim_a tim_a, 0 0],标记大小为 8,线宽为 3。
- 在第 i 个子图中绘制滤波后的包络信号 env,使用红色线条,线宽为 1。
- 设置 x 轴标签为 'Time [s]'。
- 设置子图标题为 'Central frequency: ' 加上 f_central_/1000 的值加上 ' kHz'。
- 设置 x 轴范围为 [-0.0004, 0.0004]。
- 打开网格显示。
- 结束 for 循环。
原文地址: https://www.cveoy.top/t/topic/piog 著作权归作者所有。请勿转载和采集!