2014-02-11 2 views
0

node.js 서버에서 데이터를 스트리밍하기 위해 socket.io를 사용하고 있습니다. 데이터는 33ms마다 하나의 패킷으로 들어옵니다. 저는 실시간으로 데이터를 차트에 넣을 것입니다. 디지털 하이 패스 필터를 적용하고 싶습니다.자바 스크립트에서 스트리밍 websocket 데이터에 고역 통과 필터 적용

저는 DSP.js을 사용하여 데이터에 무한 임펄스 응답 알고리즘을 적용하는 방법을 알아 내려고하고 있습니다. 그러나 1hz에서의 하이 패스 (high pass)에 대해서는 잘 모릅니다.

이 라이브러리 (var filter = IIRFilter(HIGHPASS, 1, 30))를 사용하여 필터 개체를 만들 겠지만 필터 적용 (filter.process(signal))에 대해서는 signal이 무엇이 될지 잘 모르겠습니다. 각 패킷이 들어 오면 data이라는 배열에 추가합니다. 이 배열에 있을까요? 또는 들어오는대로 각 패킷마다이 작업을 수행해야합니까?

답변

1

IIR 필터에서 모든 과거 샘플은 현재 샘플의 결과 계산에 포함됩니다. 그래서 무한한 임펄스 응답이라고합니다.

귀하의 처리에 2 가지 옵션이 있습니다. data

  • 그것을 실시간를 수행

    1. 대기는, 모든 샘플을 수집, 마지막으로 배열을 표시하기 전에 처리를 마! 필터링 된 데이터는 원시 데이터와 혼합되어서는 안됩니다. 그렇지 않으면 필터링이 왜곡됩니다. 새 배열 filtered_data을 만듭니다. 패킷이 올 때마다 data 어레이에 복사 한 다음 data 어레이를 filtered_data에 복사하고 filter.process(filtered_data)으로 전화하십시오. 마지막으로 filtered_data을 표시하십시오.

  • 관련 문제