2011-01-22 3 views
0

오실로스코프 용 애플리케이션을 C# .NET으로 개발 중이며 zedgraph 컨트롤을 사용하여 다양한 종류의 파 (사인파, 사각형 등)를 그립니다. 오실로스코프에서 값을 가져와 크기가 1024 (바이트 배열) 인 버퍼에 저장하고 런타임에 주파수, 상승 시간, 하강 시간 등과 같은 매개 변수를 계산해야합니다. 이 목적을 위해 나는 전체 signal.one의 단일 사이클을 추출해야만한다. 더 많은 문제는 값이 항상 상승 또는 하강하지 않는다는 의미이다. 평균값은이 같은 버퍼에 저장된다. [0,0,0,1,1,2, 3,4,5,5,6,6,6,5,5,4,3,2,1,1,0,0,0 ..........]. 신호는 기계에서 계속 수신됩니다. 파도가 항상 제로 부근에서 진동하는지 확신 할 수 없습니다. 감사합니다. 감사합니다. NileshC#에서 신호의 주파수를 계산합니다.

답변

2

여러 가지 방법으로 예상 할 수 있습니다. 아마도 가장 쉬운 방법은 수학 라이브러리가 있다면 FFT를 계산하고 최저 주파수를 이용하는 것입니다.

또는 평균값 주변의 제로 크로싱을 확인할 수 있습니다. 주파수가 0에 가까울수록 주파수는 빠릅니다. 마찬가지로 극한 기는 빈도에 관해 많은 것을 말해줍니다 (기수와 제로가 교대로 균등하게 분포되어있는 사인 곡선을 생각해보십시오).

기간 변환이라고하는 변환이 있지만 너무 많이 기억하지 않습니다. 나는 음악에 관한 책에서 노래의 템포를 찾는 것을 보았다.

http://www.cs.berkeley.edu/~vazirani/s09quantum/notes/lecture4.pdf

또 다른 방법은 자기 상관을 사용할 수 있습니다 그것은 큰 경우는 (은 빨리 모양을 변경하지 않는 가정) 함수가 자체 "동기화"에 의미합니다. 이들 사이의 거리를 계산하는 것이 쉽습니다.

+0

'는 FFT를 계산하고, 가장 낮은 주파수를 가지고'의 각 섹션에 대해 파장 (및 기간)을 계산할 수 적용 그래프 두

, 아무 의미가 없다. 가장 낮은 주파수는 어떻게 정의합니까? –

+0

어? 이산 스펙트럼을 가진 신호의 최저 주파수는 명확하게 정의되어 있으며 쉽게 얻을 수 있습니다. – AbstractDissonance

0

크레스트와 트로프 사이의 시간 간격을 확인할 수 있습니다.이 파형은 특정 웨이브의 파장의 절반을 제공합니다. 그래프의 경우 1

alt text

은 첫 번째 골은 첫 번째 문장은 (12)는 이러한 점 사이에 복용 시간을 알아보십시오, 당신은 반 파장을 가지고, 2입니다. 동일한 원리, 당신이 그래프

관련 문제