Javascript 我们可以在可观测流上使用高通滤波器来检测震动事件吗?

Javascript 我们可以在可观测流上使用高通滤波器来检测震动事件吗?,javascript,gesture,gesture-recognition,rxjs,Javascript,Gesture,Gesture Recognition,Rxjs,具体来说,如果我们在设备上有一个表示x/y/z加速度的事件流,rxjs可以提供给我们,那么我们如何以流的方式实现该算法,以便在抖动检测中利用更长的样本滑动窗口 该方法是有前途的,但仅基于2个连续样本,且2个样本不会产生信号流 我觉得,一旦演示了如何使用我熟悉的信号处理概念(从音频/音乐工作到流式用户输入数据),我利用此框架的能力将真正起飞,提前感谢。这就是我通过转换Wikipedia上的实现所能做到的 Rx.Observable.prototype.highpass = function (rc

具体来说,如果我们在设备上有一个表示x/y/z加速度的事件流,rxjs可以提供给我们,那么我们如何以流的方式实现该算法,以便在抖动检测中利用更长的样本滑动窗口

该方法是有前途的,但仅基于2个连续样本,且2个样本不会产生信号流


我觉得,一旦演示了如何使用我熟悉的信号处理概念(从音频/音乐工作到流式用户输入数据),我利用此框架的能力将真正起飞,提前感谢。

这就是我通过转换Wikipedia上的实现所能做到的

Rx.Observable.prototype.highpass = function (rc) {
  return this
    .timestamp()
    .bufferWithCount(2, 1)
    .scan(0, function (acc, x) {
      var dt = x[1].timestamp - x[0].timestamp;
      var a = rc / (rc + dt);
      return a * (acc + (x[1].value - x[0].value));
    });
};
下面的例子并不是非常好。不管怎样,假设你让鼠标一直移动,它仍然有作用


这就是我通过转换维基百科上的实现所能做到的

Rx.Observable.prototype.highpass = function (rc) {
  return this
    .timestamp()
    .bufferWithCount(2, 1)
    .scan(0, function (acc, x) {
      var dt = x[1].timestamp - x[0].timestamp;
      var a = rc / (rc + dt);
      return a * (acc + (x[1].value - x[0].value));
    });
};
下面的例子并不是非常好。不管怎样,假设你让鼠标一直移动,它仍然有作用


谢谢-我确信只要稍加调整,我现在就能隔离震动了!这是个好问题。让我想制作一个RxDSP库。此外,您可能还可以打开高通窗口,计算设备在特定时间范围内受到震动的次数,以确定是否是故意的…谢谢-我相信通过一些调整,我现在可以隔离震动了!这是个好问题。让我想制作一个RxDSP库。另外,你可能会打开高通窗口,计算设备在特定时间范围内震动的次数,以确定是否是故意的……我不理解你的问题。您是在寻求有关如何应用高通滤波器或如何检测震动事件的帮助吗?我不理解您的问题。您是否在寻求有关如何应用高通滤波器或如何检测抖动事件的帮助?