You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

消除ASK解调环节低通滤波器传递函数引入的0.01ms延迟求助

Hey, let's tackle this ASK demodulation delay issue you're facing in Simulink! That ~0.01ms lag from your low-pass filter is definitely annoying, especially when you need tight timing for bit decisions. Let's go through targeted fixes based on what you've already tried and Simulink's built-in tools:

1. 替换传递函数滤波器为低延迟替代方案

你当前使用的连续域传递函数滤波器(G(s) = 1000/(s + 1000),即你提供的滤波器参数)本身会引入固有相位延迟,单纯提高截止频率可能无法完全消除延迟——这是因为连续滤波器和系统采样率的匹配逻辑限制了效果。试试这些替代方案:

  • 线性相位FIR滤波器:换成Simulink中的Discrete Filter模块,配置为FIR类型。FIR滤波器可设计为线性相位特性,所有频率分量的延迟量完全一致(群延迟固定),之后你可以在链路中用Delay模块精准补偿这个固定延迟,彻底消除滞后。
  • 比特对齐的滑动均值滤波:既然你处理的是固定比特周期的ASK信号(你提到了0.5ms/1.5ms的窗口),可以用和比特率同步的滑动均值替代传统低通滤波。比如对每个0.5ms的判决窗口内的信号取均值,既能平滑噪声,又不会引入无法补偿的额外延迟,还能完美对齐比特时序。

2. 优化你尝试的判决保持子系统

你之前搭建的基于阈值和时间窗口的判决保持方案没成功,大概率是时序触发或锁存逻辑的细节没处理到位。这里给你调整后的实现思路:

  • 生成精准的比特时序触发信号:用Simulink的Clock模块跟踪时间,搭配Relational OperatorTimer模块,为每个比特划分两个窗口:0-0.5ms的判决窗口(用于采样信号)和0.5-1.5ms的保持窗口(用于锁定输出)。
  • 正确锁存判决结果:使用Set-Reset Flip-Flop模块:
    • 在判决窗口内,当信号超过0.5e-6时将触发器置1,低于0.05e-6时置0
    • 在保持窗口内,用Switch模块切断触发器的输入通路,锁定当前输出值
  • 补偿残留滤波延迟:如果仍需保留滤波环节,计算出0.01ms的精确延迟量,将判决窗口提前对应时长(比如从0.01ms开始而非0ms),让采样信号和比特时序完美对齐。

3. 高信噪比场景下直接跳过滤波环节

如果你的接收ASK信号信噪比足够高,完全可以省去滤波环节,彻底规避延迟:

  • Comparator模块设置双阈值(0.05e-60.5e-6),在每个比特周期的中点时刻采样判决(如果有比特同步信号的话用它触发采样),既能保证判决准确性,又完全没有滤波带来的延迟。

(注:你提供的解调链路是标准ASK结构:载波相乘→滤波→判决,以上调整均针对引入延迟的滤波环节精准优化)


内容的提问来源于stack exchange,提问作者Sam Al-Ghammari

火山引擎 最新活动