gpt4 book ai didi

matlab - bode 和 freqz 的区别

转载 作者:太空宇宙 更新时间:2023-11-03 20:04:32 25 4
gpt4 key购买 nike

我正在 MATLAB 中创建一个过滤器,如下所示:

[num,den] = ellip(10,0.1,50,4000/22050,'high');

使用 freqz 然后我发现滤波器的频率响应如下:

freqz(num,den)

这会按预期生成高通滤波器图。但是,如果我尝试使用 bode 函数绘制同一组值,我会得到完全不同的结果。

bode(tr(num,den))

这会生成一个低通滤波器图。我不明白这些功能是如何工作的吗?我的理解是 freqz 将传递函数的系数作为其参数。这也是我对 bode 函数所做的。

为什么不同?

最佳答案

[b,a] = ellip(n,Rp,Rs,Wp)

其中 b,a 是 z 域代表,

enter image description here

而默认情况下 tf 用于 s 域:

你可以使用filt

[b,a] = ellip(10,0.1,50,4000/22050,'high');
freqz(b,a)
figure
bode(filt(b,a))

您还可以使用 bode(tf(b,a,-1,'variable','z^-1'))

检查 tf变量属性

String specifying the transfer function display variable. Variable can take the following values:

's' — Default for continuous-time models

'z' — Default for discrete-time models

'p' — Equivalent to 's'

'q' — Equivalent to 'z'

'z^-1' — Inverse of 'z'

'q^-1' — Equivalent to 'z^-1'

关于matlab - bode 和 freqz 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27241406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com