DFA(Detrend Fluctuation Analysis)与scale-free

scale-free的本质特征是self-affine or self-similar。具体的,体现在几何上,那么图形中总能找到一个小的部分,它的形态与总的图形一致或相似,体现在统计上,则某一小段序列的标准差不依赖于尺度的选择,它能够通过rescale得到和总体标准差一样的值,或者说其标准差和尺度的关系满足幂律指数关系,这意味着在双对数坐标系下,二者的图线是一条直线。

scale-free的一种通用数学定义是

\[Y(Lt)= L^HY(t)
\]

L是长度系数,H被称为Hurst参数,它反映了scale-free对象的性质。

DFA的计算方法

  1. 将信号关于平均值作归一化后,求出profile,或称累积和

  2. 窗长是DFA图像的自变量,选取幂律步长增长的窗长序列。最长的窗长为整个待分析序列的长度(但介于序列长度与长度一半的窗长会由于计算时丢弃太多数据而引入误差,应该尽量避免,这一点可以从DFA图中看出),最短的窗长,对于HRV来说,以一个呼吸周期为佳,大概为4-8s,(“以一个呼吸周期为佳”为个人未经实验证明的观点)。按照某一个窗长,将信号分割为non-overlapping的许多片段。

  3. 对每个计算窗内,作基于线性拟合的detrend

    除了线性拟合,还可以作二次、三次拟合,称为DFA2,DFA3。比如Penzel等人[1]在2003年使用DFA2来分析睡眠ECG。他们的一个实验现象是REM和wake时,\(\alpha\)更大。

  4. 对每个detrend后的序列求均方根值(RMS),得到F(n)。

  5. 对log[F(n)]和log(n)作线性拟合,拟合所得斜率为整个信号波动水平的衡量。比如清醒时的斜率就会大于睡眠时的斜率。当斜率为0时,信号退化为平稳信号。

    思考:log[F(n)]和log(n)线性拟合的斜率总是大于等于0,从实验的角度证明了这样一个命题:对一个总体来说,其抽样的标准差的期望小于等于总体的标准差,当且仅当每个抽样的平均值与总体相等时,取等号。

WDFA

WDFA(Window DFA)的提出是为了克服DFA无时间信息的问题。Adnane等人于2012年[2]指出这一问题给DFA在应用上带来两个短板,一是无法对短于DFA点数要求的信号段进行分析,二是当一个信号段里既有清醒和睡眠时,必然会导致一部分的阶段被错判,因而进一步提出WDFA,并在文章中给出了WDFA的计算方法:

  1. WDFA的前三步骤与DFA相同,稍有不同的是选择的窗宽只有n=30和n=90(序列已经降采样到1Hz)。

  2. WDFA的实质为一个移动窗内信号的能量(不包含直流分量)。

    \[\mu(t, \delta)=\frac{1}{2 \delta} \int_{t-\delta}^{t+\delta}(z(\tau)-\bar{z}(t))^{2} d \tau
    \]

    应用中的表达式为:

    \[\mu(t, \delta)=\frac{1}{2 \delta}\left(\mu_{2}(t+\delta)-\mu_{2}(t-\delta)\right)-\frac{1}{(2 \delta)^{2}}\left(\mu_{1}(t+\delta)-\mu_{1}(t-\delta)\right)^{2}
    \]

    式中t表示时刻,\(\delta\)表示窗宽,z(t)为步骤1得到的detrend信号,\(\mu_1\)和\(\mu_2\)的定义如下:

    \[\mu_{1}(t)=\int_{-\infty}^{t} z(\tau) d \tau
    \]
    \[\mu_{2}(t)=\int_{-\infty}^{t} z(\tau)^{2} d \tau
    \]

    文章中,\(\delta\)有两个取值,分别为30和90。

ECG与DFA

对于被公认为是非稳态信号ECG来讲,DFA尽可能小的受到噪声和非稳态信号的干扰实现相关的计算。


  1. Penzel T , Kantelhardt J W , Grote L , et al. Comparison of detrended fluctuation analysis and spectral analysis for heart rate variability in sleep and sleep apnea[J]. IEEE Transactions on Biomedical Engineering, 2003, 50(10):1143-1151.

  2. Adnane, Mourad, Zhongwei Jiang, and Zhonghong Yan. "Sleep–wake stages classification and sleep efficiency estimation using single-lead electrocardiogram." Expert Systems with Applications 39.1 (2012): 1401-1413.

DFA简介的更多相关文章

  1. 敏感词过滤的算法原理之DFA算法

    参考文档 http://blog.csdn.net/chenssy/article/details/26961957 敏感词.文字过滤是一个网站必不可少的功能,如何设计一个好的.高效的过滤算法是非常有 ...

  2. Java实现敏感词过滤

    敏感词.文字过滤是一个网站必不可少的功能,如何设计一个好的.高效的过滤算法是非常有必要的.前段时间我一个朋友(马上毕业,接触编程不久)要我帮他看一个文字过滤的东西,它说检索效率非常慢.我把它程序拿过来 ...

  3. Java实现敏感词过滤(转)

    敏感词.文字过滤是一个网站必不可少的功能,如何设计一个好的.高效的过滤算法是非常有必要的.前段时间我一个朋友(马上毕业,接触编程不久)要我帮他看一个文字过滤的东西,它说检索效率非常慢.我把它程序拿过来 ...

  4. Jsp敏感词过滤

    Jsp敏感词过滤 大部分论坛.网站等,为了方便管理,都进行了关于敏感词的设定. 在多数网站,敏感词一般是指带有敏感政治倾向(或反执政党倾向).暴力倾向.不健康色彩的词或不文明语,也有一些网站根据自身实 ...

  5. 高效Java敏感词、关键词过滤工具包_过滤非法词句

    敏感词.文字过滤是一个网站必不可少的功能,如何设计一个好的.高效的过滤算法是非常有必要的.前段时间我一个朋友(马上毕业,接触编程不久)要我帮他看一个文字过滤的东西,它说检索效率非常慢.我把它程序拿过来 ...

  6. java过滤关键词

    敏感词.文字过滤是一个网站必不可少的功能,如何设计一个好的.高效的过滤算法是非常有必要的.前段时间我一个朋友(马上毕业,接触编程不久)要我帮他看一个文字过滤的东西,它说检索效率非常慢.我把它程序拿过来 ...

  7. 转:Java实现敏感词过滤

    敏感词.文字过滤是一个网站必不可少的功能,如何设计一个好的.高效的过滤算法是非常有必要的.前段时间我一个朋友(马上毕业,接触编程不久)要我帮他看一个文字过滤的东西,它说检索效率非常慢.我把它程序拿过来 ...

  8. 基于DFA敏感词查询的算法简析

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 项目中需要对敏感词做一个过滤,首先有几个方案可以选择: a.直 ...

  9. DFA算法的简单说明!

    1.DFA算法简介 DFA全称为:Deterministic Finite Automaton,即确定有穷自动机.其特征为:有一个有限状态集合和一些从一个状态通向另一个状态的边,每条边上标记有一个符号 ...

随机推荐

  1. 不知如何创建UML电路图?看看本文

    Visual Paradigm是包含设计共享.线框图和数据库设计新特性的企业项目设计工具.现在你只需要这样单独的一款模型软件 Visual Paradigm就可以完成用UML设计软件,用BPMN去执行 ...

  2. React学习小记--setState的同步与异步

    react中,state不能直接修改,而是需要使用setState()来对state进行修改,那什么时候是同步而什么时候是异步呢? 基础代码: setCounter = (v) => { thi ...

  3. 题目:写出一条SQL语句,查询工资高于10000,且与他所在部门的经理年龄相同的职工姓名。

    create table Emp( eid char(20) primary key, ename char(20), age integer check (age > 0), did char ...

  4. interp1一维数据插值在matlab中的用法

    转载:https://ww2.mathworks.cn/help/matlab/ref/interp1.html?s_tid=srchtitle#btwp6lt-2_1 interp1 一维数据插值( ...

  5. 从实体框架核心开始:构建一个ASP。NET Core应用程序与Web API和代码优先开发

    下载StudentApplication.Web.zip - 599.5 KB 下载StudentApplication.API.zip - 11.5 KB 介绍 在上一篇文章中,我们了解了实体框架的 ...

  6. pytest文档51-内置fixture之cache使用

    前言 pytest 运行完用例之后会生成一个 .pytest_cache 的缓存文件夹,用于记录用例的ids和上一次失败的用例. 方便我们在运行用例的时候加上--lf 和 --ff 参数,快速运行上一 ...

  7. C语言编程丨循环链表实现约瑟夫环!真可谓无所不能的C!

    循环链表   把链表的两头连接,使其成为了一个环状链表,通常称为循环链表. 和它名字的表意一样,只需要将表中最后一个结点的指针指向头结点,链表就能成环儿,下图所示.   需要注意的是,虽然循环链表成环 ...

  8. Linux关联文件扩展名和打开程序

    手动为Linux关联文件扩展名与打开程序. 当Linux不认识某种扩展名的时候,需要为此扩展名创建一个MIME类型.Linux是依据MIME类型而不是扩展名来决定打开程序的. 再将此种MIME类型与某 ...

  9. centos8平台使用stress做压力测试

    一,安装stress: 说明:el8的源里面还没有,先用el7的rpm包 [root@centos8 source]# wget https://download-ib01.fedoraproject ...

  10. 查看centos 7.6 当前所有监听端口

    由于要开展服务器安全工作查看系统当前所监听端口 ss -lnt 缺点发现有重复端口也显示出来了! ss -lnt | awk '/*