【问题标题】:Questions about lowpass filters using 'butter' function in MatlabMatlab中关于使用'butter'函数的低通滤波器的问题
【发布时间】:2014-12-29 16:25:50
【问题描述】:

我正在尝试在 Matlab 中设计一个低通滤波器:

fc = 100;           % Cutoff frequency
fs = 4020;          % Sampling frequency
w_norm = 2*fc/fs;
filter_order = 1;
[num,denom] = butter(filter_order,w_norm)
sys = tf(num, denom)
[z,p,k] = zpkdata(sys)

Matlab 给了我一个极点:

s = 0.8541

我的问题是:

  1. 这个数字是从哪里来的?极点不应该在 w = 2*pi*fc = 628 rad/s(如果除以 wc 则归一化为 1)?
  2. 不应该是负数,因为巴特沃斯 LP 滤波器极点在左半平面上吗?
  3. 为什么 Matlab 在 -1 时也会给我一个零?

非常感谢。

【问题讨论】:

    标签: matlab filter lowpass-filter


    【解决方案1】:

    默认情况下,butter 产生 离散时间 过滤器设计。因此,传递函数是根据 z(z 变换)而不是 s(拉普拉斯变换)定义的。

    n 阶离散时间巴特沃斯滤波器在 z=-1 和 nn 阶零/em> 单位圆内的极点。这符合你的结果。 (相比之下,连续时间巴特沃斯滤波器在无穷远处有 n 阶零,在左侧单位半圆中有 n 个极点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-03
      • 1970-01-01
      • 2016-02-13
      • 2011-02-15
      • 2011-10-26
      • 1970-01-01
      • 2021-03-08
      • 1970-01-01
      相关资源
      最近更新 更多