【问题标题】:What type of filter is the "filter" command“过滤器”命令是什么类型的过滤器
【发布时间】:2014-03-22 05:20:39
【问题描述】:

我正在使用 MATLAB 的 filter 函数来创建折线图的移动平均值。我的问题是,什么样的过滤器是?低通?高通?等等……

我是一名大二的电气工程师,所以我对这类问题特别感兴趣。

我正在绘制 1 月份的平均温度图。

temperature = filter(ones(1,3)/3,1,janTemp);
plot(days,temperature);

其中janTemp 是包含温度的第一列向量,days 是向量中的天数列表。

【问题讨论】:

  • 你能提供你用来调用filter的代码吗?简短的回答是滤波器的类型取决于前两个参数中提供的内核系数。例如,请参阅butter 的文档,以创建您想要的过滤器。

标签: matlab filtering signal-processing


【解决方案1】:

filter创建过滤器;它对信号应用过滤器:

FILTER 一维数字滤波器。
Y = FILTER(B,A,X) 过滤向量 X 中的数据 由向量 A 和 B 描述的过滤器来创建过滤的 数据 Y。

根据系数向量AB,滤波器将是低通、高通等。这些向量包含定义滤波器的差分方程的系数:

a(1)*y(n) = b(1)*x(n) + b(2)*x(n-1) + ... + b(nb+1)*x(n-注意)
- a(2)*y(n-1) - ... - a(na+1)*y(n-na)

等效地,AB 定义了滤波器传递函数 H(z) 的分子和分母多项式。

在您的情况下,B = [1 1 1]A = 1 将是一个低通 FIR 滤波器,即移动平均线,正如您在问题中指出的那样。

详情请参阅filter's documentation 或输入help filter

【讨论】:

  • A 和 B 如何描述过滤器?我怎么知道这些值是低通的?
  • @codedude AB 是定义滤波器的差分方程的系数。或者,它们定义了滤波器传递函数 H(z) 的分子和分母多项式
  • 哦!这就说得通了。谢谢
  • 吹毛求疵:FIR 和 IIR 滤波器不仅仅是低通或高通滤波器。带通、带阻、陷波等
  • @chappjc 是的。已更正
【解决方案2】:

移动平均线通常是低通滤波器的一个例子。在http://en.wikipedia.org/wiki/Moving_average查看更多信息

一般而言,您可以在http://www.mathworks.com/tagteam/55876_digfilt.pdf 了解有关 matlab 中过滤器的更多信息。

【讨论】:

    【解决方案3】:

    使用freqz 可以轻松查看滤波器的频率响应。

    freqz([1 1 1]/3,1)
    

    这个滤波器衰减高频,但绝不是很好。

    考虑一个 5-tap Butterworth FIR 滤波器:

    freqz(butter(5,0.5,'low'),1)
    

    另请参阅fvtool,过滤器可视化工具 (FVTool)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-19
      • 2018-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-04
      • 2011-08-17
      • 1970-01-01
      相关资源
      最近更新 更多