LFP 말 그대로 낮은 주파수의 신호는 통과시키고 높은 주파수의 신호는 차단하거나 약하게 통과시키는 필터입니다.
전에 말씀드린 moving average filter 같은 경우 앞서 설명한것처럼 제일 오래된 값을 활용해서 2초,3초,4초,5초 와 같이 모든 데이터들끼리 동일한 비율로 1/n으로 진행되는 것입니다.
그래서 저주파 통과필터 같은 경우 moving average를 취하되 현재에 가까운 값들에 weighting을 좀 더 두는 것임
y = preavg+1.5*(x-xbuf(1))/n
해당부분에서 달라진거는 1.5를 해줌으로써 보정이득으로 지연을 보상하는 추가적인 형태임
표로 간단하게 나타내면
G = 1 : 정상 저주파 통과 : 안정 느림
G > 1 : 약한 보상 : 빠름, 약간의 오버슈트 가능
G < 1 : 강한 로우 패스 : 느리고 안정적이나 지연이 큼
function y = low_pass_filter(x)
persistent preavg n xbuf
persistent firstrun
if isempty(firstrun)
n = 5;
xbuf = x*ones(n+1,1);
preavg = x;
firstrun = 1;
end
for m=1:n
xbuf(m)=xbuf(m+1);
end
xbuf(n+1) = x;
y = preavg+1.5*(x-xbuf(1))/n;
preavg = y;