基于卷积傅里叶分析网络 (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.pswp.cn/pingmian/89727.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/89727.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux——LinuxOS

cd,pwd,mkdir,rm,ls,touch,cat,echo,

深度学习篇---矩阵

在机械臂解算、深度学习网络等硬件和软件领域中,矩阵运算作为核心数学工具,承担着数据表示、变换、映射和优化的关键作用。以下从具体领域出发,详细总结涉及的矩阵运算及对应的核心知识:一、机械臂解算领域机械臂解算(…

元宇宙:技术乌托邦与数字化未来——基于技术哲学的分析

一、技术哲学视域下的元宇宙本质哲学源流与技术基因的双重映射理想世界的千年回响:从柏拉图洞穴隐喻中的影子世界,到普特南“钵中之脑”对虚拟与现实界限的消弭,元宇宙的构想深植于人类对平行世界的永恒追问。中国传统神话中“天人二元结构”…

如何构建一个基于大模型的实时对话3D数字人?

近年来,随着元宇宙和AIGC技术的爆发,3D数字人从影视特效走向日常应用。无论是虚拟主播、AI客服,还是数字教师,其核心诉求都是**“能听、会说、有表情”**的实时交互能力。本文就带大家了解如何构建一个基于大模型的实时对话的3D数…

NULL值处理:索引优化与业务设计实践指南

一、NULL值的本质与影响NULL值在数据库中代表"未知状态"或"不适用"的特殊标记,与空字符串或0有本质区别12。其特性导致以下业务与性能问题:‌语义复杂性‌:NULL可能表示"未填写"(如用户手机号)或"不适用&…

【add vs commit】Git 中的 add 和 commit 之间的区别

关于git add和git commit还有一些有点不太清楚的地方,这里写一篇文章好好理一理git add:添加到暂存区 git add实际上是把工作区中的内容存入“暂存区” 通俗来讲就是告诉Git:“这些文件我准备好commit了” git add file.txt # 添加单个文件 …

【推荐100个unity插件】使用C#或者unity实现爬虫爬取静态网页数据——Html Agility Pack (HAP)库和XPath 语法的使用

文章目录前言一、安装HtmlAgilityPack1、从NuGet下载HtmlAgilityPack包2、获取HtmlAgilityPack.dll二、HtmlAgilityPack常用操作1、加载 HTML2、查询方式2.1 使用 XPath 查询(推荐)2.2 使用 LINQ 查询3、常用查询操作3.1 选择节点3.2 获取属性值3.3 遍历…

用 urllib 开启爬虫之门:从零掌握网页数据抓取

在数字时代,数据就是力量。作为一名社会工作者,或许你想了解城市服务资源;作为一个编程初学者,你可能希望从网页中自动提取新闻、课程或公开数据。今天,我们就来讲一讲 Python 标准库中的一把“钥匙”——urllib 库&am…

Spring Boot 订单超时自动取消的 3 种主流实现方案

Spring Boot 订单超时自动取消的 3 种主流实现方案关键词:Spring Boot、订单超时、延迟任务、RabbitMQ、Redis、定时任务在电商、外卖、票务等业务中,“下单后若 30 分钟未支付则自动取消”是一道经典需求。实现方式既要保证 实时性,又要在 高…

0401聚类-机器学习-人工智能

文章目录一 无监督学习什么是无监督学习?核心特点:无监督学习的主要类型1. 聚类分析 (Clustering)2. 降维 (Dimensionality Reduction)3. 关联规则学习 (Association Rule Learning)4. 异常检测 (Anomaly Detection)5. 密度估计 (Density Estimation)二 …

基础神经网络模型搭建

nn 包提供通用深度学习网络的模块集合,接收输入张量,计算输出张量,并保存权重。通常使用两种途径搭建 PyTorch 中的模型:nn.Sequential和 nn.Module。 nn.Sequential通过线性层有序组合搭建模型;nn.Module通过__init__…

基于单片机出租车计价器设计

传送门 👉👉👉👉其他作品题目速选一览表 👉👉👉👉其他作品题目功能速览 概述 本设计实现了一种基于单片机的智能化出租车计价系统。系统以单片机为核心处理器,集成…

134. Java 泛型 - 上限通配符

文章目录134. Java 泛型 - 上限通配符 (? extends T)**1. 什么是上限通配符 (? extends T)?****2. 为什么使用 ? extends T?****3. 示例:使用 ? extends T 进行数据读取****✅ 示例 1:计算数值列表的总和****4. 注意事项&…

【1】YOLOv13 AI大模型-可视化图形用户(GUI)界面系统开发

【文章内容适用于任意目标检测任务】【GUI界面系统不局限于YOLOV13,主流YOLO系列模型同样适用】本文以车辆行人检测为背景,介绍基于【YOLOV13模型】和【AI大模型】的图形用户(GUI)界面系统的开发。助力大论文实现目标检测模型的应…

小程序常用api

1. wx.request - 发起网络请求 用于向服务器发送 HTTP 请求,获取数据或提交表单。 // 示例:GET 请求获取数据 wx.request({url: https://api.example.com/data, // 替换为实际 API 地址method: GET,success: (res) > {console.log(请求成功, res.da…

PaliGemma 2-轻量级开放式视觉语言模型

PaliGemma 2是轻量级开放式视觉语言模型 (VLM),灵感源自 PaLI-3,基于 SigLIP 视觉模型和 Gemma 语言模型等开放式组件。PaliGemma 同时接受图片和文本作为输入,并且可以回答有关图片的详细问题和背景信息。PaliGemma 2 提供 30 亿、100 亿和 …

腾讯云云服务器深度介绍

以下是围绕腾讯云云服务器(CVM)的详细介绍与推荐文章,结合其核心优势、应用场景及技术特性,为不同用户群体提供参考: 🚀 一、产品定位与核心价值 腾讯云云服务器(Cloud Virtual Machine, CVM&a…

Ceph OSD.419 故障分析

Ceph OSD.419 故障分析 1. 问题描述 在 Ceph 存储集群中,OSD.419 无法正常启动,系统日志显示服务反复重启失败。 2. 初始状态分析 观察到 OSD.419 服务启动失败的系统状态: systemctl status ceph-osd419 ● ceph-osd419.service - Ceph obje…

MySQL持久化原理及其常见问题

目录 MySQL刷盘原理 脏页和干净页 MySQL出现短暂的堵塞SQL现象 情况分析 应对措施 数据库表中数据删除原理 删除表中数据数据库空间大小不会改变 情况分析 应对措施 MySQL刷盘原理 一般主要分为两个步骤 内存更新和 redo log 记录是同一事务修改的两个必要操作&#…

VSCode中Cline无法正确读取终端的问题解决

出现的问题是:Cline 无法正确读取终端输出。 Shell Integration Unavailable Cline won’t be able to view the command’s output. Please update VSCode (CMD/CTRL Shift P → “Update”) and make sure you’re using a supported shell: zsh, bash, fish, o…