说明¶
ITD — Ibrahim Time Domain:逐对通道建 AR 模型
对每一对传感器通道,建立自回归(AR)模型提取候选模态参数,然后对所有候选进行聚类投票。能检出 SVD 方法遗漏的弱激发模态。
算法直觉¶
为什么 ITD 能抓到弱模态?¶
FDD/ERA 这类基于 SVD 的方法,本质是找"能量最大"的成分。如果一个模态在结构中能量很弱(比如高阶局部模态),SVD 可能把它当作噪声丢掉。
ITD 两两通道处理:即使这个模态在全局信号中很弱,只要在某对通道之间有可检测的相关性,它就会被 AR 模型捕捉到。这就是"逐对 + 投票"的威力。
怎么做?¶
对每对通道 (a,b):
计算相关矩阵 R₀, R₁
建 4×4 系统矩阵 A
求 A 的特征值 → 候选频率/阻尼
↓
收集所有候选(10 通道 → 45 对 × 4 个 = 180 个候选)
↓
聚类:10% 容差内至少 2 票 → 接受
算法流程¶
1. NExT 互相关:R₀ = X·Xᵀ/N, R₁ = X_delayed·Xᵀ/N
2. 对每对通道 (a,b):
├─ M1[4×nc], M2[4×nc](不同延迟构建)
├─ T = M1·M1ᵀ, A = M2·T⁻¹·M1(4×4 系统矩阵)
└─ eig(A) → 4 个候选(f, ζ)
3. 聚类:10% 容差,最小 2 票
4. 取聚类中心作为最终模态
设计详解¶
1. sn=4 的意义¶
自回归阶数 sn=4 意味着每个通道对构造一个 4×4 系统矩阵,对应最多 2 个复模态对(每对包含频率+阻尼)。
为什么 4 不是 2 或 8? - sn=2 → 只能捕获 1 个模态,对多模态系统不够 - sn=4 → 捕获 2 个模态,覆盖典型场景(结构前 2 阶足够) - sn=8 → 矩阵变大,小样本时过拟合严重,候选质量下降
2. 逐对 vs 全局方法¶
| 逐对(ITD) | 全局(所有通道一起) | |
|---|---|---|
| 矩阵大小 | 4×4 | (nch×sn)×(nch×sn) = 20×20 |
| 求逆难度 | 解析可逆 | 数值不稳定,需正则化 |
| 弱模态 | 可检出 | 被强模态淹没 |
| 候选数 | nch·(nch-1)/2 × sn = 40 | 1×sn = 4 |
弱模态检测能力是 ITD 最独特的优势,来自逐对解构的投票机制。
3. 阻尼高估问题¶
代码中阻尼仅用于频率配对,不作为最终输出。为什么阻尼不可靠? - AR 模型本质是"最差情况"估计——它假设所有能量都由 AR 过程解释 - 噪声能量被强行拟合为阻尼(高估 2-10×) - 不同通道对的阻尼估计方差极大,投票也无法改善
4. 边缘计算 WDT 处理¶
#ifdef CONFIG_ESP_TASK_WDT
// 禁用看门狗:ITD 可能运行 > 10s(5ch×3000 点约 2-5s)
esp_task_wdt_config_t wdt_cfg = { .timeout_ms = 60000, ... };
esp_task_wdt_reconfigure(&wdt_cfg);
#endif
ITD 是最耗时的 OMA 方法(长互相关 + 逐对 AR + 聚类),需要临时禁用 WDT。
特点¶
-** 强项** :弱模态检测能力最强 -** 弱项** :阻尼比通常高估 2-10 倍,不可信 -** 适用** :作为 SVD 方法的补充交叉验证
何时使用 ITD¶
- 怀疑 SVD 方法遗漏了某些模态
- 数据较短(≥ 500 点即 10s)
- 需要第二个独立方法做交叉验证