算法步骤
① 加载数据与参数初始化
导入理想心电信号与含噪心电信号,设定采样频率128 Hz,计算信号长度及时间向量。定义心电动态模型的五个高斯函数参数(中心相位、幅度系数、宽度系数),设定心率角频率。
② 合成心电信号验证模型
利用欧拉法数值求解基于相位的微分方程,迭代生成相位序列与合成心电信号,绘制合成波形以验证模型有效性。
③ 扩展卡尔曼滤波(EKF)基本实现
初始化状态向量(相位、幅度)、状态估计协方差矩阵、过程噪声协方差矩阵及测量噪声方差。对每个采样点依次执行:
预测步骤:利用状态转移函数(相位更新、幅度欧拉积分)计算状态预测值,并计算雅可比矩阵以线性化预测协方差。
更新步骤:根据观测值与预测残差计算卡尔曼增益,修正状态估计,并更新协方差矩阵。
④ 过程噪声参数敏感性分析
分别设置较小的过程噪声协方差矩阵(R = 1e-6·I)和较大的过程噪声协方差矩阵(R = I),运行EKF并对比滤波效果,说明过程噪声设定对滤波性能的影响。
⑤ 网格搜索优化过程噪声参数
在相位噪声方差与幅度噪声方差的合理区间(0.01~0.07)内进行网格搜索,对每组参数执行EKF滤波,计算滤波后信号与理想信号的均方误差,选取使均方误差最小的最优参数组合,并保存对应的滤波结果。
⑥ 结果输出与可视化
分别绘制含噪信号、不同参数下的滤波信号及理想信号在同一坐标系下(局部放大5~10秒区间),保存图像并展示滤波效果对比。