2013-03-14 1 views
4

오디오 신호의 제로 크로싱 속도를 얻고 싶습니다. 나는이 공식의 코드를 작성했습니다 :신호의 제로 크로싱 속도를 계산하는 방법은 무엇입니까?

enter image description here

을하지만 excatly 전체 공식을 이해 해달라고.

내 코드를 처리하기 위해 신호를 블록으로 나누기 위해 "프레임 차단"을 의미합니다. 예를 들어 블록의 각 길이는 512입니다 (신호의 512 샘플이 있음). 그리고 나는 100 개의 블록을 가지고 있다고 말할 수 있습니다. 그렇다면 제로 교차율은 각 블록에 대해 하나의 값을 반환 할 것인가 아닌가? 나는 공식에 따라 전체 신호에 대해 100 가치를 가질 것인가?

또한 w() 의미를 이해하지 못합니다. 윈도우 잉에 해밍하는 건가요? 그리고 n-m에 대해 어떻게 계산할 수 있습니까? 대개 음수일까요?

나는 매우 혼란스러워합니다. 도와주세요.

+0

소리가납니다. 프로그래머보다 하나의 수학 문제와 비슷합니다. – Nolonar

+0

신호에 몇 개의 zcr이 있습니까? 100 또는 100 * 512? – Cengaver

+0

아마도 문을 닫지 않고 dsp.stackexchange.com이나 math.stackexchange.com 또는 더 적절한 곳으로 이동해야합니다. –

답변

6

수식을 잊어 버리십시오. 이렇게 표현하면 더 복잡해집니다.

제로 크로싱 속도는 신호가 지정된 시간 (일반적으로 1 초)에 변경되는 횟수입니다. 그게 당신이 알아야 할 전부입니다. 일반적으로 기호가 바뀔 때마다가 아니라 음수에서 양수로 또는 그 반대로 만 이동하는 비율에 관심이 있습니다. 음수에서 양수로가는 횟수를 보면 신호의 주파수에 대한 프록시로 사용할 수 있습니다.

w (n-m)이 무엇인지에 관해서는 window function입니다. 이것은 당신의 공식이 "얼마나 많은 시간에 신호가 제로를 넘었습니까?"라는 질문을 변경시키는 것입니다. 마지막 n 샘플에서 신호가 몇 번 교차 했습니까? " 솔직히 말해서, 그것은 내 눈을 건너므로, 이해하지 못해서 기분이 좋지 않습니다. 나 역시 혼란 스럽습니다. 제로 크로싱 속도의 경우 w가 특정 범위에서 1을 반환하고 그렇지 않으면 0을 갖도록 창 함수를 선택합니다. (직사각형 창이라고 함). 이런 종류의 윈도우에 대해이 수식을 표현하는 더 좋은 방법은 일반적인 개념으로 "윈도우 잉"을 잊어 버리고 시그마에 대한 경계를 제한하는 것입니다. 미안하지만 수식을 표현하는 법을 모르겠습니다.

Z_n (m) = sum_ {m = xn}^0 | sign [x (m)] - sign [x (m-1)] |

n = 샘플 속도 일 경우, 이것은 Hz 단위의 제로 크로싱 속도를 제공합니다. 그것은 더 의미가 있습니다 : 더 이상의 무한함은 없습니다! 사용하고있는 소스가 창을 일반화하려는 시도에 포함 시켰을 수도 있지만,이 경우에는 얻을 수있는 것이 없습니다. (내가 아는 한 -하지만 모든 것을 알지는 못합니다.)

+0

답변 해 주셔서 감사합니다. 나는 u를 얻는다. 그러나 나는 공식에서 w (n-m)의 neccasary를 이해하지 않는다. 그것을 exlpain 수 있습니까? – Cengaver

+0

w에 대한 설명을 추가했습니다. –