一阶低通滤波器的仿真与理论

信息处理 低通滤波器 Python
2022-01-26 21:38:51

我正在尝试自学一些信号处理和控制理论。我目前正在学习本教程。我已经启动了一个ipython 笔记本来保存我的笔记。

不幸的是,我第一次模拟一个简单的一阶低通滤波器时出了点问题。微分方程是

x˙=ω0(ux)
在哪里u(t)是正弦输入。我的理解是这个系统是用传递函数来描述的:
G(s)=x(s)u(s)=11+s/ω0
我有兴趣使用这个传递函数来计算幅度和相位滞后x(t). 为此,我们评估Gs=iω
|G(iω)|=|x(t)||u(t)|=11+ω2/ω02
argG(iω)=phase lag=tan1ωω0
上述等式是否正确?我对它们的解释正确吗?因为当我在 python 中对上述微分方程进行数值模拟时,得到的结果不一致。特别是,蓝点和红点应该与我的情节中的黑线对齐换句话说,我无法在本教程中重现图 3

颂歌是如此简单,我不明白我怎么会搞砸模拟。您可以在上面的链接中看到我的代码。提前感谢您的任何评论/建议。(PS 我希望我为这个问题选择了正确的 stackexchange 站点,如果我弄错了,请告诉我)。

更新:我尝试减少数值积分例程的时间步长,但这并没有改善拟合。代码仍然在相同的 url 上可用:[单击此处获取代码]

1个回答

我认为,两个结果之间存在差异的原因可能是角频率之间的差异ω=2πf和“正常”频率f. 这意味着:在时域中,您已经定义了频率f,但在处理后你(也许?)将结果解释为ω.