delphi
HPF & LPF
openheart
2023. 3. 8. 20:36
반응형
SMALL
가속도센서는 HPF를 사용하고 기울기 센서는 LFP를 사용한다.
1. HPF
procedure HighPassFilter(var input, output: TArray<Double>; const freq, fs: Double);
var
i: Integer;
RC, dt, alpha, y1: Double;
begin
// Calculate filter constants
RC := 1 / (2 * PI * freq);
dt := 1 / fs;
alpha := RC / (RC + dt);
// Apply filter to input signal
y1 := input[0];
for i := 1 to High(input) do
begin
output[i] := alpha * (output[i-1] + input[i] - input[i-1]);
output[i] := output[i-1] + (input[i] - input[i-1]) - alpha * (output[i-1] - y1);
y1 := output[i-1];
end;
end;
이 함수는 입력 신호(double 배열), 주파수 컷오프 값 및 샘플 속도(Hz)를 입력으로 사용하고 입력 신호에 고역 통과 필터를 적용합니다. 필터링된 신호는 출력 매개변수(입력 신호와 동일한 크기로 미리 할당되어야 함)에 반환됩니다. 이 함수는 표준 1차 고역 통과 필터 공식을 사용하며 시간 상수는 RC이고 스무딩 계수는 알파입니다.
2. LPF
procedure LowPassFilter(var input, output: TArray<Double>; const freq, fs: Double);
var
i: Integer;
RC, dt, alpha: Double;
begin
// Calculate filter constants
RC := 1 / (2 * PI * freq);
dt := 1 / fs;
alpha := dt / (RC + dt);
// Apply filter to input signal
output[0] := input[0];
for i := 1 to High(input) do
begin
output[i] := alpha * input[i] + (1 - alpha) * output[i-1];
end;
end;
이 함수는 입력 신호(double 배열), 주파수 컷오프 값 및 샘플 속도(Hz)를 입력으로 사용하고 입력 신호에 저역 통과 필터를 적용합니다. 필터링된 신호는 출력 매개변수(입력 신호와 동일한 크기로 미리 할당되어야 함)에 반환됩니다. 이 함수는 표준 1차 저역 통과 필터 공식을 사용하며 시간 상수는 RC이고 스무딩 계수는 알파입니다.
반응형
LIST