모두들!
나는 Arduino Duemilanove가 지금 여분의 주위에 매달려 있고 몇 가지 오디오 인터페이스 프로젝트를 시도 할 수 있다고 생각했습니다. 단일 아날로그 입력을 사용하고 칩에 간단한 알고리즘을 적용한 다음 LED에 연결된 몇 가지 디지털 출력을 사용하여보고 할 수있는 샘플링 주파수의 종류가 궁금합니다.
가능한 경우 ~ 44.1kHz로 샘플링하고 싶습니다.
참고로 가장 먼저 시도하고 싶은 것은 간단한 기타 튜너입니다.
모두들!
나는 Arduino Duemilanove가 지금 여분의 주위에 매달려 있고 몇 가지 오디오 인터페이스 프로젝트를 시도 할 수 있다고 생각했습니다. 단일 아날로그 입력을 사용하고 칩에 간단한 알고리즘을 적용한 다음 LED에 연결된 몇 가지 디지털 출력을 사용하여보고 할 수있는 샘플링 주파수의 종류가 궁금합니다.
가능한 경우 ~ 44.1kHz로 샘플링하고 싶습니다.
참고로 가장 먼저 시도하고 싶은 것은 간단한 기타 튜너입니다.
답변:
나는 당신이 풀 해상도로 빨리 샘플링 할 수 있다고 생각하지 않습니다. ATMega168은 최대 해상도에서 15 ksps로만 샘플링 할 수 있습니다.
그렇게 말하면 작동하는 기타 튜너를 얻기 위해 적절한 샘플 속도를 얻을 수 있어야합니다. 44.1 kHz는 기타가 높은 E 현의 기본이고 기타가 약 330 Hz라는 점을 감안할 때 필요한 것보다 상당히 빠릅니다.
아날로그 입력을 읽는 데 약 100 us (0.0001 s)가 걸리므로 최대 판독 속도는 초당 약 10,000 회입니다.
http://arduino.cc/en/Reference/AnalogRead
롭
아날로그 입력을 구형파로 바꾸는 아날로그 비교기 (AVR의 내부 입력기 또는 외부 opamp 입력기)를 사용하는 경우 훨씬 빠른 속도로 진동을 샘플링 할 수 있습니다. 이것이 진정한 오디오 샘플링은 아니지만 기타 튜너를 제작할 때는 모든 코드가 어쨌든 단위 시간당 제로 크로싱을 계산하기 때문에 필요한 모든 것입니다.
직렬로 제공되는 많은 ADC가 있으며 I2S는 I2C 기반 NXP의 표준입니다. 훨씬 더 빠른 속도에서도 아날로그를 쉽게 쉽게 가져올 수 있습니다. 이 링크는 오디오 용으로 설계된 NXP 부품으로 연결됩니다 : UDA1361TS
무료 샘플은 당신의 친구입니다 :)
첫째, 특정 응용 분야의 경우 기본 주파수를 조정 하고 고조파 부분 중 하나가 아니라고 가정 할 때 실제로 1kHz 정도의 샘플링 속도 만 있으면됩니다 .
어쨌든 가능한 최대 샘플링 속도와 관련하여 Arduino 매뉴얼 은 다음과 같이 말합니다.
아날로그 입력을 읽는 데 약 100 마이크로 초 (0.0001 초)가 걸리므로 최대 판독 속도는 초당 약 10,000 배입니다.
이것은 10kHz 샘플링 주파수가 최대임을 의미합니다. 하나. ADC 레지스터에 직접 액세스하여 더 높은 샘플링 속도를 얻을 수 있습니다 . 의 Arduino 실시간 음성 처리부 페이지는 예를 들어, 15 kHz의 두 개의 채널을 사용한다. 따라서 10kHz 최대 값은 내장 된 AnalogRead () 함수를 사용하는 동안에 만 오버 헤드가 많기 때문에 최대입니다.
ADC는 50kHz ~ 200kHz의 클록 속도로 최상의 작동을 위해 최적화되었습니다.
기본적으로 연속 근사 회로에는 최대 분해능을 얻기 위해 50kHz ~ 200kHz 사이의 입력 클록 주파수 [ADC 클록]이 필요합니다.
ADC 변환에는 13 클럭 사이클이 걸리므로 샘플링 속도는 4kHz ~ 15kHz입니다. AVR120 에 따르면 : AVR에서 ADC의 특성화 및 교정 :
최적의 성능을 위해서는 ADC 클록이 200kHz를 초과하지 않아야합니다. 그러나 최대 1MHz의 주파수는 ADC 해상도를 크게 낮추지 않습니다.
1MHz 이상의 주파수로 ADC를 작동시키는 것은 특징이 없습니다.
1MHz 클록 주파수 = 77kHz 샘플링 주파수이므로 실제 최대 값입니다.
포럼 스레드 Faster Analog Read? 이것에 대해 더 많은 것을 가지고 있습니다.
다른 사람들이 지적했듯이 온칩 컨버터는이 애플리케이션에서 작동하지만 실제로는 외부 ADC를 사용해야합니다. 이렇게하면 많은 문제가 발생하지 않으며 마이크로 클럭의 노이즈가 적고 내부 ADC를 사용하는 것보다 정확도가 높으면서도 훨씬 높은 데이터 속도로 SPI 또는 I2C를 통해 마이크로 샘플을 샘플링 할 수 있습니다. 더 높은 해상도 및 / 또는 더 높은 데이터 속도를 원한다면 LTC1867과 같은 것을 사용하면 최대 175kHz (샘플링 할 수는 있지만 원하는 속도로 빠르게 클럭 할 수 있음)로 샘플링 한 다음 24 비트 데이터를 읽을 수 있습니다. SPI를 통해 최대 20MHz에서. 실제 ADC가 무엇을 할 수 있는지 보십니까? :) 이러한 종류의 전원 (24 또는 32 비트 DSP)을 사용하면 오디오를 압축 및 저장하고, 필터링하고, 변조하고, 재생할 수 있습니다. 가능성은 무한합니다.