(2016년도에 작성한 글을 옮김)
사실 필터를 제대로 설명하고자 한다면 수십 페이지 이상의 자료가 필요할 것이며, 나의 역량으로는 부족하다. 이 페이지에서는 1차 필터의 개념을 간단하게 설명, 수식노드에서 구현한 C코드와 labview 내 함수를 이용한 필터를 비교해본다.
서두 부분은 학부시절 참고하였던 블로그(http://pinkwink.kr/437)의 내용을 옮겨온 것이다.
마지막 식을 코드로 표현하면 된다.
여기서 주목해야 할 것은 시정수(time constant, tau)이다.
#tau는 차단주파수(cutoff frequency, fc)와 반비례 관계를 지니고 있다.
#tau는 passive filter(PPG1페이지에 간략정리)에서 R과 C의 곱으로 표현된다(따라서 선택적으로 차단 주파수를 설계할 수 있는 것이다).
#tau값이 커질수록 데이터를 매끈하게 한다, 하지만 신호 대비 지연이 있다.
#시정수(time constant)는 어떤 회로, 어떤 물체, 혹은 어떤 제어대상이 외부로부터의 입력에 얼마나 빠르게 혹은 느리게 반응할 수 있는지 나타내는 지표이다.
#시정수는 DC전압의 약 63%에 도달하는 시각이다.(이 부분들에 대해서는 다음에 다루겠다)
[수식노드]
LabVIEW에는 수식노드라고 하는 함수를 제공한다(도움말: http://zone.ni.com/reference/ko-XX/help/371361J-0129/glang/formula_node/).
수식노드를 통해 C와 유사한 식, 수학 수식을 계산할 수 있으므로 복잡한 연산들을 간편하게 표현할 수 있다.
sampling time:0.001s
u : 랜덤한 raw data (0~5범위)
y1 : tau가 0.001
y2 : tau가 0.01
y1의 경우, fc = 1/(2*pi*0.001) = 159.23 Hz
y2의 경우, fc = 1/(2*pi*0.01) = 15.92 Hz
tau가 클수록 고주파수를 많이 제거한다는 것을 알 수 있다.
[labview함수]
버터워스필터 함수를 이용하여 동일한 값의 필터를 설계.
'LabVIEW' 카테고리의 다른 글
USB8452 | I2C제어 및 간단한 profile 입력하기 (0) | 2021.02.28 |
---|---|
LINX | LabVIEW를 이용한 Arduino I2C 제어 (0) | 2021.02.01 |
Analog Input(유한샘플) (0) | 2021.01.18 |
디자인 패턴(2) (0) | 2021.01.14 |
디자인 패턴(1) (0) | 2021.01.14 |