저는 DSP를 처음 접했고 파이썬에서 가속도계 데이터를 평활화하기 위해 가능한 필터에 대한 연구를 수행했습니다. 다음 이미지에서 경험할 수있는 데이터 유형의 예를 볼 수 있습니다.
본질적으로, 나는이 데이터를 부드럽게 속도와 변위로 변환하기 위해이 데이터를 부드럽게하는 것에 대한 조언을 찾고 있습니다. 휴대 전화의 가속도계는 소음이 심하다는 것을 알고 있습니다.
나는 데이터에 의해 생성 된 잡음을 참조하기 위해 장치를 잡지 못하기 때문에 현재 칼만 필터를 사용할 수 있다고 생각하지 않습니다 (장치를 평평하게 놓고 그 수치에서 잡음의 양을 찾는 것이 필수적이라는 것을 읽었습니까?)
FFT는 몇 가지 흥미로운 결과를 낳았습니다. 내 시도 중 하나는 가속 신호를 FFT 한 다음 저주파수를 렌더링하여 절대 FFT 값이 0이되도록하는 것입니다. 그런 다음 오메가 산술 및 역 FFT를 사용하여 속도 플롯을 얻었습니다. 결과는 다음과 같습니다.
이것이 좋은 일입니까? 신호의 전체 노이즈 특성을 제거하려고하지만 약 80 초와 같은 명백한 피크를 식별해야합니다.
또한 원래 가속도계 데이터에 저역 통과 필터를 사용하여 피곤해졌습니다. 매끄럽게 처리하는 데 많은 도움이되었지만 여기서 어디로 가야할지 확실하지 않습니다. 여기에서 어디로 가야하는지에 대한 안내가 정말 도움이 될 것입니다!
편집 : 약간의 코드 :
for i in range(len(fz)):
testing = (abs(Sz[i]))/Nz
if fz[i] < 0.05:
Sz[i]=0
Velfreq = []
Velfreqa = array(Velfreq)
Velfreqa = Sz/(2*pi*fz*1j)
Veltimed = ifft(Velfreqa)
real = Veltimed.real
따라서 본질적으로 필자는 가속도계 데이터에 대해 FFT를 수행하여 간단한 벽돌 벽 필터를 사용하여 Sz에 필터링 된 고주파수를 제공했습니다 (이상적이지 않음). 그런 다음 데이터의 FFT에서 오메가 산술을 사용하십시오. 또한 내 게시물에 이미지를 추가 한 datageist에게 대단히 감사합니다 :)
fz
어레이 의 초기화는 표시하지 않지만 대신 고역 통과 필터를 적용하고있는 것 같습니다.