Bonjour à tous!
J'ai un Arduino Duemilanove qui traîne en ce moment et j'ai pensé que je pourrais essayer quelques projets d'interface audio. Je me demande simplement quelle sorte de fréquence d'échantillonnage je peux atteindre en utilisant une seule entrée analogique et en appliquant des algorithmes simples sur la puce, puis en utilisant quelques sorties numériques liées aux LED.
J'aimerais échantillonner à ~ 44,1 kHz si possible.
Pour référence, la première chose que je veux essayer est un simple accordeur de guitare.
Réponses:
Je ne pense pas que vous puissiez échantillonner aussi rapidement en pleine résolution. L'ATMega168 ne peut échantillonner qu'à 15 ksps à sa pleine résolution.
Cela dit, vous devriez pouvoir obtenir un taux d'échantillonnage approprié pour obtenir un accordeur de guitare fonctionnel. 44,1 kHz est probablement un peu plus rapide que ce dont vous aurez besoin étant donné que le fondamental de la corde de mi élevé et d'une guitare est d'environ 330 Hz.
la source
http://arduino.cc/en/Reference/AnalogRead
Rob.
la source
Google pour 'AVR guitar tuner', il existe déjà quelques projets qui le font déjà, et ils semblent pouvoir le faire sans trop de problèmes avec la vitesse de l'AVR.
la source
Si vous utilisez un comparateur analogique (soit l'un interne de l'AVR ou un ampli op externe) qui transforme l'entrée analogique en une onde carrée, vous pouvez échantillonner les oscillations à des vitesses beaucoup plus élevées. Bien que ce ne soit pas un véritable échantillonnage audio, pour construire un accordeur de guitare, c'est souvent tout ce dont vous avez besoin car tout votre code ferait de toute façon serait de compter zéro passage par unité de temps.
la source
Il existe un certain nombre d'ADC disponibles en série, I2S est la norme NXP basée sur I2C. Ils vous permettent de tirer assez facilement en analogique, même à des vitesses beaucoup plus élevées. Ce lien devrait vous amener à une partie NXP conçue pour l'audio: UDA1361TS
Des échantillons gratuits sont votre ami :)
la source
Tout d'abord, pour votre application particulière, vous n'avez vraiment besoin que d'une fréquence d'échantillonnage d'environ 1 kHz, en supposant que vous accordez la fréquence fondamentale et non l' un des partiels inharmoniques ...
Quoi qu'il en soit, en ce qui concerne la fréquence d'échantillonnage maximale possible, le manuel Arduino dit:
Cela impliquerait que la fréquence d'échantillonnage de 10 kHz est la fréquence max. Pourtant. Vous pouvez obtenir des taux d'échantillonnage plus élevés en accédant directement aux registres ADC . La page de traitement audio en temps réel Arduino utilise par exemple deux canaux à 15 kHz. Donc, le 10 kHz max est uniquement en utilisant la fonction intégrée AnalogRead (), car elle a beaucoup de surcharge.
L'ADC est optimisé pour un fonctionnement optimal avec une vitesse d'horloge comprise entre 50 kHz et 200 kHz:
Puisqu'une conversion ADC prend 13 cycles d'horloge, ce serait une fréquence d'échantillonnage de 4 kHz à 15 kHz. Selon AVR120: Caractérisation et étalonnage de l'ADC sur un AVR :
Fréquence d'horloge de 1 MHz = fréquence d'échantillonnage de 77 kHz, c'est donc le maximum réaliste.
Le fil de discussion Faster Analog Read? a plus à ce sujet.
la source
Le convertisseur sur puce fonctionnera pour cette application comme d'autres l'ont souligné, mais vous devriez vraiment envisager d'utiliser un ADC externe. Cela vous évitera beaucoup de problèmes et libérera votre micro pour échantillonner sur SPI ou I2C à des taux de données beaucoup plus élevés, plus faibles, avec moins de bruit provenant de l'horloge du micro et avec une plus grande précision que l'utilisation de l'ADC interne. Si vous voulez plus de résolution et / ou un débit de données plus élevé, utilisez quelque chose comme le LTC1867, qui vous permettra d'échantillonner jusqu'à 175 kHz (bien que vous puissiez le synchroniser aussi rapidement que vous le souhaitez), puis lisez les données 24 bits jusqu'à 20 MHz sur SPI. Voyez ce qu'un véritable ADC peut faire? :) Avec ce genre de puissance (et un DSP 24 ou 32 bits), vous pouvez compresser et stocker votre audio, le filtrer, le moduler, le lire ... les possibilités sont infinies.
la source
Êtes-vous intéressé par un taux d'échantillonnage de 64K? Jetez un oeil ici
Maintenant porté à 150 kHz, 10 bits, aucun composant supplémentaire!
Jetez un oeil là-bas
la source