ACQUISITION DES DONNÉES Séminaire Design II, Février 2012 Jérôme Genest
UTILISER L ADC D UNE CARTE DE SON Échantillonnage respectant Nyquist Représentation fidèle du signal analogique Outils de traitement du signal numérique Disponibles et valides Autres options: PLL électronique (?)
VÉRIFIEZ LES SPÉCIFICATIONS TECHNIQUES DE VOTRE CARTE DE SON!!! Exemple SoundBlaster X-Fi Technical Specifications Line-In Full Scale Input: 2.0 Vrms Stereo???? Line-Out Full Scale Output: 2.0 Vrms Microphone Input Impedance: 4.0K Ohms Line-In Impedance: 10K Ohms Aux In Full Scale Input (Frontpanel): 2.0 Vrms Aux In Input Impedance (Frontpanel): 10k Ohms Mic In FP Input Impedance: 4.0K Ohms 24-bit Analog-to-Digital conversion of analog inputs: 96kHz sample rate 24-bit Digital-to-Analog conversion of digital sources: 96kHz to analog 7.1 speaker output 24-bit Digital-to-Analog conversion of stereo digital sources: 192kHz to stereo output 16-bit to 24-bit recording sampling rates: 8,11.025,16, 22.05, 24, 32, 44.1, 48 and 96kHz Playback sampling rates: up to 192kHz ASIO 2.0 support: 16bit/44.1kHz,16-bit/48kHz, 24-bit/44.1kHz 24-bit/48kHz and 24-bit/96kHz with direct monitoring S/PDIF output sampling rate: 44.1, 48 or 96 khz Enhanced SoundFont support: Up to 24-bit resolution X-RAM: 64MB Interface: PCI Express (compatible with x1, x4 or x16 slot)
LINE LEVEL VS MIC LEVEL Line-In Signal préamplifié Connecteurs: RCA, fiche ¼ Plusieurs standards line-in Professionnel 600 Ohms dbu (unloaded) 0 dbu == 1 mw dans 600 Ohms (0.7746 Vrms) Europe: nominal +6 dbu (1.55 Vrms) US: nominal +4 dbu (1.28 Vrms) Grand public > 1000 Ohms dbv (volts) 0 dbv == 1 mw dans 1000 Ohms (1 Vrms) Mic De 100 à 1000 fois plus faible que le line level mv RMS
POUR NE PAS SAUTER SON ENTRÉE AUDIO Bien savoir si vous utilisez une entrée mic ou line Placer un limiteur de tension à l entrée de la carte mv pour une entrée mic ~ +-1 V pour une entrée line Ampli suiveur avec alimentation à tension réduite Limiter plus que moins Faire des acquisitions et déterminer quel est la tension de saturation du convertisseur Ajuster le limiteur. Acheter une interface audio USB Stereo! imic: http://store.griffintechnology.com/imic
AUTRES VÉRIFICATIONS Identifier les filtres présents dans votre carte audio Passe-haut (couplage AC) Passe-bas (anti-repliement). Ajouter les filtres nécessaires s il en manque.
ACQUISITION: ASPECTS LOGICIELS
LE TAMPON CIRCULAIRE (RING BUFFER) L ADC audio remplit le vecteur Notre responsabilité de lire aussi vite Le délai peut être aussi important que le temps correspondant à la taille du vecteur. Vider le vecteur en débutant. Si dépassement : perte d échantillons. Exemple d API: Direct Sound sur windows /Dev/audio/ sur Unix
FONCTIONS HAUT-NIVEAU Enregistrement d un bloc de son d une durée prédéterminée. Aucune garantie de contiguité si on fait deux appels consécutifs. Exemple Matlab: y = wavrecord(n,fs,channels) Utilisation d un déclenchement externe (trig) lorsque le laser débute un balayage. Délai possible à caractériser Exemple d API: Windows multimedia functions
EXEMPLE DE CODE EN C AVEC WINDOWS http://www.techmind.org/wave/
UTILISATIONS DE TAMPONS MULTIPLES ET FONCTIONS DE RAPPEL Double buffering & Callbacks Les API évoluées permettent de spéficier plusieurs buffers au composant audio. Une fonction est appellée lorsqu un tampon est plein. (Callback) La fonction a alors le choix de ce qu elle fait avec les données Pour poursuivre l enregistrement, elle replace le tampon vide dans la file d attente. Principe général on enregistre dans un second tampon pendant qu on lit le premier. Délai = taille des buffers Mécanique du vecteur circulaire remplacée ou cachée au programmeur
CALLBACKS Attention, selon l OS les fonctions de rappel peuvent être appelées lors d une interruption (interupt) Implications sur le code: On ne peut déplacer de la mémoire Les registres ne sont pas nécessairement valides Exemple d API: Windows multimedia functions Apple: Core Audio / Audio queues
MATLAB & SIMULINK y = wavrecord(n,fs,channels) From audio device
REFERENCES Specs de carte de son http://support.creative.com/kb/showarticle.aspx?sid=52910 Line Level http://en.wikipedia.org/wiki/line-level Vecteur circulaire http://en.wikipedia.org/wiki/circular_buffer DirectSound http://msdn.microsoft.com/en-us/library/bb219826(vs.85).aspx Windows Multimedia http://www.techmind.org/wave/ http://msdn.microsoft.com/en-us/library/ms713735(vs.85).aspx Apple Core Audio: http://developer.apple.com/referencelibrary/musicaudio/