【问题标题】:Difference between bode and freqzbode和freqz的区别
【发布时间】:2014-12-02 03:33:20
【问题描述】:

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

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

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

freqz(num,den)

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

bode(tr(num,den))

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

为什么不一样?

【问题讨论】:

    标签: matlab


    【解决方案1】:
    [b,a] = ellip(n,Rp,Rs,Wp)
    

    b,a 是 z 域代表,

    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'))

    variable property 中检查tf

    指定传递函数显示变量的字符串。变量可以取以下值:

    's' - 连续时间模型的默认值

    'z' - 离散时间模型的默认值

    'p'——等价于's'

    'q' — 等价于 'z'

    'z^-1' — 'z' 的倒数

    'q^-1' — 等价于 'z^-1'

    【讨论】:

      猜你喜欢
      • 2015-06-19
      • 1970-01-01
      • 2013-08-07
      • 2011-10-20
      • 2020-01-23
      • 1970-01-01
      • 2014-10-09
      • 2010-12-21
      • 2011-05-11
      相关资源
      最近更新 更多