2010-11-29 2 views
1

http://www.scipy.org/Cookbook/SignalSmooth에 설명 된 알고리즘을 사용하여 일련의 데이터 점을 부드럽게합니다.평활화 된 신호를 입력 신호와 비교

어떻게 평활 신호와 입력 신호를 비교할 수 있습니까? 나는 출력이 입력으로부터 얼마나 가까운지를 기술하는 스칼라를 얻을 수 있기를 바라고있다. 이 작업을 수행하는 표준 방법이 있습니까? 내가 찾을 수있는 용어?

나는 무엇을 찾을 지 전혀 모른다. 감사!

답변

2

normalized root mean squared deviation을 사용했습니다. 0과 1 사이의 수를 제공합니다. 숫자가 클수록 두 데이터 계열이 멀리 떨어져 있습니다. 0은 신호와 평활화 된 신호 간의 완벽한 일치를 의미합니다.

0

잡음을 제거하기 위해 신호를 부드럽게한다고 가정하면 가장 자연스러운 성능 지수는 SNR입니다.

그래서 같은 :

mean((smoothed[n] - original[n])^2)/mean((smoothed[n])^2) 

위는 ~ 신호의 평균 가정 0.

+0

신호를 근사하기 위해 부드럽게합니다. 일련의 데이터 포인트 (측정 값)가 있지만 1) 관심이있는 모든 포인트에 대한 가치가없고 2) 측정에 작은 오차가있을 수 있습니다. 나는 측정치의 산점도와 함께 근사 된 신호를 표현하는 좋은 곡선을 그린다. 산산조각이 나에게 근사가 얼마나 떨어져 있는지를 알려주지 만, 쉽게 비교할 수있는 숫자를 갖고 싶습니다. 신호의 평균은 0이 아닙니다. – ibz

3

이산 상관은 잡음이 많은 백그라운드에서 알려진 파형을 감지하는 방법입니다. 두 신호 사이의 상관 관계를 찾으십시오. 이산의 상관 관계는 단순히 벡터의 내적입니다 :

for n in range(N): 
    y[n] = sum([x1[i]*x2[i+n] for i in range(N)]) 

순수 파이썬에서, 또는 : 매트랩

y = xcorr(x1,x2); 

, 또는 : 파이썬 + Scipy에서

y = correlate(x1,x2) 

.

상관 관계는 두 신호의 유사성을 매우 민감하게 측정합니다. 두 신호가 주파수 내용이 유사하고 서로 위상이 맞으면 최대화됩니다.

관련 문제