# biosignal **Repository Path**: adadaadadade/biosignal ## Basic Information - **Project Name**: biosignal - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-11-29 - **Last Updated**: 2023-11-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # biosignal 对于生物信号数据整理计算分析的库 ### 需要 - [ ] 高性能 - [ ] 性能测试 对性能有一定要求 - [ ] 多线程 - [ ] 线程安全测试 ## Signal 单通道的信号抽象类 ### 需要 - [ ] 从文件保存和读取? #### 属性 - 采样频率 - 数据类型 问题 - [x] 是否允许 覆写 在尾部添加 - [ ] 修改已有的数据或许不是必要的 而且会导致 iir 等滤波出问题 - [x] 尾部添加还是需要的 - [x] 是否需要添加 change append 回调 - [ ] 如果不支持 覆写 则可以不需要回调 - [ ] length 就可以判断数据是否更新 - [ ] 主要是方便之后的 Calculator 等和显示等 - [ ] 例如一个 Signal 经过 多个 Calculator 生成多个 Signal,是否需要 - [ ] 是否一个用管理器,管理 Calculator 的是否更新?例如 - [ ] 是否可以用布尔标志和轮询代替? - [ ] 坏处 - [ ] 是否允许删除数据 - [x] 会将数据分为一段或两段 - [x] 不允许比较好 - [ ] 之后如果需要在编辑器中进行对于数据的编辑 - [ ] 如果删除一段数据,则将前后同时新建为Signal - [ ] 多个通道之间的问题 - [ ] 开始对齐 - [ ] 长度一致 - [ ] 是否需要将多通道数据抽象出来? - [ ] 多通道信号 分解为 单通道信号 - [ ] 如从文件中读取多通道的实际设备采样信号 - [ ] 单通道信号 合并为 多通道信号 - [ ] 如从文件中读取的多个单通道信号和计算后的单通道信号拼接为一个多通道信号 - [ ] 多个信号前后拼接? - [x] 如果是多通道信号,通道数必须一致 - [ ] **拼接后的信号应该不是 Signal** 因为其中间断开,无法被正常分析 - [ ] 拼接点需要 Event 机制? - [ ] 使用特殊的 Event 对 Analayzer 等做提示 - [ ] 采样频率不同是否可以拼接? - [ ] 采样频率不同是否会导致计算和分析出问题? - [ ] 结合 Event 机制是否能解决 - [ ] 数据类型不同是否可以拼接? ## Sample 用 Sample 来解决多通道单通道的问题? 包含 - 设备硬件采样得到的 Signal - Calculator 及 连接方式 及计算得到的 各种 Signal - EventSeries Sample 用来管理设备的采样得到的 Signal 及计算之后的 Signal 及 Calculator 及其连接方式 及 EventSeries 一个 Sample 为一束 Signal 的合集包含表示一次设备采样 Signal 及 计算后得到的 Signal ### 需要 - [ ] 保存和读取 - [ ] 默认的文件格式主要用于保证性能 而 其他的文件格式主要用于导入导出 - [ ] 默认的文件格式主要保证可以持续长时间的进行流式输入 - [ ] 计算默认的数据格式所需的 - [ ] 保存为单文件? - [ ] 保存为多文件? - [ ] 支持多种保存格式 DataFrame? ## Calculator 信号计算器 - 类似函数 输入 多个Signal => 输出 一个Signal - 可调节参数 问题 - [ ] 输出的信号和输入的信号是否 - [ ] 多通道对齐 - [ ] 长度不变化 - [ ] IIR 等需要持续计算的滤波算法问题? - [ ] Calculator 的参数如果变更可能导致数据变化 - [ ] 之后会需要将该条路径之后的 Signal 全都更新一遍。。。 - [ ] 是否需要 write 和 change 的回调函数? ## Analyzer 信号分析器 - 输入 Signal => 输出 分析结果(字典) - 可调节参数 ## Event 事件,打在 Signal 时间轴上 ### 作用 - 标记采样开始采样结束? - 刺激标记? ### 实现方式 - 一个 Sample 中 Event 的 id 只增不减,每次新增 id 则 在 Sample 中添加事件 Signal, 每一个点的数值为之前最近发生的 Event 的 id 号, ### 问题 - [ ] 同一个下标是否允许有多个 Event - [ ] 如何实现 - [ ] - [ ] 查找性能问题 - [ ] 多通道拼接之后的问题? - [ ] 如何实现存储 - [ ] 如何和信号连接? - [ ] 作为 信号 的额外通道?例如通常全 0, 大于 1 的数为 event 标号 - [ ] 和信号同文件存储? - [ ] mmap 文件的 metadata 大小有限制 - [ ] 和信号分开存储? - [ ] ## 分析管理器 向用户给出设定好的信号类型,用户通过