DFA简介
DFA(Detrend Fluctuation Analysis)与scale-free
scale-free的本质特征是self-affine or self-similar。具体的,体现在几何上,那么图形中总能找到一个小的部分,它的形态与总的图形一致或相似,体现在统计上,则某一小段序列的标准差不依赖于尺度的选择,它能够通过rescale得到和总体标准差一样的值,或者说其标准差和尺度的关系满足幂律指数关系,这意味着在双对数坐标系下,二者的图线是一条直线。
scale-free的一种通用数学定义是
\]
L是长度系数,H被称为Hurst参数,它反映了scale-free对象的性质。
DFA的计算方法
将信号关于平均值作归一化后,求出profile,或称累积和。
窗长是DFA图像的自变量,选取幂律步长增长的窗长序列。最长的窗长为整个待分析序列的长度(但介于序列长度与长度一半的窗长会由于计算时丢弃太多数据而引入误差,应该尽量避免,这一点可以从DFA图中看出),最短的窗长,对于HRV来说,以一个呼吸周期为佳,大概为4-8s,(“以一个呼吸周期为佳”为个人未经实验证明的观点)。按照某一个窗长,将信号分割为non-overlapping的许多片段。
对每个计算窗内,作基于线性拟合的detrend。
除了线性拟合,还可以作二次、三次拟合,称为DFA2,DFA3。比如Penzel等人[1]在2003年使用DFA2来分析睡眠ECG。他们的一个实验现象是REM和wake时,\(\alpha\)更大。
对每个detrend后的序列求均方根值(RMS),得到F(n)。
对log[F(n)]和log(n)作线性拟合,拟合所得斜率为整个信号波动水平的衡量。比如清醒时的斜率就会大于睡眠时的斜率。当斜率为0时,信号退化为平稳信号。
思考:log[F(n)]和log(n)线性拟合的斜率总是大于等于0,从实验的角度证明了这样一个命题:对一个总体来说,其抽样的标准差的期望小于等于总体的标准差,当且仅当每个抽样的平均值与总体相等时,取等号。
WDFA
WDFA(Window DFA)的提出是为了克服DFA无时间信息的问题。Adnane等人于2012年[2]指出这一问题给DFA在应用上带来两个短板,一是无法对短于DFA点数要求的信号段进行分析,二是当一个信号段里既有清醒和睡眠时,必然会导致一部分的阶段被错判,因而进一步提出WDFA,并在文章中给出了WDFA的计算方法:
WDFA的前三步骤与DFA相同,稍有不同的是选择的窗宽只有n=30和n=90(序列已经降采样到1Hz)。
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尽可能小的受到噪声和非稳态信号的干扰实现相关的计算。
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. ︎
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简介的更多相关文章
- 敏感词过滤的算法原理之DFA算法
参考文档 http://blog.csdn.net/chenssy/article/details/26961957 敏感词.文字过滤是一个网站必不可少的功能,如何设计一个好的.高效的过滤算法是非常有 ...
- Java实现敏感词过滤
敏感词.文字过滤是一个网站必不可少的功能,如何设计一个好的.高效的过滤算法是非常有必要的.前段时间我一个朋友(马上毕业,接触编程不久)要我帮他看一个文字过滤的东西,它说检索效率非常慢.我把它程序拿过来 ...
- Java实现敏感词过滤(转)
敏感词.文字过滤是一个网站必不可少的功能,如何设计一个好的.高效的过滤算法是非常有必要的.前段时间我一个朋友(马上毕业,接触编程不久)要我帮他看一个文字过滤的东西,它说检索效率非常慢.我把它程序拿过来 ...
- Jsp敏感词过滤
Jsp敏感词过滤 大部分论坛.网站等,为了方便管理,都进行了关于敏感词的设定. 在多数网站,敏感词一般是指带有敏感政治倾向(或反执政党倾向).暴力倾向.不健康色彩的词或不文明语,也有一些网站根据自身实 ...
- 高效Java敏感词、关键词过滤工具包_过滤非法词句
敏感词.文字过滤是一个网站必不可少的功能,如何设计一个好的.高效的过滤算法是非常有必要的.前段时间我一个朋友(马上毕业,接触编程不久)要我帮他看一个文字过滤的东西,它说检索效率非常慢.我把它程序拿过来 ...
- java过滤关键词
敏感词.文字过滤是一个网站必不可少的功能,如何设计一个好的.高效的过滤算法是非常有必要的.前段时间我一个朋友(马上毕业,接触编程不久)要我帮他看一个文字过滤的东西,它说检索效率非常慢.我把它程序拿过来 ...
- 转:Java实现敏感词过滤
敏感词.文字过滤是一个网站必不可少的功能,如何设计一个好的.高效的过滤算法是非常有必要的.前段时间我一个朋友(马上毕业,接触编程不久)要我帮他看一个文字过滤的东西,它说检索效率非常慢.我把它程序拿过来 ...
- 基于DFA敏感词查询的算法简析
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 项目中需要对敏感词做一个过滤,首先有几个方案可以选择: a.直 ...
- DFA算法的简单说明!
1.DFA算法简介 DFA全称为:Deterministic Finite Automaton,即确定有穷自动机.其特征为:有一个有限状态集合和一些从一个状态通向另一个状态的边,每条边上标记有一个符号 ...
随机推荐
- NN相关资源(持续更新)
Iris数据介绍 http://www.cnblogs.com/Belter/p/8831216.html
- P4715 【深基16.例1】淘汰赛
P4715 [深基16.例1]淘汰赛 题目描述 有 2^n(n≤7) 个国家参加世界杯决赛圈且进入淘汰赛环节.我经知道各个国家的能力值,且都不相等.能力值高的国家和能力值低的国家踢比赛时高者获胜.1 ...
- SQL实战——02. 查找入职员工时间排名倒数第三的员工所有信息
查找入职员工时间排名倒数第三的员工所有信息CREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_date` date NOT NULL, ...
- Makefile常用函数(转)
一.字符串处理函数 1.$(subst FROM,TO,TEXT) 函数名称:字符串替换函数-subst. 函数功能:把字串"TEXT"中的"FROM"字符替换 ...
- 搭建ipse隧道
我没有太多的物理服务器,实验环境只能用四台装了linux的虚拟机来模拟,用户层工具是openswan.大致拓扑如下(我有点懒,公网地址我用的194.168.10.0/24,别和192.168.xx.x ...
- 多测师讲解selenium_alert弹框定位_高级讲师肖sir
from selenium import webdriverfrom time import sleepdrvier=webdriver.Chrome()url=r'F:\dcs\DCS课程安排\se ...
- 【二分】CF Round #587 (Div. 3)E2 Numerical Sequence (hard version)
题目大意 有一个无限长的数字序列,其组成为1 1 2 1 2 3 1.......1 2 ... n...,即重复的1~1,1~2....1~n,给你一个\(k\),求第\(k(k<=10^{1 ...
- Go语言基础知识01-用Go打个招呼
每一种编程语言,从读一本好书开始 每一种编程语言,也从Helloworld开始 1. 环境准备 1.1 安装golang 在Ubuntu下,直接输入命令可以安装最新版本: $ sudo apt-get ...
- BOOST库 消息队列
直接贴实验代码: /******* boost 消息队列 **********/ #if 1 #include <boost/thread/thread.hpp> #include < ...
- go 结构体与方法
go 结构体与方法 go 结构体相当于 python 中类的概念,结构体用来定义复杂的数据结构,存储很多相同的字段属性 结构体的定义 1.结构体的定义以及简单实用 package main imp ...