当前位置: 首页 > ops >正文

基于卷积傅里叶分析网络 (CFAN)的心电图分类的统一时频方法

一、研究背景与核心问题

  1. ECG分类的挑战​:
    心电图(ECG)信号分类在心律失常检测、身份识别等领域至关重要,但传统方法难以同时有效整合时域和频域信息。现有方法包括:

    • 时域分类(CNN1D)​​:直接处理原始信号。
    • 频域分类(FFT1D)​​:通过傅里叶变换提取频域特征。
    • 时频域分类(SPECT)​​:将信号转为频谱图后用2D CNN处理,但转换过程可能丢失信息。
    • 局限​:SPECT性能未达预期,需更优的时频融合方案。
  2. FAN的启发​:
    傅里叶分析网络(FAN)通过正弦/余弦激活函数捕捉周期性特征,但仅用于全连接层,对卷积层未充分探索。


二、创新方法:CFAN架构

  1. 核心设计​:

    • CONV-FAN模块​(图10b):
      • 卷积层替换为包含独立权重矩阵的正弦(sin)、余弦(cos)和GELU激活函数的混合模块。
      • 比例:GELU : sin : cos = 1:1:1(对比FAN的4:1)。

 

    • 端到端时频融合​:无需预生成频谱图,直接在网络中学习联合特征。
  1. 架构细节​:

    • MIT-BIH/ECG-ID任务​(图12):
      • 输入 → CONV-FAN(3层,每层32滤波器)→ 跳跃连接+注意力 → 全连接层。

 

Apnea-ECG任务​(图11):

  • 类似结构,但CONV-FAN每层仅4滤波器(总计12)。

 

    • 关键改进​:独立权重矩阵(优于共享权重的CSFAN变体)。

三、实验与结果

  1. 数据集与预处理​:

    • MIT-BIH​(心律失常分类):109,451个心拍,5类别(正常、室上性早搏等)。

 

ECG-ID​(身份识别):90人,2,456个心拍(图4)。 

 

    • pnea-ECG​(呼吸暂停检测):15,880个1分钟片段(图3c)。
  1. 基准方法对比​:

    • SPECT(频谱图+EfficientNetB0)、CNN1D、FFT1D、CNN1D-FAN(全连接层替换为FAN)。
  2. 性能优势​:

    方法MIT-BIH (Acc%)​ECG-ID (Acc%)​Apnea-ECG (Acc%)​
    SPECT98.9395.3489.86
    CNN1D98.9295.2093.90
    CFAN98.9596.8395.01
    • 统计显著性​:CFAN在ECG-ID(p=0.02)和Apnea-ECG(p=0.0009)显著优于次优方法(CNN1D-FAN)。
    • 效率​:参数量与CNN1D相同,但推理时间略增(表I)。
  3. 消融实验​:

    • 独立权重关键性​:CFAN(独立权重)> CSFAN(共享权重),如ECG-ID精度差0.9%。
    • 全领域最优​:CFAN在时域、频域及时频域任务中均超越基准。

四、贡献与意义

  1. 理论突破​:

    • 首次将傅里叶分析嵌入卷积层,实现端到端时频联合学习
    • 验证周期性激活函数在生物医学信号中的普适性。
  2. 应用价值​:

    • 心律失常分类​:刷新MIT-BIH准确率(98.95%)。
    • 身份识别​:ECG-ID准确率96.83%,优于文献最佳(96%)。
    • 呼吸暂停检测​:Apnea-ECG准确率95.01%,超越主流方法(如Bhongade的94.77%)。
  3. 泛化潜力​:

    • 架构可扩展至其他时频敏感任务(如脑电、语音分析)。

五、核心代码

CONV-FAN块实现(核心创新) 

import tensorflow as tf
from tensorflow.keras.layers import Layer, Conv1Dclass CONV_FAN(Layer):"""CONV-FAN块:融合GELU、正弦、余弦激活的卷积层"""def __init__(self, filters, kernel_size, ratio=(1,1,1), ​**kwargs):super().__init__(**kwargs)self.filters = filters# 独立权重矩阵的三路卷积(GELU/sin/cos)self.conv_g = Conv1D(filters * ratio[0], kernel_size, padding='same', activation='gelu')self.conv_s = Conv1D(filters * ratio[1], kernel_size, padding='same', activation=tf.sin)  # 正弦激活self.conv_c = Conv1D(filters * ratio[2], kernel_size, padding='same', activation=tf.cos)  # 余弦激活def call(self, inputs):# 并行三路卷积g_path = self.conv_g(inputs)  # GELU路径s_path = self.conv_s(inputs)  # 正弦路径c_path = self.conv_c(inputs)  # 余弦路径# 沿通道维度拼接 (B, T, C1+C2+C3)return tf.concat([g_path, s_path, c_path], axis=-1)def get_config(self):return {'filters': self.filters}

六、结论

CFAN通过统一时频卷积模块解决了传统方法分割处理的局限,在ECG分类中实现SOTA性能,并为生物医学信号分析提供了新范式。其核心创新在于直接融合傅里叶原理与卷积操作,避免了人工特征工程或信号转换的瓶颈。

http://www.xdnf.cn/news/15816.html

相关文章:

  • SpringBoot3集成MapstructPlus
  • GaussDB select into和insert into的用法
  • 基于智慧经营系统的学校住宿登记报表分析与应用探究-毕业论文—仙盟创梦IDE
  • Qt--Widget类对象的构造函数分析
  • 上电复位断言的自动化
  • 网络安全初级(前端页面的编写分析)
  • Java 递归方法详解:从基础语法到实战应用,彻底掌握递归编程思想
  • C++STL系列之list
  • Spring Boot 第一天知识汇总
  • UE5多人MOBA+GAS 26、为角色添加每秒回血回蓝(番外:添加到UI上)
  • redis-plus-plus安装与使用
  • 【vue-7】Vue3 响应式数据声明:深入理解 reactive()
  • 敏捷开发的历史演进:从先驱实践到全域敏捷(1950s-2025)
  • ubuntu 24.04 xfce4 钉钉输入抢焦点问题
  • XSS的学习笔记
  • ChatIM项目语音识别安装与使用
  • 拓展面试题之-rabbitmq面试题
  • [Python] -项目实战8- 构建一个简单的 Todo List Web 应用(Flask)
  • pip关于缓存的用法
  • Python Web框架详解:Flask、Streamlit、FastAPI
  • Pinia 核心知识详解:Vue3 新一代状态管理指南
  • 算法-递推
  • 在通信仿真场景下,Python 和 MATLAB 的性能差异主要体现在运行效率、并行计算、库支持、开发效率等方面。以下是基于最新资料的对比总结
  • AS32X601 系列 MCU 硬件最小系统设计与调试方案探析
  • Web-SQL注入数据库类型用户权限架构分层符号干扰利用过程发现思路
  • 基于SHAP的特征重要性排序与分布式影响力可视化分析
  • 两个路由器通过不同的网段互联
  • 【PTA数据结构 | C语言版】邻接矩阵表示的图基本操作
  • TD3与SAC强化学习算法深度对比
  • 六边形滚动机器人cad【7张】三维图+设计书明说