You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

离散滤波器Bode图结果异常,请求排查问题原因

问题分析与解决方案

核心问题1:设计逻辑与代码实现不匹配

你描述的设计是“一个滤波器乘以0.5,另一个进行z^-1延迟”,但代码中实际实现的是:

  • 对FIR1做z^-1延迟(H_1 = FIR1 * tf(1, [1 0], Ts))
  • 对FIR2做0.5倍缩放(H_2 = 0.5 * FIR2)

如果你的设计意图是对FIR2延迟、对FIR1缩放,那么代码的操作对象完全搞反了,这会直接导致传递函数和Bode图与预期不符。

核心问题2:手动计算传递函数时的阶数对齐错误

两个FIR滤波器的抽头数不同,延迟操作后需要严格对齐z的负幂次:

  • FIR1是6抽头,乘以z-1后,所有项延迟1个采样,传递函数的z0项为0,z-1到z-6项对应原FIR1的z0到z-5系数
  • FIR2是7抽头,缩放后保留完整的z0到z-6项

相减时必须逐一对齐同幂次的系数:

H_diff(z) = (H1_z0 - H2_z0) + (H1_z-1 - H2_z-1)z^-1 + ... + (H1_z-6 - H2_z-6)z^-6

如果手动计算时忽略了H_1的z0项为0,或者没有对齐每个z-k的系数,就会得到错误的传递函数。

验证与调试方法

在Matlab中直接打印H_diff的分子系数,和手动计算结果对比:

disp('H_diff的分子系数(z^0到z^-6):');
disp(H_diff.num{1});

通过对比可以快速定位系数对齐的问题,也能验证设计逻辑是否和代码一致。

内容的提问来源于stack exchange,提问作者hajo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 22:06:05