2012-07-12 3 views
0

저는 portaudio를 처음 사용하고 "주파수 추출 방법 ..."질문을했지만 여전히 도움이 필요합니다. 나는 (스피커를 사용하여) 주파수를 전송할 필요가있다. 그리고 나서이 주파수가 전송되었는지 (마이크에서 잡는 지) 확인하고 싶다. 물론 나는 송신과 감지에 portaudio를 사용하고 싶다. 또한, 나는 레코드 예제를 보았고 샘플 데이터 유형을 사용하고이 데이터 유형을 사용하여 주파수를 찾을 때 최대 진폭을 찾을 수 있기 때문에 탐지를 위해 fft를 사용하는 방법을 모릅니다.[portaudio] 주파수 전송 및 감지 - Windows

tnx.

+1

나는 당신이 "주파수를 전송"하려고 애 쓰고있는 것이 확실치 않습니다. 당신이하고 싶은 한 가지처럼 보입니다. 그게 무슨 뜻 이죠? 그물에요? 사운드 카드로 재생할 수 있습니까? 나는 당신이 더 명확한 질문을 쓸 필요가 있다고 생각합니다. –

+0

sry 그것은 내가 기본 output.and 통해 의미가 명확한 wasnt't 경우 기본 출력 및 입력 점점 기능을 사용하는 방법을 알고 있지만 정확한 주파수 예 : 1000 hz.and 설정할 어떻게 다음 입력 (마이크 예를 들면) 나는 단지 1000hz를 얻었다라고 말한다. tnx는 관심과 도움을 줄 것입니다. – TheNewOne

답변

1

간단한 음색을 연주하는 것은 PortAudio에서 sample code으로 주어집니다.

피치가 특정 번호에서이 계산되지 않지만

, 그것을 알아 내기 위해 쉽게 :

가 PortAudio 예제 코드에서와 같이
amplitude[n] = sin(n * desiredFreq * 2 * pi/samplerate) 

, 당신은 조회 테이블을 사용하기보다는 죄에 계산하는 것이 좋습니다(), 성능 (그리고 많은 수의 죄의 정확도)을 위해 각 호출마다()를 사용합니다.

재생되는 빈도를 감지하는 것은 여기에서 질문 된 질문입니다. Here은 내가 최근에 한 대답입니다.

기술적 인면이나 배경 잡음과 같은 여러 가지 방법이 있습니다. 당신이 단순한 죄악을 감지하고 많은 소음을 기대하지 않는다면 신호가 특정 임계 값 이상인지 확인한 후에 제로 크로싱을 계산하는 것이 좋습니다. 소음이 들리면 더 좋아 할 것입니다.

+0

나는 이것에 의지하고 있었다. http://stackoverflow.com/questions/3058236/how-to-extract-frequency-information-from-samples-from-portaudio-using-fftw-in-ci 그냥 전체를 이해하지 못했다. 아이디어, 나는 'paex_record'라는 예제를 봤는데 샘플에 FFT를 어떻게 사용할 수 있을지 모르겠다. 그리고 도움을 요청하기 위해 다시 tnx를 보내고 주파수를 전송하는 것에 대한 설명을 +1한다. – TheNewOne

+0

레코드 할 때 일련의 샘플, 시간에 따른 진폭을 나타냅니다. 이들의 인접한 부분 집합 (예 : 첫 번째 1024 개 샘플)을 가져 와서 창에 그 해답에 설명 된대로 FFT를 수행하십시오. 모노 대 스테레오, 데이터 형식 및 기타 몇 가지 사항을 고려해야하지만, 여기서는 모든 것을 설명 할 수없는 복잡한 문제입니다. 처음에는 창을 그릴 필요가 없으며 PA에서 모노 부동 소수점 데이터를 가져옵니다. 도움이 될 것입니다. 그런 다음 샘플의 다음 블록으로 이동하십시오 (겹칠 수도 있음). –

+0

여기에서 톤을 생성하는 방법에 대한 세부 정보 : http://stackoverflow.com/questions/12612951/multi-audio-tones-to-sound-card-using-portaudio/12632742#12632742 –