filter - 如何确定互补滤波器的参数alpha?

标签 filter signal-processing robotics

我知道互补滤波器具有LPF和HPF的功能。但我认为我对其背后原理的理解仍然不清楚。

我对数字信号处理还很陌生,也许一些非常基本的解释会有很大帮助。

假设我有一个互补过滤器,如下所示:

y = a * y + (1 - a) * x

那么我的参数a可以通过

计算

a = time_constant/(time_constant + Sample_period),

其中sample_period只是sampling_Frequency的倒数。

time_constant 似乎是我自己的选择。

我的问题:

  1. 此计算背后的理论是什么?
  2. 我们如何正确选择time_constant

注意:我也posted this question on robotics ,因为答案的侧重点可能略有不同。

最佳答案

What is the theory behind this calculation?

对于人类可读的介绍,我建议:
The Balance Filter: A Simple Solution for Integrating Accelerometer and Gyroscope Measurements for a Balancing Platform .

How do we choose the time_constant properly?

直观上,time_constant 是信任高通和低通滤波器部分之间的边界。对于比 time_constant 更短的时间,您更信任高通滤波器部分,而对于更长的时间,您更信任低通部分。

通常,您对所处理的物理过程有一定的经验,并且您至少可以猜测 time_constant 的数量级。例如,如果您正在融合加速度计和陀螺仪数据(我假设您是根据其他问题进行的),则 0.5-1 秒之间的时间是合理的初步猜测。然后,您可以通过分析过滤器在实际数据上的性能并相应地调整 a 来开始调整过滤器。

关于filter - 如何确定互补滤波器的参数alpha?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18095785/

相关文章:

python - 一维数据中的步进检测

python-3.x - Librosa Constant Q Transform (CQT) 在频谱图的开头和结尾包含缺陷

python-3.x - 类型错误 : object array may be self-referencing Python3

python - 将度数转化为三电机运动

带参数的 Python 列表过滤

javascript - Checkboxlist ng-repeat过滤器动态angularjs

javascript - 根据数组中的位置从数组中获取代表元素

java - Lucene:过滤不包含术语的文档

audio - 标准化 FFT 数据 (FFTW)

用于研究的 Swift