2017-09-15 11 views
-2

나는 가속도계로부터 신호를받는 코드를 작성하고 신호를 제거하기 위해 TVD 알고리즘을 사용합니다. 우리는 다음 그래프에서 볼 수 있듯이 나는 할 관리 :findchangepts는 일부 변경을 감지하지 않습니다

Denoising

을하지만 피크를 감지 할, 나는 그것을 I을 실행할 때 내가 MATLAB에서 findchangepts 기능을 사용할 수 있다고 생각하지만,

findchangepts function run

우리가 피크를 감지하지 볼 수 있듯이 다음 있습니다. 누구나 함수의 설정이나 피크 내부의 노이즈 제거 방법을 알고 있습니까? 다음

+0

[docs] (https://uk.mathworks.com/help/signal/ref/findchangepts.html)에서 : "findchangepts (x)는 ** 색인 **을 반환합니다. x의 평균이 가장 크게 변한다. " 'findchangepts (x, 'MaxNumChanges', 5)'를 사용하여 하나 이상의 점을 지정하십시오. 또는'findpeaks'를 사용하십시오. 여기에 묻기 전에 항상 간단한 문서 검색을하십시오 ... – Wolfie

+0

감사합니다 @ Wolfie 나는 그 검색도했으나 그 문제는 코드가 여러 신호에 사용될 것이므로 정확한 숫자의 변경이 불가능하다는 것입니다. 서로 다른 신호의 여러 변경이있을 수 있습니다. 또한 findpeaks 기능을 사용하면 사진에서 볼 수있는 신호에서 5402 개의 봉우리가 보이지 않는 모든 봉우리를 얻을 수 있으므로 더 나은 필터링을 요청했습니다. –

답변

0

는 I는 findpeaks 기능 그렇게 관리 :

[yupper,ylower] = envelope(x) 

그것이 될 희망 :

[pks, locs] = findpeaks(x,'MinPeakProminence',0.25*max(x),'MinPeakDistance',50); 

갖는 X 전달뿐만 엔벨로프 필터와 저역 통과 필터의 일련 throght 누구에게나 유익한 것

+0

이 방법은 누구에게나 유용 할 것이라고 생각하지 않습니다. 매우 광범위한 질문 ("내가 원했던 방식으로 내 특정 데이터를 필터링하는 것이 좋았던 방법")에서 매우 광범위한 질문 어떤 식 으로든이 데이터를 걸러 내십시오.이 예제는 작동하지 않았습니다. 여기 예제 데이터가없는 이미지가 있습니다. "). 당신은 당신이 시도하고자하는 바를 왜, 어떻게, 어떻게, 예제 데이터, 시도했는지를 명확하게하기 위해 질문을 개선하고 시도 할 수 있습니다 ... – Wolfie