1

假设我有三个随机数 x ->200...300的 ac# 列表, y->100...150并且z->100..300作为条目的元素类似于rows=200 and cols=3

x   y   z 
210 106 220
200 120 134
220 150 230
280 120 136
204 110 270
260 120 184
209 110 209
210 110 134
...

我正在阅读低通滤波器只是对结果进行平滑以去除高频。最简单的低通滤波器是箱式滤波器,它通过对 n 个样本进行平均来完成。对于一起平均 2 个样本,这很简单:

sample[n] (sample[n] + sample[n + 1]) / 2;

那么,我如何将低通滤波器应用于这些数据?

我需要申请sample[n] (sample[n] + sample[n + 1]) / 2;矩阵上的每个单元格还是该怎么做?

我正在阅读低通和高通滤波器“取消”或将高于/低于阈值的频率归零,但在这种情况下,获得阈值的最佳方法是什么,我不明白......

您能否解释一下如何将低通滤波器应用于数据集?

4

2 回答 2

2

M 个数据点的移动平均是简单但相当粗糙的低通滤波器,它可以平滑数据。对于每个输出数据点,您取 N 个输入点的平均值,例如 N = 3:

for (i = 1; i < N - 1; ++i)
{
    output[i] = (input[i - 1] + input[i] + input[i + 1]) / 3;
}

当你增加 M 时,你会得到更多的平滑(因为你平均了更多的点)——另一种看待这个的方式是你的数据中更多的高频分量(通常是噪声)被删除了。

请注意,这种移动平均滤波器的频率响应相当差 - 它适用于一些相当简单的任务,例如从股票价格等时间序列数据中过滤噪声,但对于要求更高的应用,我们通常使用更复杂的滤波器设计。

高通滤波器是低通滤波器的补充,因为它滤除低频分量。这包括“稳态”(0 Hz)分量,因此通常输出将代表输入的短期变化。

一个非常粗糙的高通滤波器:

for (i = 1; i < N ; ++i)
{
    output[i] = input[i] - input[i - 1];
}
于 2013-09-20T06:40:55.907 回答
0

在我看来,外行的答案是一个简单的转换率问题,由电路的 RC 或 RCL 时间常数设定。R 和 C 是反应性的意味着结果将根据频率而变化。在由发生频率(采样率)设定的任何时间段内。只看没有 L 的 RC 更简单。但基本上不允许电压在时间上比 RC 时间常数所允许的变化更快,RC 时间常数是与时间或频率有关的超越函数。导致 SLEW 速率受限的自然力量似乎从来都不是此类讨论的主题。

于 2014-10-31T16:48:53.397 回答