【问题标题】:iOS - High pass filter equation for accelerometeriOS - 加速度计的高通滤波器方程
【发布时间】:2011-08-04 07:04:49
【问题描述】:

有人能解释一下如何得出以下等式以对加速度计值进行高通滤波吗?我不需要数学推导,只要直观的解释就够了。

#define kFilteringFactor 0.1 UIAccelerationValue rollingX, rollingY, rollingZ; - (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration { // 从当前值中减去低通值,得到一个简化的高通滤波器 rollingX = (acceleration.x * kFilteringFactor) + (rollingX * (1.0 - kFilteringFactor)); rollingY = (acceleration.y * kFilteringFactor) + (rollingY * (1.0 - kFilteringFactor)); rollingZ = (acceleration.z * kFilteringFactor) + (rollingZ * (1.0 - kFilteringFactor)); 浮动 accelX = 加速度.x - rollingX; 浮动 accelY = acceleration.y - rollingY; 浮动 accelZ = 加速度.z - rollingZ; // 使用加速度数据。 }

【问题讨论】:

    标签: objective-c ios signal-processing


    【解决方案1】:

    虽然其他答案是正确的,但这里是一个简单的解释。使用 kFilteringFactor 0.1,您将获取当前值的 10% 并添加先前值的 90%。因此,该值与之前的值保持 90% 的相似性,这增加了它对突然变化的抵抗力。这会降低噪音,但也会降低对信号变化的响应。为了减少噪音并保持响应,您需要非平凡的过滤器,例如:Complementary, Kalman。

    【讨论】:

    • 谢谢,非常直观的解释。您能否解释一下术语高通滤波器如何适合您的解释上下文以及低通滤波器的行为如何使用您的解释。
    • 感谢您提及互补和卡尔曼。这些对我很有帮助。
    【解决方案2】:

    rollingX、rollingY、rollingZ 值在对函数的调用中保持不变。它们应该在使用前的某个时间点进行初始化。这些“滚动”值只是输入值(也称为“移动平均值”)的低通滤波版本,它们从瞬时值中减去,为您提供高通滤波输出,即您得到的是与移动平均值的当前偏差。

    补充说明

    移动平均线只是一个粗略的低通滤波器。在这种情况下,它是所谓的 ARMA(自回归移动平均线),而不仅仅是简单的 MA(移动平均线)。在 DSP 术语中,这是一个递归 (IIR) 滤波器,而不是一个非递归 (FIR) 滤波器。不管所有术语如何,是的,您可以将其视为一个平滑函数”-它“平滑”了所有高频能量,并为您提供了对信号平均值的缓慢变化的估计。如果然后减去这个平滑信号与瞬时信号的区别将是你过滤掉的内容,即高频的东西,因此你得到一个高通滤波器。换句话说:high_pass_filtered_signal = signal - smoothed_signal

    【讨论】:

    • 谢谢。我很难理解“......只是输入值的低通滤波版本......”和“......给你一个高通滤波输出”感觉就像一个平滑函数,因为 1 - kFilteringFunction 一直存在应用于滚动值。无论如何,一旦我完全理解你的意思,我觉得我可以从你的解释中得到一些很好的信息。
    • 请参阅上面的“附加说明”以获得对移动平均线和过滤等的更清晰的说明。
    【解决方案3】:

    好的,这段代码正在做的是计算一个低通信号,然后减去当前值。

    square wave 有两个值 5 和 10。换句话说,它在 5 和 10 之间波动。然后低通信号试图找到平均值 (7.5)。然后将高通信号计算为当前值减去平均值,即 10 - 7.5 = 2.5,或 5 - 7.5 = -2.5。

    低通信号是通过将当前值的一小部分与过去低通值的 90% 相加来对过去值进行积分来计算的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-12
      • 1970-01-01
      • 1970-01-01
      • 2014-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多