欧洲数据格式----EDF+的格式释义及与BDF的区别

EDF+同EDF的区别

1:EDF+ 允许将多个非连续记录存储到一个文件中。这是与EDF唯一不兼容的地方。

2:EDF+ 标头记录可识别患者并根据 EDF 规范指定记录信号的技术特征,但第一个“保留(reserved)”字段(44 个字符)除外。-------------保留字段内容不同

3:如果记录不间断,“保留(reserved)”字段则必须以“EDF+C”开头,因此具有连续的数据记录,即每个数据记录的开始时间与前一个数据记录的结束时间(开始时间 + 持续时间)一致。如果记录中断,“保留(reserved)”字段必须以“EDF+D”开头,因此并非所有数据记录都是连续的。

4:EDF+的“版本(version)”字段必须仍然像EDF一样读'0       '。EDF+软件将从上述“保留(reserved)”字段中知道连续文件和不连续文件之间的区别。

5:“普通信号(ordinary signal)”:一系列 2 字节样本,后续样本表示该信号的后续整数值,以相等的时间间隔进行采样。

6:EDF+数据记录包含根据EDF规范(包括61440的大小限制)的普通信号,但数据记录可以无条件地短于1s,后续数据记录不需要形成连续记录。

7:EDF+中,普通信号的样本在每个数据记录包内必须具有相等的采样间隔,但到下一个数据记录包的第一个样本的间隔可能不同。

8:极端情况下,若每个普通信号在每个数据记录中仅占用一个样本,或文件是不连续的(EDF+D),则将“数据记录的持续时间(duration of a data record)”指定为 0。

9:EDF+中,在header头部分,仅使用字节值为 32到126 的可打印 US-ASCII 字符。

10:标题中的“开始日期(startdate)”和“开始时间('starttime)”字段应仅包含字符0-9,并将句点(.)作为分隔符,例如“02.08.51”。在“开始日期(startdate)”中,使用1985年作为剪辑日期,以避免Y2K问题。因此,1985-1999 年必须用 yy=85-99 表示,2000-2084 年必须用 yy=00-84 表示。2084年之后,yy必须是“yy”。

11:“本地患者标识(local patient identification)”字段必须以子字段开头(子字段不包含空格,但用空格分隔),子字段任何空格都必须替换为其他字符,例如下划线。

12: “数字最大值(Digital maximum)”必须大于“数字最大值(Digital minimum)”。在负放大器增益的情况下,相应的“物理最大值(Physical maximum)”小于“物理最大值(Physical minimum)”。

13:普通信号样本(2 字节 2 的补码整数)必须以“小端序little-endian”格式存储,即最低有效字节优先。这是 PC 应用程序中的默认格式。

14:旧的EDF软件只会将此“EDF注释(EDF Annotations)”信号视为(奇怪的)普通信号。

15:即使不保留注释,EDF+文件也必须至少包含一个“EDF Annotations”信号,以便指定每个数据记录的开始时间(见第2.2.4节)。当然,label中的“EDF Annotations”标签不允许用于普通信号。标头中的“每个数据记录中的样本数(nr of samples in each data record)”字段指定该“EDF Annotations”信号在每个数据记录中占多少2字节整数。

16:“EDF Annotations”信号只有有意义的标题字段“label”和“nr of samples in each data record(每个数据记录中的样本数量)”。为了与EDF兼容,字段“数字最小值(digital minimum)”和“数字最大值(digital maximum)”必须分别填写-32768和32767。“物理最大值(Physical maximum)”和“物理最小值(Physical minimum)”字段必须包含彼此不同的值。该信号的其他字段用空格填充。

17:在时间戳之后,可能会出现所有共享相同发病时间和持续时间的注释列表。每个注释后面都有一个单独的,并且可能不包含任何。一个字节(字节值为0的不可打印ASCII字符)跟在该TAL最后后面。所以TAL以 结尾,后面跟着

18:每个事件只被注释一次,即使它的持续时间使它扩展到其他数据记录的时间段。

19:“EDF注释(EDF Annotations)”数据记录通道的其余部分未使用字节也用字节填充。

20:“EDF注释信号(EDF Annotations signal)”通道中,TAL时间戳信息,以 结尾,后面跟着。多个TAL,则紧跟上一TAL的

21:因此,每个数据记录中第一个“EDF Annotations”信号的第一个注释为空,但其时间戳指定数据记录在文件开始日期/时间之后的秒数。

如果数据记录中的第一个 TAL 读取“+567”,则该数据记录在文件的开始日期/时间后 567 秒开始。

如果数据记录包含“普通信号(ordinary signals)”,则每个数据记录的开始时间必须是其信号的开始时间。例如,'+3456.789R-wav’表示此数据记录在发生 R 波时开始,即文件启动后 3456.789 秒。

22:文件的开始日期/时间在EDF+标题字段“录制开始日期(startdate of recording)”和“录制开始时间(starttime of recording)”中指定。这些字段必须指示第一个数据记录的开头所在的绝对秒。因此,第一个数据记录中的第一个 TAL 始终以 +0.X 开头。(两个空格)。

Length in bytes

BDF Header:

EDF Header:

EDF Description

Description

EDF+

8 bytes

Byte 1: "255" (non ascii)

Byte 1: "0" (ASCII)

version of this data format (0)

Identification code

Bytes 2-8 : "BIOSEMI" (ASCII)

Bytes 2-8 : " "(ASCII)

80 bytes

User text input (ASCII)

 local patient identification (mind item 3 of the additional EDF+ specs)

Local subject identification

80 bytes

User text input (ASCII)

local recording identification (mind item 4 of the additional EDF+ specs)

Local recording identification

8 bytes

dd.mm.yy (ASCII)

startdate of recording (dd.mm.yy) (mind item 2 of the additional EDF+ specs)

Startdate of recording

8 bytes

hh.mm.ss (ASCII)

starttime of recording (hh.mm.ss)

Starttime of recording

8 bytes

(ASCII)

number of bytes in header record

Number of bytes in header record

44 bytes

"24BIT" (ASCII)

"BIOSEMI" (ASCII)

reserved

Version of data format.

EDF+D

EDF+C

8 bytes

(ASCII)

 number of data records (-1 if unknown, obey item 10 of the additional EDF+ specs)

Number of data records "-1" if unknown

8 bytes

e.g.: "1" (ASCII)

duration of a data record, in seconds

Duration of a data record, in seconds

4 bytes

e.g.: "257" or "128" (ASCII)

number of signals (ns) in data record

Number of channels (N) in data record

N x 16 bytes

e.g.: "Fp1", "Fpz", "Fp2", etc (ASCII)

Labels of the channels

N x 80 bytes

e.g.: "active electrode", "respiration belt" (ASCII)

Transducer type

N x 8 bytes

e.g.: "uV", "Ohm" (ASCII)

Physical dimension of channels

N x 8 bytes

e.g.: "-262144" (ASCII)

e.g.: "-32768" (ASCII)

Physical minimum in units of physical dimension

N x 8 bytes

e.g.: "262143" (ASCII)

e.g.: "32767" (ASCII)

Physical maximum in units of physical dimension

N x 8 bytes

e.g.: "-8388608" (ASCII)

e.g.: "-32768" (ASCII)

Digital minimum

N x 8 bytes

e.g.: "8388607" (ASCII)

e.g.: "32767" (ASCII)

Digital maximum

N x 80 bytes

e.g.: "HP:DC; LP:410"

e.g.: "HP:0,16; LP:500"

Prefiltering

N x 8 bytes

For example: "2048" (ASCII)

Number of samples in each data record

(Sample-rate if Duration of data record = "1")

N x 32 bytes

(ASCII)

Reserved

Byte in file

Which part of 24 bit

Which channel

Which sample of data record

Which data record

1

2

3

Byte 1

Byte 2

Byte 3

Channel 1

1

Duration of data set has been set to "1". So this block will be filled with (1x2048) samples from only "Channel 1"

1

4

5

6

Byte 1

Byte 2

Byte 3

Channel 1

2

7

8

9

Byte 1

Byte 2

Byte 3

Channel 1

3

etc.

Channel 1: sample 4 to sample 2045

6136

6137

6138

Byte 1

Byte 2

Byte 3

Channel 1

2046

6139

6140

6141

Byte 1

Byte 2

Byte 3

Channel 1

2047

6142

6143

6144

Byte 1

Byte 2

Byte 3

Channel 1

2048

6145

6146

6147

Byte 1

Byte 2

Byte 3

Channel 2

1

Duration of data set has been set to "1". So this block will be filled with (1x2048) samples from only "Channel 2"

6148

6149

6150

Byte 1

Byte 2

Byte 3

Channel 2

2

6151

6152

6153

Byte 1

Byte 2

Byte 3

Channel 2

3

etc.

Channel 2: sample 4 to sample 2045

12280

12281

12282

Byte 1

Byte 2

Byte 3

Channel 2

2046

12283

12284

12285

Byte 1

Byte 2

Byte 3

Channel 2

2047

12286

12287

12288

Byte 1

Byte 2

Byte 3

Channel 2

2048

etc.

Channel 03: sample 1 to sample 2048
Channel 04: sample 1 to sample 2048
Channel 05: sample 1 to sample 2048
Channel 06: sample 1 to sample 2048
Channel 07: sample 1 to sample 2048
Channel 08: sample 1 to sample 2048
Channel 09: sample 1 to sample 2048
Channel 10: sample 1 to sample 2048
Channel 11: sample 1 to sample 2048
Channel 12: sample 1 to sample 2048
Channel 13: sample 1 to sample 2048
Channel 14: sample 1 to sample 2048
Channel 15: sample 1 to sample 2048

This block will be filled with (13x2048) samples from "Channels 3-15"

92161
92162
92163

Byte 1

Byte 2

Byte 3

Channel 16

1

This block will be filled with (1x2048) samples from "Channel 16"

92164
92165
92166

Byte 1

Byte 2

Byte 3

Channel 16

2

92167
92168
92169

Byte 1

Byte 2

Byte 3

Channel 16

3

etc.

Channel 16: sample 4 to sample 2045

98296

98297

98298

Byte 1

Byte 2

Byte 3

Channel 16

2046

98299

98300

98301

Byte 1

Byte 2

Byte 3

Channel 16

2047

98302

98303

98304

Byte 1

Byte 2

Byte 3

Channel 16

2048

98305

Byte 1

Trigger LowByte

1

This block will be filled with (1x2048) samples from the Trigger/Status Channel

98306

Byte 2

Trigger HighByte

98307

Byte 3

StatusByte

98308

Byte 1

Trigger LowByte

2

98309

Byte 2

Trigger HighByte

98310

Byte 3

StatusByte

98311

Byte 1

Trigger LowByte

3

98312

Byte 2

Trigger HighByte

98313

Byte 3

StatusByte

etc.

Trigger/Status Channel: samples 4 to sample 2045

104440

Byte 1

Trigger LowByte

2046

104441

Byte 2

Trigger HighByte

104442

Byte 3

StatusByte

104443

Byte 1

Trigger LowByte

2047

104444

Byte 2

Trigger HighByte

104445

Byte 3

StatusByte

104446

Byte 1

Trigger LowByte

2048

104447

Byte 2

Trigger HighByte

104448

Byte 3

StatusByte

104448

104449

104450

Byte 1

Byte 2

Byte 3

Channel 1

1

This block will be filled with (1x2048) samples from only "Channel 1"

2

104451

104452

104453

Byte 1

Byte 2

Byte 3

Channel 1

2

etc

etc

etc

etc

 

举例:

The header record contains

8 ascii : version of this data format (0)

0

80 ascii : local patient identification

MCH-0234567 F 02-MAY-1951 Haagse_Harry

80 ascii : local recording identification.

Startdate 02-MAR-2002 EMG561 BK/JOP Sony. MNC R Median Nerve.

8 ascii : startdate of recording (dd.mm.yy)

17.04.01

8 ascii : starttime of recording (hh.mm.ss).

11.25.00

8 ascii : number of bytes in header record

768

44 ascii : reserved

EDF+D

8 ascii : number of data records (-1 if unknown)

2

8 ascii : duration of a data record, in seconds

0.050

4 ascii : number of signals (ns) in data record

2

1st signal

2nd signal

ns * 16 ascii : ns * label

R APB

EDF Annotations

ns * 80 ascii : ns * transducer type (e.g. AgAgCl electrode)

AgAgCl electrodes

ns * 8 ascii : ns * physical dimension (e.g. uV)

mV

ns * 8 ascii : ns * physical minimum (e.g. -500 or 34)

-100

-1

ns * 8 ascii : ns * physical maximum (e.g. 500 or 40)

100

1

ns * 8 ascii : ns * digital minimum (e.g. -2048)

-2048

-32768

ns * 8 ascii : ns * digital maximum (e.g. 2047)

2047

32767

ns * 80 ascii : ns * prefiltering (e.g. HP:0.1Hz LP:75Hz)

HP:3Hz LP:20kHz

ns * 8 ascii : ns * nr of samples in each data record

1000

60

ns * 32 ascii : ns * reserved

 参考:EDF specification

EDF+ specification

https://www.biosemi.com/faq/file_format.htm

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/129422.shtml

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

相关文章

C/C++与圆相关的计算 2021年3月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析

目录 C/C与圆相关的计算 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 C/C与圆相关的计算 2021年3月 C/C编程等级考试一级编程题 一、题目要求 1、编程实现 给出圆的半径,求圆的直径、周长…

Required String parameter ‘name‘ is not present

[org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter name is not present] 服务端有参数name,客户端没有传上来

基于顺序表实现的可存储性通讯录!!!

基于顺序表实现的通讯录 通讯录的基本功能 顺序表顺序表的部分变量修改修改处一修改处二修改处三 头文件 Contact.h通讯录自定义结构体 功能实现 源文件 Contact.c读取文件中联系人的信息 void ContactReadFile(contact* pcon)保存到文件 void ContactSave(contact* pcon) 测试…

uniapp小程序砸金蛋抽奖

砸之前是金蛋png图片&#xff0c;点击砸完之后切换砸金蛋动效gif图片&#xff1b; 当前代码封装为砸金蛋的组件&#xff1b; vue代码&#xff1a; <template><view class"page" v-if"merchantInfo.cdn_static"><image class"bg&qu…

Jmeter只能做性能测试吗?

Jmeter除了可以性能测试&#xff0c;还能做接口测试 1、Jmeter和Fiddler&#xff0c;Postman有什么区别? Fiddler&#xff1a;虽然有接口测试功能&#xff0c;很少用来做接口测试。 一般用Fiddle来做抓包和异常测试&#xff0c;辅助接口测试。Postman&#xff1a; 是接口调试…

利用maven的dependency插件分析工程的依赖

dependency:analyze https://maven.apache.org/plugins/maven-dependency-plugin/analyze-mojo.html 分析项目的依赖&#xff0c;确定哪些&#xff1a;用了并且声明了、用了但没有声明、没有使用但声明了。 dependency:analyze可以单独使用&#xff0c;所以它总是会执行test-…

浅谈开口互感器在越南美的工业云系统中的应用

摘 要&#xff1a;分析低压开口式电流互感器的原理&#xff0c;结合工程实例分析开口电流互感器在低压配电系统中&#xff0c;主要是改造项目中的应用及施工细节&#xff0c;为用户快速实现智能配电提供解决方案&#xff0c;该方案具有成本低、投资少、安装接线简便等优点&…

数据库存储引擎和锁

存储引擎&#xff1a; mysal当中数据用各种不同的技术存储在文件中&#xff0c;每一种技术都使用不同的存储机制&#xff0c;索引技巧&#xff0c;锁定水平以及最终提供的不同功能和能力&#xff0c;这些就是我们说的存储引擎。 功能&#xff1a; 1、mysql将数据存储在文件系…

JavaScript基础知识点速通

0 前言 本文是近期我学习JavaScript网课的笔记&#xff0c;一是方便自己速查回忆&#xff0c;二是希望帮到同样有需求的朋友们。 1 介绍 1.1 基本情况 JavaScript是一种编程语言&#xff0c;运行在客户端&#xff08;浏览器&#xff09;上&#xff0c;实现人机交互效果&…

面试知识储备-Vue3篇

1.ref和reactive Vue3为什么推荐使用ref而不是reactive ref: 将内部值包装在特殊对象中&#xff0c;是内部值具有响应性 reactive使对象本身具有响应性 若我们将同样的函数定义为一个方法而不是计算属性&#xff0c;两种方式在结果上确实是完全相同的&#xff0c;然而&#xf…

路由器基础(五): OSPF原理与配置

开放式最短路径优先 (Open Shortest Path First,OSPF) 是一个内部网关协议 (Interior Gateway Protocol,IGP),用于在单一自治系统(Autonomous System,AS) 内决策路由。OSPF 适合小型、中型、较大规模网络。OSPF 采用Dijkstra的最短路径优先算法 (Shortest Pat…

Java高级互联网架构师之路:垃圾回收器的介绍

本文重点 从本文开始我们将开启垃圾回收器的介绍了,我们知道垃圾回收算法是逻辑改变,而垃圾回收器是具体的实现。我们前面介绍的垃圾回收器有7个,本文将在添加三个,但是这三个目前来看不是很常用,我们只了解一下,我们主要还是讲解这7个垃圾回收器。 十个垃圾回收器 目…

nodejs+springboot+elementui+python的Sd球鞋销售平台的设计与实现-毕业设计

此网站系统的开发方式和信息管理方式&#xff0c;借鉴前人设计的信息和研发。以网站商品信息为主&#xff0c;购物商品为核心功能来进行设计和研发&#xff0c;把网站信息和技术整合&#xff0c;开发出一套Sd球鞋销售平台。用目前现有的新技术进行系统开发&#xff0c;提供后台…

HiveSQL中last_value函数的应用

一、背景 在以下数据中如何实现对每一个列按照更新时间取最新的非null值&#xff1f; 1 a a null 202301 202301 1 b b null null 202302 1 null c null null 202303 1 d null null null 202304如何实现…

安装虚拟机后ifconfig不显示IP地址及设置静态IP地址ssh连接

ifconfig不显示IP地址 可以看到ens160并没有显示IP地址&#xff0c;刚刚装好的虚拟机是很干净的&#xff0c;连网卡都没有&#xff0c;我们修改一个配置文件&#xff1a; vim /etc/sysconfig/network-scripts/ifcfg-ens160将文件中的onboot修改为yes&#xff0c;即启动时需不需…

pytorch学习第五篇:NN与CNN代码实例

这篇文章详细介绍了全链接神经网络实现方法,以及卷积的实现方法。最后我们发现,卷积的实现方法与全链接大同小异,因为 torch 为我们做了很多工作,我们来看看这两个有什么区别。 我们使用 torch 框架来实现两种神经网络,来对图形进行分类。 NN 首先我们引入依赖包 impor…

远程设备常用工具:向日葵、Todesk

其实按理说远程工具例如向日葵、Todesk如果是计算机专业、计算机从业者是必须知道的一个东西&#xff0c;但是在大学期间身边知道的人是少之又少的。 向日葵、Todesk工具的优势&#xff1a;方便、快捷、速度快等等我就不过多阐述了 PS:现在我就是在学校用远程写这篇 很多时候…

YOLO V1学习笔记

为什么要学YOLOV1_哔哩哔哩_bilibili 这个视频讲解的很好&#xff0c;建议在看这个之前看看卷积神经网络&#xff0c;会对卷积后的结果理解更加深刻一点。 一 背景 目标检测分为单阶段和两阶段模型。 之前的目标检测DPM、R-CNN、Fast-RCNN、Faster-RCNN都是双阶段模型&…

ElasticSearch集群架构实战及其原理剖析

ES集群架构 为什么要使用ES集群架构 分布式系统的可用性与扩展性&#xff1a; 高可用性 服务可用性&#xff1a;允许有节点停止服务&#xff1b;数据可用性&#xff1a;部分节点丢失&#xff0c;不会丢失数据&#xff1b; 可扩展性 请求量提升/数据的不断增长(将数据分布…