低通滤波器的截止频率

信息处理 matlab 过滤器
2022-02-20 10:36:19

您好我正在尝试在 Matlab 中使用低通滤波器。我正在尝试使用简单的巴特沃斯过滤器。

我已经定义数据集说“数据”。然后我按如下方式创建了巴特沃斯过滤器:

[B,A]=butter(2,0.01)

Butterworth 设计要求用户给出 N 和 Wn。我使用 N 作为 2 和 Wn 作为 0.01。在这里,我随机选择了 Wn 的值为 0.01。

我的数据是每小时数据,我想应用 48 小时低通滤波器。在我的情况下,截止频率是多少?

之后,我使用以下代码设计了一个过滤器:

filter(B,A,data)

过滤后的数据看起来不错,但我想知道我应该使用什么截止频率。

谢谢。

2个回答

Butter 命令需要一个从 0 到 1 的归一化频率,其中 1 是奈奎斯特频率。换句话说,Wn是每个样本的半个周期。

因此,您只需将所需频率(1 个周期 / 48 小时)除以采样率的一半((每小时 1 个样本)/2),得到每个样本 Wn = 0.04167 个半周期。

过滤器与您使用的采样频率无关。重要的是归一化截止频率。因此,从类似函数获得的滤波器butter适用于任何采样频率。值 1 对应于采样频率的一半。

在您的情况下,您的采样频率为 1 小时1. 因此,0.01 的值对应于 0.01 的频率截止×0.5 = .005 小时1或 200 小时的时间。