반응형
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
'delphi' 카테고리의 다른 글
Stringgrid의 숫자 포멧 설정 (0) | 2023.03.08 |
---|---|
Stringgrid의 셀의 폰트와 정렬 (0) | 2023.03.08 |
Delphi 11.2 FireMonkey Low Code App Wizard - Error (0) | 2023.03.08 |
Android Apps - Real-time streaming of IP camera images(안드로이드 앱 - IP 카메라 영상 실시간 스트리밍) (0) | 2023.03.08 |
Delphi Tips #1 (0) | 2023.03.07 |