在javascript中将高通滤波器应用于流websocket数据

时间:2014-02-11 03:01:53

标签: javascript websocket socket.io signal-processing

我正在使用socket.io从node.js服务器传输数据。数据每33毫秒进入一个数据包。我正在将数据实时放入图表中,我想在其上应用数字高通滤波器。

我正在试图弄清楚如何使用DSP.js对数据应用无限脉冲响应算法 - 1hz的高通 - 但我不确定如何解决这个问题。

我知道我会使用此库(var filter = IIRFilter(HIGHPASS, 1, 30))创建过滤器对象,但至于应用过滤器(filter.process(signal)),我不确定signal是什么将会。当每个数据包进入时,我将其添加到名为data的数组中。它会在这个阵列上吗?或者我必须为每个数据包执行此操作吗?

1 个答案:

答案 0 :(得分:1)

在IIR滤波器中,所有过去的样本计算当前样本的结果。这就是为什么它被称为无限脉冲响应。

我可以看到2个处理选项。

  1. 等待,收集所有样本,最后在显示数组之前进行处理data

  2. 实时!请记住,过滤后的数据不得与原始数据混合使用。否则过滤将失真。创建一个新数组filtered_data。每次数据包进入时,将其复制到data数组中,然后复制data中的filtered_data数组并调用filter.process(filtered_data)。最后显示filtered_data