跳转至

说明

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)
  • 需要第二个独立方法做交叉验证