Pages: [1]   Go Down
Author Topic: Echantillonage à 8 kHz  (Read 824 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

J'ai un projet à réaliser, il s'agit de à partir d'un micro d'avoir un effet d 'écho quand l'on parle.
Je dois donc récupérer avec un échantillonnage à 8 kHz le son puis appliqué un algorithme pour l'effet "écho" sur les échantillons et le ressortir.
Malheureusement je ne vois pas comment réaliser l'echantillonage à 8 kHz.
Pourriez vous m'indiquer comment le réaliser ?


Merci d'avance

Logged

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5413
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Pour l'échantillonnage à 8KHz i faut utiliser un timer.
Comme c'est quelque chose d'assez compliquer à utiliser il existe un librairie pour cela smiley-wink
http://playground.arduino.cc/Main/FlexiTimer2

Avec comme configuration :
Code:
FlexiTimer2::set(1, 1.0/8000, maFonction);

PS: pour l'effet d'echo je ne sait pas comment tu comptes l'implémenter mais avec le peu de RAM que possède l'arduino tu ne pourras pas faire grand chose.
Les cartes arduino ne sont pas fait pour traiter des signaux analogiques en temps réel.
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Offline Offline
Newbie
*
Karma: 0
Posts: 36
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

C'est un projet chouette mais qui comporte quelque difficulté.
Lorsque tu échantillonnes, ta frequence d'échantillonnage doit être au minimum le double de la frequence la plus élevé que tu va échantillonner. Ici tu échantillonne des fréquences audibles, de 20Hz à 20KHz, donc ta F d’échantillonnage doit au minimum être de 40Khz. Sinon tu vas te retrouver avec quelque chose de TRÈS bizarre!

Bon tu veux travailler a 8KHz, je te propose de filtrer ton signal audio à 4KHz avec un bon filtre. Sachant que les fondamental de la voix sont vers 1-2KHz environ, ça passe. Mais je ne sais pas si ça règle réellement le problème... A voir.
Tu dois aussi savoir que la résolution du convertisseur de l'arduino est de 10bit, tu vas te retrouver avec une qualité de son pas très bonne, mais ça dois passer.
Tu dois aussi, en premier lieu, amplifier le signal de ton micro. En sortie tu vas récupérer une signal au alentour du mV, voir du uV. Donc construction d'un étage de préamplification, pour élever ton signal au max à 5V. Cette étage vas dépendre aussi du type de micro que tu utilises, électret, dynamique, électrostatique...

C'est vrai que pour la RAM ça risque d’être limite.

Tien nous au courant, c'est un sujet qui m’intéresse!  smiley
« Last Edit: March 25, 2013, 06:20:39 am by MrPoulet » Logged

IDF/SO
Offline Offline
Edison Member
*
Karma: 41
Posts: 2311
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Lorsque tu échantillonnes, ta frequence d'échantillonnage doit être au minimum le double de la frequence la plus élevé
+1
Quote
je te propose de filtrer ton signal audio à 4KHz
+1
A condition que tu élimines les fréquences supérieures à 4kHz, une fréquence d'échantillonage de 8kHz donnera la qualité d'une communication téléphonique (bande 300Hz-3400 Hz), c'est à dire pas terrible..
Le maximum de puissance de la voix humaine est centrée sur 800 Hz (voir les filtres psophométriques utilisés dans les télécom).

Quote
Sinon tu vas te retrouver avec quelque chose de TRÈS bizarre!
+1

Avant d'aller plus loin lis donc ceci :
http://fr.wikipedia.org/wiki/%C3%89chantillonnage_%28signal%29#Contraintes_sur_le_signal_.C3.A9chantillonn.C3.A9
Logged

France
Offline Offline
Faraday Member
**
Karma: 40
Posts: 3636
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Avec un atMega328 (le processeur de l'arduino UNO par exemple) en admettant que tu arrives à récupérer les 3/4 de la RAM disponible (ce qui fait 1,5k octets) et à condition de ne coder tes échantillons que sur 8 bits au lieu des 10 que délivre l'ADC du processeur tu n'auras tout au plus que 180ms de retard. C'est relativement peu pour faire un bon effet d'écho.

Pour avoir quelque chose de sérieux il faudrait passer à l'arduino Mega là avec 8K de RAM tu peux commencer à faire quelque chose de sérieux.
Logged

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5413
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Même avec 7.5K (disons 500 octets pour le système) de RAM, à 8KHz et avec une précision de 8 bits ça va faire crade ...

Pour le coup une carte arduino Due serait la plus adapté (convertisseur analogique -> numérique + numérique -> analogique 12 bits et 96Ko de RAM)
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

france
Offline Offline
God Member
*****
Karma: 15
Posts: 881
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sinon utiliser une ligne à retard à ressorts (analogique)
http://www.sonelec-musique.com/electronique_theorie_reverb_ressort.html
et l'Arduino se charge seulement des réglages, pas du retard de propagation.
Logged

Christian

Pages: [1]   Go Up
Jump to: