SSPC-Tester/Docs/曲线算法说明文档.md

109 lines
2.7 KiB
Markdown
Raw Permalink Normal View History

2026-07-05 13:33:55 +08:00
# 算法说明文档
## 1. ThresholdV1 阈值算法
上升曲线和下降曲线都使用同一类阈值判断算法:根据名义高电平 `Vhigh` 计算 90% 阈值和 10% 阈值,再在曲线中查找对应的时间点。
核心阈值:
```text
90% 阈值 = Vhigh * R90
10% 阈值 = Vhigh * Rstart
```
在参数模板中:
```text
90% 阈值 = 3.0 * 0.9 = 2.7 V
10% 阈值 = 3.0 * 0.1 = 0.3 V
```
曲线图中显示的两条水平虚线分别对应 90% 阈值线和 10% 阈值线。
## 2. 曲线内标记时间线
### 开启曲线:开启 - 上升
开启曲线用于分析信号从低电平上升到高电平的过程。
```text
低电平 -> 开启起点 T0 -> 上升 -> T90 -> 高电平
```
判断逻辑:
1. 查找信号第一次达到 10% 阈值的位置,作为开启起点 `T0`
2.`T0` 之后继续查找信号第一次达到 90% 阈值的位置,作为 `T90`
3. 计算开启上升时间:
```text
RiseTime = T90 - T0
```
| 标记 | 含义 |
| --- | --- |
| `T0` | 开启起点,信号达到 10% 阈值 |
| `T90` | 信号达到 90% 阈值 |
| `RiseTime` | 开启上升时间 |
### 关断曲线:关断 - 下降
关断曲线用于分析信号从高电平下降到低电平的过程。
```text
高电平 -> 关断起点 Toff -> 下降 -> T10 -> 低电平
```
判断逻辑:
1. 确认曲线中存在高电平区域。
2. 查找信号下降到 90% 阈值的位置,作为关断起点 `Toff`
3.`Toff` 之后继续查找信号下降到 10% 阈值的位置,作为 `T10`
4. 计算关断下降时间:
```text
FallTime = T10 - Toff
```
| 标记 | 含义 |
| --- | --- |
| `Toff` | 关断起点,信号下降到 90% 阈值 |
| `T10` | 信号下降到 10% 阈值 |
| `FallTime` | 关断下降时间 |
## 3. 参数模板
参数固定在代码变量中,模板如下:
```text
Vhigh: 3.0
R90: 0.9
Rstart: 0.1
StableN: 1
Win: 5
Sigma: 300
MedianFilterCheckBox: 5
```
### 参数含义
| 参数 | 模板值 | 含义 |
| --- | --- | --- |
| `Vhigh` | `3.0` | 名义高电平电压 |
| `R90` | `0.9` | 90% 阈值比例 |
| `Rstart` | `0.1` | 10% 阈值比例 |
| `StableN` | `1` | 连续满足阈值的采样点数量 |
| `Win` | `5` | 搜索/判断窗口点数 |
| `Sigma` | `300` | 算法阈值或窗口相关参数,按代码变量固定 |
| `MedianFilterCheckBox` | `5` | 中值滤波窗口点数 |
## 4. 输出字段
| 字段 | 开启曲线含义 | 关断曲线含义 |
| --- | --- | --- |
| `StartIndex` | `T0` 对应采样点索引 | `Toff` 对应采样点索引 |
| `EndIndex` | `T90` 对应采样点索引 | `T10` 对应采样点索引 |
| `T0` | 开启起点时间 | 关断起点时间 |
| `T90` | 上升到 90% 的时间 | 下降到 10% 的时间 |
| `RiseTime` | `T90 - T0` | `T10 - Toff` |