1. 从两个挨得很近的脉冲说起:为什么肉眼判断一定会翻车
做嵌入式信号采集或者设备状态监测的人,迟早会撞上这个场景:示波器上两个脉冲靠得非常近,近到你眯着眼睛看半天,也说不清它到底是“同一个物理事件产生的振铃”,还是“两个真实发生的独立事件”。我最早踩这个坑是在做一套脉冲计数方案的时候,现场反馈计数偶尔偏多,我把波形抓回来一看,两个尖峰之间大概隔了几十微秒,肉眼判断像是振铃,但系统却把它记成了两次事件。后来把判定窗和恢复时间这两个参数认真算了一遍,才发现问题根本不在“眼睛”,而在于我压根没有用一套可复现的规则去区分它们。
这个问题的本质,其实是信号完整性判断和事件判定逻辑的交叉地带。脉冲挨得近,可能是真实的双脉冲,也可能是单脉冲经过传输线、驱动器、长线缆之后产生的振铃、反射、回勾。你如果只靠肉眼看波形,采样率不够会混叠,探头带宽不够会平滑,触发方式不对还会把振铃当成新触发。所以标题里那句话说得非常到位:判定窗和恢复时间不能凭肉眼。判定窗决定了“多近的两个沿算同一次事件”,恢复时间决定了“系统在响应一次事件之后,多久才允许响应下一次”。这两个参数定错了,计数、报警、状态机切换全会跟着错。
这篇文章我打算把这件事从头到尾拆开讲清楚。适合谁看?做PLC脉冲采集的、做称重传感器采样的、做双脉冲测试的、做理疗脉冲设备状态判定的,以及任何需要把“波形”翻译成“事件”的工程师。我会讲清楚判定窗怎么算、恢复时间怎么定、采样率怎么选、振铃怎么识别,还会给出一套可以直接抄的判定流程和参数表。核心关键词判定窗、恢复时间、脉冲、振铃、采样率会贯穿全文,但我不会堆砌,而是让它们出现在真正需要它们的地方。
先说一个最容易被忽略的前提:你看到的波形,不等于真实信号。示波器上的那条线,是探头、前端放大、ADC采样、触发、插值共同作用的结果。两个脉冲挨得近,如果采样率只有信号最高频率的两倍出头,你看到的“两个峰”可能是一个峰被采样点切出来的假象;反过来,如果探头带宽不足,真实的两个窄脉冲会被抹成一个宽包,你又会误判成一次事件。所以讨论判定窗和恢复时间之前,必须先把采样链路这件事说透,否则后面所有参数都是空中楼阁。
2. 判定窗与恢复时间到底是什么:把“感觉”变成“规则”
2.1 判定窗:给“同一次事件”划一条时间边界
判定窗,英文里常叫 decision window 或者 event window,我更喜欢把它理解成“事件合并窗口”。它的作用非常直白:当系统检测到一个有效边沿之后,在接下来的这段时间内,即使又检测到新的边沿,也不把它当成新事件,而是认为它属于同一次事件的后续振荡。这个窗口的长度,就是判定窗。
举个具体例子。假设你用PLC的高速计数口采集一个接近开关的脉冲,开关动作本身是干净的,但线缆有十几米,驱动器输入阻抗又不匹配,于是每次动作之后都会跟着两三个振铃。如果你把判定窗设成0,那么每个振铃沿都会被计数,一次动作可能被记成三四次。如果你把判定窗设成比振铃持续时间略长一点,比如振铃在200微秒内衰减完,你把判定窗设成300微秒,那么这300微秒内的所有沿都被合并成一次事件,计数就对了。
判定窗设多长,不是拍脑袋。它取决于三个东西:振铃的持续时间、真实双脉冲的最小间隔、以及系统允许的最大事件频率。这三个条件经常互相打架。振铃要你设长,真实双脉冲要你设短,最大事件频率也要求你设短。所以判定窗的本质是一个折中,而这个折中必须用数据支撑,不能靠肉眼。
2.2 恢复时间:系统“缓过劲来”需要多久
恢复时间,recovery time,指的是系统在完成一次事件判定之后,需要多长时间才能重新进入可触发状态。它和判定窗容易混淆,但作用不同。判定窗是“把后续振荡合并进来”,恢复时间是“在这段时间内我干脆不响应任何新事件”。你可以把判定窗理解成“事件的一部分”,把恢复时间理解成“事件之后的强制冷静期”。
为什么需要冷静期?因为有些信号在事件结束后还会有一段不稳定的尾巴,比如传感器回弹、电源跌落恢复、比较器迟滞释放。如果你不等这段尾巴过去就重新武装触发,系统会在尾巴上误触发。恢复时间就是用来盖住这段尾巴的。
恢复时间和判定窗可以重叠,也可以不重叠。常见做法是:判定窗从第一个有效沿开始计时,恢复时间从最后一个被合并的沿开始计时。如果振铃很长,恢复时间可能被判定窗完全覆盖;如果振铃短但系统本身恢复慢,恢复时间就要单独设长。这两个参数必须分开配置,不能用一个值糊弄过去。
2.3 两者和采样率的关系:采样率是地基
采样率决定了你“能看见多细的东西”。奈奎斯特说采样率要大于信号最高频率的两倍,但那是理论下限,实际做事件判定,我一般要求采样率至少是信号最高有效频率的5到10倍。原因很简单:你要判断两个沿是不是分开的,至少要在它们之间采到足够的点,否则两个沿在采样后可能变成同一个点,或者变成一个斜坡。
假设你的脉冲最窄宽度是10微秒,振铃频率大概100千赫兹。100千赫兹的周期是10微秒,按10倍采样率算,你需要1兆样本每秒。如果你只用100千样本每秒,每个振铃周期只采一个点,你根本看不出振铃的形状,更别说区分它和真实脉冲了。所以判定窗和恢复时间的精度,直接受限于采样率。采样率不够,你设的判定窗就是一个模糊的估计值,今天能用,换个工况就翻车。
这里有个经验公式可以记:判定窗的最小可分辨精度约等于采样周期的2到3倍。也就是说,如果你采样率是1兆样本每秒,采样周期1微秒,那么判定窗的调节精度大概在2到3微秒。你要设一个300微秒的判定窗,精度足够了;但你要设一个5微秒的判定窗,那就很勉强,需要更高采样率。
3. 振铃到底长什么样:识别它才能干掉它
3.1 振铃的三种典型来源
振铃不是一种东西,它至少有三种常见来源,识别方式也不一样。
第一种是传输线反射振铃。信号沿长线缆传播,末端阻抗不匹配,能量反射回来,形成一串衰减振荡。这种振铃的频率由线缆长度和传播速度决定,通常频率较高,衰减较慢,持续时间可能从几微秒到几百微秒。它的特点是第一个振铃峰紧跟在主沿后面,间隔等于往返传播时间。
第二种是驱动器和负载的LC振铃。比如MOS管驱动感性负载,关断时电感和寄生电容形成振荡。这种振铃频率由L和C决定,通常在几十千赫兹到几兆赫兹,衰减取决于回路电阻。它的特点是振铃幅度可能很大,甚至超过主脉冲,容易误触发。
第三种是比较器或运放的迟滞释放振铃。信号在阈值附近抖动,比较器输出反复翻转。这种振铃频率取决于输入信号的噪声和迟滞宽度,通常表现为一串密集的窄脉冲,看起来像“毛刺”。它的特点是幅度接近逻辑电平,但宽度很窄,容易被高速计数口捕获。
三种振铃的判定策略不同。传输线反射振铃适合用判定窗合并;LC振铃可能需要硬件吸收加判定窗;比较器振铃则应该先做硬件滤波或软件消抖,再谈判定窗。你不能指望一个判定窗解决所有问题。
3.2 用采样数据区分振铃和真实双脉冲
真实双脉冲和振铃的区别,核心在于物理机制不同,所以时间关系不同。真实双脉冲的两个沿,间隔由外部事件决定,可以是任意值,但通常不会小到和振铃周期一个量级。振铃的峰间隔,由电路参数决定,非常稳定,而且幅度逐次衰减。
所以你可以用两个特征来区分:间隔稳定性和幅度衰减规律。如果两个峰之间的间隔每次都一样,而且第二个峰幅度明显小于第一个,那大概率是振铃。如果间隔变化,幅度也不遵循衰减规律,那可能是真实双脉冲。
但这两个特征都需要采样数据支撑。你至少要在两个峰之间采到5个以上的点,才能估计间隔和幅度。这就是为什么采样率是地基。采样率不够,你连特征都提取不出来,只能靠肉眼,而肉眼在几十微秒尺度上非常不可靠。
3.3 一个实测案例:从误计数到稳定判定
我拿之前那套脉冲计数方案做个复盘。信号是接近开关输出,经过15米屏蔽线进PLC高速计数口。原始波形在示波器上看,主沿后面跟着三个明显的振铃峰,峰间隔大约8微秒,幅度依次递减。肉眼判断,这三个峰是振铃,不是真实事件。
但PLC计数偶尔偏多。我把采样率从100千样本每秒提到1兆样本每秒,重新抓波形,发现振铃峰间隔其实是8微秒左右,但第一个振铃峰的上升沿有时候会被计数口识别成新事件。原因是我当时的判定窗设成了5微秒,比振铃峰间隔还短,所以第一个振铃峰逃出了判定窗。
后来我把判定窗改成30微秒,覆盖三个振铃峰,恢复时间设成50微秒,确保振铃完全衰减后再重新武装。计数立刻稳定了。这个案例说明:判定窗必须大于振铃持续时间,而不是大于振铃峰间隔。振铃持续时间是第一个峰到最后一个可识别峰的时间,我这里是大约24微秒,所以30微秒的判定窗刚好覆盖。
4. 判定窗怎么算:一套可复现的参数推导流程
4.1 第一步:测出振铃持续时间
不要猜,去测。把设备置于最恶劣工况,用足够高的采样率抓取单次事件的完整波形。找到主沿之后最后一个幅度超过噪声底的振铃峰,量出主沿到该峰的时间,这就是振铃持续时间。为了保险,再乘以1.5到2的裕量。
比如你测出来振铃持续24微秒,裕量取1.5,判定窗至少36微秒。我一般取整到40微秒或50微秒,方便配置。
4.2 第二步:确认真实双脉冲的最小间隔
这是判定窗的上限。如果真实双脉冲最小间隔是100微秒,判定窗就不能超过100微秒,否则两个真实事件会被合并成一个。你需要从系统需求里拿到这个值,或者从历史数据里统计出来。
如果振铃持续时间和真实双脉冲最小间隔冲突,比如振铃要40微秒,双脉冲最小间隔只有30微秒,那说明硬件设计有问题,振铃太长了。这时候应该先改硬件,比如加终端匹配、加RC吸收、缩短线缆,而不是硬调判定窗。
4.3 第三步:结合采样率确定可调精度
判定窗的配置精度受采样率限制。如果你采样率是1兆样本每秒,采样周期1微秒,判定窗可以按1微秒步进调。如果你采样率是100千样本每秒,采样周期10微秒,判定窗只能按10微秒步进调,设40微秒和50微秒差别不大,但设35微秒就做不到。
所以选采样率的时候,要反推你需要多细的判定窗。公式很简单:采样率 ≥ 1 / (判定窗精度要求)。你要5微秒精度,采样率至少200千样本每秒;你要1微秒精度,采样率至少1兆样本每秒。实际还要考虑奈奎斯特,所以再乘5到10倍。
4.4 第四步:留出恢复时间的独立裕量
恢复时间从最后一个被合并的沿开始算。如果判定窗已经覆盖了振铃,恢复时间可以设得短一些,比如判定窗的20%到50%,用来盖住系统本身的恢复尾巴。如果判定窗没有完全覆盖振铃,恢复时间就要补上剩余部分。
我通常的做法是:恢复时间 = 判定窗 × 0.5,然后实测调整。如果发现还有漏触发,就加大恢复时间;如果发现响应太慢,就减小。但恢复时间不能小于系统的最小响应周期,否则会丢真实事件。
5. 采样率选型:别让ADC成为瓶颈
5.1 采样率、带宽、分辨率的三方博弈
选采样率不是越高越好。高采样率意味着更大的数据量、更高的功耗、更贵的ADC。你要在采样率、模拟带宽、分辨率之间做平衡。
模拟带宽决定了你能看到多快的沿。如果ADC前端带宽只有100千赫兹,你采样率再高,看到的也是被平滑过的波形。所以带宽要匹配信号最高频率,采样率要匹配带宽。经验规则:采样率 ≥ 2.5 × 模拟带宽,对于事件判定,建议采样率 ≥ 5 × 信号最高有效频率。
分辨率影响你能否区分小幅度振铃和噪声。12位ADC在5伏量程下,最小分辨约1.2毫伏。如果振铃幅度只有几毫伏,12位可能不够,需要考虑16位或加前端放大。
5.2 不同场景的采样率推荐
| 场景 | 信号最高有效频率 | 推荐采样率 | 判定窗精度 |
|---|---|---|---|
| PLC高速计数 | 10 kHz | 100 kSPS | 20 微秒 |
| 称重传感器HX711 | 10 Hz 或 80 Hz | 10 SPS 或 80 SPS | 不适用 |
| 双脉冲测试 | 1 MHz | 10 MSPS | 0.2 微秒 |
| 理疗脉冲监测 | 100 kHz | 1 MSPS | 2 微秒 |
| 伺服驱动器脉冲 | 200 kHz | 2 MSPS | 1 微秒 |
这张表是我根据常见实践整理的,不是绝对标准。比如HX711那行,它的采样率是10赫兹或80赫兹,本身就不是用来做微秒级事件判定的,它的判定窗概念更接近“稳定时间”,和脉冲振铃不是一回事。但热词里出现了HX711,我顺带说明:如果你用HX711做称重,采样率选10赫兹还是80赫兹,取决于你需要多快的响应。80赫兹响应快,但噪声大;10赫兹噪声小,但响应慢。这又是另一个维度的折中。
5.3 采样率不足时的补救措施
如果硬件已经定了,采样率不够,怎么办?三个办法。
第一,模拟前端加低通滤波,把高频振铃滤掉,只保留主脉冲。这样采样率要求降低,但会损失真实高频事件。
第二,用峰值检测或比较器硬件消抖,在模拟域就把振铃合并掉,ADC只采处理后的信号。
第三,软件插值,用已知的振铃频率模型去拟合采样点,估计真实沿位置。但这招对模型准确性要求高,不适合通用场景。
我一般优先推荐第一和第二种,因为它们在信号链前端解决问题,不依赖后期算法。
6. 实操流程:从抓波形到参数固化
6.1 抓取原始波形
先把设备置于最恶劣工况,用示波器或高速采集卡抓取单次事件的完整波形。采样率按上一节推荐值设置,记录长度要覆盖事件前10%和事件后200%的判定窗时间。触发方式用上升沿触发,触发电平设在主沿幅度的50%。
抓波形的时候要注意:探头地线要短,否则地线环路会引入额外振铃。我见过有人用长地线抓波形,结果看到的振铃其实是探头地线自己产生的。所以先确认你的测量系统本身不产生振铃,再去分析信号。
6.2 标注主沿和振铃峰
把数据导入分析工具,标注第一个超过阈值的主沿,然后逐个标注后续振铃峰。记录每个峰的相对时间和幅度。如果峰间隔稳定、幅度递减,判定为振铃;如果间隔跳变、幅度无规律,判定为真实双脉冲。
这一步最好用脚本自动化,避免人工标注误差。Python里用scipy.signal.find_peaks就可以,设置合适的height和distance参数。
import numpy as np from scipy.signal import find_peaks # 假设 data 是采样数据,fs 是采样率 peaks, props = find_peaks(data, height=threshold, distance=min_distance_samples) peak_times = peaks / fs peak_amps = props['peak_heights'] # 计算峰间隔 intervals = np.diff(peak_times) print("峰间隔:", intervals) print("峰幅度:", peak_amps)6.3 计算判定窗和恢复时间
根据振铃持续时间和真实双脉冲最小间隔,按第4节的流程计算判定窗。恢复时间先设成判定窗的一半,然后实测调整。
把参数写入配置文件或固件,重新跑一遍现场数据,统计误计数和漏计数。如果误计数多,加大判定窗或恢复时间;如果漏计数多,减小判定窗或恢复时间。反复迭代,直到两个指标都满足要求。
6.4 固化参数并做边界测试
参数确定后,要做边界测试。包括:最高事件频率、最低事件频率、最大振铃工况、最小真实双脉冲间隔。每个边界都要跑足够长时间,确认没有异常。
我一般会做一个简单的测试台,用信号发生器产生可控的双脉冲和振铃组合,扫参数空间,记录误判率。这样比在现场碰运气靠谱得多。
7. 常见问题与排查技巧实录
7.1 为什么我设了判定窗还是误计数
最常见的原因是判定窗没有覆盖全部振铃。你以为振铃在30微秒内结束,实际上最后一个峰在50微秒才降到噪声底以下。解决办法:把判定窗加大到振铃持续时间的2倍,再实测。
第二个原因是恢复时间太短。判定窗结束后,系统立刻重新武装,结果振铃尾巴还在,又触发一次。解决办法:恢复时间至少覆盖判定窗结束后的残余振荡。
第三个原因是采样率不够,振铃峰在采样后变成了一个宽包,判定窗逻辑无法正确识别。解决办法:提高采样率或加模拟滤波。
7.2 判定窗和恢复时间能不能设成一样
可以,但不推荐。判定窗和恢复时间的作用不同,设成一样会限制灵活性。比如振铃很短但系统恢复慢,你需要恢复时间大于判定窗;振铃很长但系统恢复快,你需要判定窗大于恢复时间。分开设,才能各自优化。
7.3 真实双脉冲和振铃同时存在怎么办
这是最难的场景。真实双脉冲间隔可能和振铃峰间隔重叠,单靠时间窗无法区分。这时候需要引入其他特征,比如幅度衰减规律、脉冲宽度、上升沿斜率。如果真实双脉冲的幅度和宽度与振铃不同,可以用多特征联合判定。
如果特征也重叠,那就只能改硬件,比如缩短线缆、加匹配电阻、提高信号幅度,让振铃和真实脉冲在物理层就分开。
7.4 常见问题速查表
| 现象 | 可能原因 | 排查方法 | 解决措施 |
|---|---|---|---|
| 计数偏多 | 判定窗太短 | 抓波形看振铃持续时间 | 加大判定窗 |
| 计数偏多 | 恢复时间太短 | 看判定窗结束后是否有残余振荡 | 加大恢复时间 |
| 计数偏少 | 判定窗太长 | 看真实双脉冲是否被合并 | 减小判定窗 |
| 计数偏少 | 恢复时间太长 | 看高速事件是否被屏蔽 | 减小恢复时间 |
| 波形有毛刺 | 采样率不足 | 提高采样率对比 | 提高采样率或加滤波 |
| 振铃幅度异常 | 探头地线太长 | 换短地线探头 | 修正测量方法 |
| 双脉冲无法区分 | 特征重叠 | 分析幅度和宽度 | 改硬件或加多特征判定 |
7.5 几个我踩过的坑
第一个坑:用示波器的自动测量功能量振铃持续时间。示波器自动测量有时候会把噪声当成峰,量出来的时间偏大。我后来都手动标注,或者用脚本处理原始数据。
第二个坑:忽略温度对振铃的影响。有些电路的振铃频率和幅度随温度变化,常温下调好的判定窗,高温下可能不够。所以边界测试要覆盖温度范围。
第三个坑:把判定窗设成固定值。不同批次的传感器、不同长度的线缆,振铃特性可能不同。如果产品要适配多种现场,判定窗最好做成可配置的,或者加自适应算法。
第四个坑:忘记考虑电源干扰。5伏电源和5伏脉冲互不干扰这件事,说起来容易做起来难。电源上的开关噪声会耦合到脉冲信号上,形成额外毛刺。解决办法是电源加LC滤波,脉冲信号走独立地线。
8. 从脉冲判定延伸到系统级可靠性
8.1 判定窗和恢复时间在系统可靠性里的位置
你可能觉得判定窗和恢复时间只是两个小参数,但它们直接影响系统的计数准确性、报警及时性和状态机稳定性。计数错了,产量统计就错了;报警晚了,故障就扩大了;状态机抖了,设备就频繁启停。所以这两个参数不是“调调就行”,而是需要认真设计和验证的。
我习惯把它们纳入系统的可靠性指标。比如数据库备份有RPO不超过24小时、核心业务恢复有RTO不超过4小时,这些是系统级的时间目标。脉冲判定的判定窗和恢复时间,就是信号级的时间目标。逻辑是一样的:用明确的时间边界,把模糊的“感觉”变成可验证的“规则”。
8.2 脉冲值不匹配报警的设计思路
热词里提到“脉冲值不匹配报警”,这其实是一个很好的应用场景。系统期望收到一定数量的脉冲,实际收到的数量不匹配,就报警。但如果判定窗和恢复时间没调好,实际收到的数量本身就不准,报警就会误报或漏报。
我的做法是:先确保脉冲计数准确,再设报警阈值。报警阈值要有滞回,比如期望100个脉冲,实际95到105之间不报警,低于95或高于105才报警。滞回宽度根据判定窗的精度来定,判定窗精度越高,滞回可以越窄。
8.3 双脉冲测试中的判定窗应用
双脉冲测试是功率器件动态特性测试的常用方法。两个脉冲之间的间隔是人为设定的,用来模拟不同工况。这里的判定窗主要用来区分“真实的第二个脉冲”和“第一个脉冲的振铃”。因为双脉冲测试的间隔通常远大于振铃持续时间,判定窗可以设得比较宽松,比如振铃持续时间的3到5倍。
但要注意:双脉冲测试的第二个脉冲可能很窄,如果判定窗太长,第二个脉冲可能被合并掉。所以判定窗要小于第二个脉冲的预期最小间隔。
8.4 理疗脉冲设备的特殊考虑
理疗脉冲设备的脉冲频率通常较低,几十赫兹到几千赫兹,但脉冲波形可能有振铃。这里的判定窗主要用来防止一次理疗脉冲被记成多次。因为频率低,判定窗可以设得相对宽松,但恢复时间要考虑人体安全,不能因为判定逻辑错误导致输出异常。
理疗设备的脉冲判定通常还有硬件保护电路,软件判定窗只是辅助。所以参数设置要以硬件保护为准,软件判定窗不能覆盖硬件保护的动作时间。
9. 一套可以直接抄的判定流程
9.1 硬件准备清单
- 示波器或高速采集卡,采样率至少1 MSPS,带宽至少100 MHz
- 短地线探头,或者差分探头
- 信号发生器,用于产生可控双脉冲和振铃
- 目标设备,置于最恶劣工况
9.2 软件判定伪代码
# 参数配置 DECISION_WINDOW = 40e-6 # 判定窗 40 微秒 RECOVERY_TIME = 20e-6 # 恢复时间 20 微秒 THRESHOLD = 0.5 # 触发电平,归一化 # 状态变量 last_event_time = -inf armed = True def process_sample(sample, timestamp): global last_event_time, armed if not armed: if timestamp - last_event_time > RECOVERY_TIME: armed = True return None if sample > THRESHOLD: if timestamp - last_event_time > DECISION_WINDOW: # 新事件 last_event_time = timestamp armed = False return "EVENT" else: # 判定窗内,合并到上一次事件 last_event_time = timestamp return None return None这段伪代码的核心逻辑是:判定窗内不产生新事件,判定窗结束后如果还在恢复时间内也不产生新事件,恢复时间结束后才重新武装。你可以根据实际采样率和信号特性调整参数。
9.3 参数验证记录表
| 测试项 | 测试条件 | 期望结果 | 实际结果 | 结论 |
|---|---|---|---|---|
| 单脉冲计数 | 单次事件,有振铃 | 计数1 | 计数1 | 通过 |
| 双脉冲计数 | 间隔100微秒 | 计数2 | 计数2 | 通过 |
| 双脉冲计数 | 间隔30微秒 | 计数2 | 计数1 | 判定窗太长 |
| 高频事件 | 1千赫兹 | 计数1000 | 计数1000 | 通过 |
| 振铃工况 | 最长线缆 | 计数1 | 计数1 | 通过 |
这张表是我实际项目里用过的,你可以根据自己的场景调整测试项。关键是每个边界都要测,不能只测正常工况。
10. 最后分享几个实操心得
第一个心得:判定窗和恢复时间要写成可配置参数,不要硬编码。现场工况千变万化,硬编码的参数换个现场就可能失效。我现在的做法是把这两个参数放在配置区,支持通过上位机或拨码开关调整。
第二个心得:采样率选型要留裕量。你算出来需要1 MSPS,实际选2 MSPS。因为现场可能有高频干扰,裕量能让你在调试时有更多空间。
第三个心得:振铃不是敌人,误判才是。有些振铃无法消除,也不需要消除,只要判定逻辑能正确合并它就行。不要为了消除振铃把信号本身也滤掉了。
第四个心得:多特征联合判定比单靠时间窗更可靠。如果条件允许,结合幅度、宽度、斜率一起判断,误判率会大幅下降。
第五个心得:测试台比现场调试高效十倍。用信号发生器产生可控波形,扫参数空间,记录误判率,比在现场碰运气快得多。我现在的项目都会先搭测试台,参数确定后再上现场。
这个内容后续还可以这样扩展:把判定窗和恢复时间做成自适应算法,根据实时振铃特性自动调整;或者把判定逻辑做成IP核,在FPGA里硬件实现,做到微秒级响应。如果你在做类似的项目,欢迎交流你的判定窗是怎么定的。