Filtrage temps-réel et MATLAB (introduction)

Documents pareils
INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE

Projet audio. Analyse des Signaux ELE2700

Systèmes de transmission

M1107 : Initiation à la mesure du signal. T_MesSig

Intérêt du découpage en sous-bandes pour l analyse spectrale

Communication parlée L2F01 TD 7 Phonétique acoustique (1) Jiayin GAO <jiayin.gao@univ-paris3.fr> 20 mars 2014

LABO PROJET : IMPLEMENTATION D UN MODEM ADSL SOUS MATLAB

Enregistrement et transformation du son. S. Natkin Novembre 2001

J AUVRAY Systèmes Electroniques TRANSMISSION DES SIGNAUX NUMERIQUES : SIGNAUX EN BANDE DE BASE

Mode d emploi ALTO MONITOR PROCESSEUR D ÉCOUTE. Version 1.0 Juillet 2003 Français

Université de La Rochelle. Réseaux TD n 6

ACOUSTIQUE 3 : ACOUSTIQUE MUSICALE ET PHYSIQUE DES SONS

CHAPITRE V. Théorie de l échantillonnage et de la quantification

Scanner acoustique NoiseScanner

Automatique Linéaire 1 Travaux Dirigés 1A ISMIN

EMETTEUR ULB. Architectures & circuits. Ecole ULB GDRO ESISAR - Valence 23-27/10/2006. David MARCHALAND STMicroelectronics 26/10/2006

Chaine de transmission

Didier Pietquin. Timbre et fréquence : fondamentale et harmoniques

Caractéristiques des ondes

TD1 Signaux, énergie et puissance, signaux aléatoires

Filtres passe-bas. On utilise les filtres passe-bas pour réduire l amplitude des composantes de fréquences supérieures à la celle de la coupure.

Chapitre 2 Les ondes progressives périodiques

5.2 Théorème/Transformée de Fourier a) Théorème

TRAVAUX PRATIQUES SCIENTIFIQUES SUR SYSTÈME

LABO 5 ET 6 TRAITEMENT DE SIGNAL SOUS SIMULINK

Exemple d acquisition automatique de mesures sur une maquette de contrôle actif de vibrations

Les technologies pour la santé, une discipline transversale pour la pédagogie en EEA : application aux troubles du sommeil

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.


Dan Istrate. Directeur de thèse : Eric Castelli Co-Directeur : Laurent Besacier

Recherche De Coalescences Binaires Étalonnage Du Détecteur

UE 503 L3 MIAGE. Initiation Réseau et Programmation Web La couche physique. A. Belaïd

INTERPRÉTATION ET ANOMALIES DE LA PROSPECTION À RÉSONANCE MAGNÉTIQUE (MRS)

Transmission d informations sur le réseau électrique

1. PRESENTATION DU PROJET

Son et Mathématiques

Production de documents audio-numériques

LA COUCHE PHYSIQUE EST LA COUCHE par laquelle l information est effectivemnt transmise.

Calcul des indicateurs de sonie : revue des algorithmes et implémentation

Mesures de temps de propagation de groupe sur convertisseurs de fréquence sans accès aux OL

Projet de Traitement du Signal Segmentation d images SAR

Network musical jammin

8563A. SPECTRUM ANALYZER 9 khz GHz ANALYSEUR DE SPECTRE

SCL LOGICIEL DE CONTROL

FAG Detector III la solution pour la surveillance et l équilibrage. Information Technique Produit

«Tous les sons sont-ils audibles»

Signalisation, codage, contrôle d'erreurs

2 g Net - 36 g emballé 2 tips silicone anallergique small + 2 medium + 2 filtres à membrane. 2 tailles d embouts

Cours d Acoustique. Niveaux Sonores Puissance, Pression, Intensité

Multichronomètre SA10 Présentation générale

Traitement du signal avec Scilab : la transformée de Fourier discrète

Chapitre I La fonction transmission

Qu est ce que web meeting?

TP 03 B : Mesure d une vitesse par effet Doppler

Communications numériques

TP Modulation Démodulation BPSK

Transmission de données. A) Principaux éléments intervenant dans la transmission

Chapitre 5 Émetteurs et récepteurs sonores

TS 35 Numériser. Activité introductive - Exercice et démarche expérimentale en fin d activité Notions et contenus du programme de Terminale S

ADSL. Étude d une LiveBox. 1. Environnement de la LiveBox TMRIM 2 EME TRIMESTRE LP CHATEAU BLANC CHALETTE/LOING NIVEAU :

Expérience 3 Formats de signalisation binaire

Compatibilité Électromagnétique

Tuto pour connecter une source RVB RGB à un moniteur Commodore / Amiga

Systèmes de communications numériques 2

Partie Agir : Défis du XXI ème siècle CHAP 20-ACT EXP Convertisseur Analogique Numérique (CAN)

EFFET DOPPLER EXOPLANETES ET SMARTPHONES.

Traitement du signal avec Scilab : transmission numérique en bande de base

Information. BASES LITTERAIRES Etre capable de répondre à une question du type «la valeur trouvée respecte t-elle le cahier des charges?

Précision d un résultat et calculs d incertitudes

Bandes Critiques et Masquage

GUIDE DE PRODUCTION DES STEMS

Audio pour HDSLR. «Comment obtenir un son professionnel en filmant avec un reflex numérique?»

TP: Représentation des signaux binaires. 1 Simulation d un message binaire - Codage en ligne

La couche physique de l ADSL (voie descendante)

Champ électromagnétique?

10ème Congrès Français d'acoustique Lyon, Avril 2010

Ecole Centrale d Electronique VA «Réseaux haut débit et multimédia» Novembre 2009

Synchroniser le son et la vidéo dans Lightworks

Janvier 2013 AUDIO/VIDEO PLAYER AUDIO VIDEO OEM DIVERS

H.323. Internet Multimédia. Sommaire

Architectures et Protocoles des Réseaux

GUIDE DE PRISE EN MAIN ISIS PROTEUS V7

Technique de codage des formes d'ondes

Résumé non technique. Tableaux d estimation

TABLE DES MATIÈRES 1. DÉMARRER ISIS 2 2. SAISIE D UN SCHÉMA 3 & ' " ( ) '*+ ", ##) # " -. /0 " 1 2 " 3. SIMULATION 7 " - 4.

SYSTEME DE PALPAGE A TRANSMISSION RADIO ETUDE DU RECEPTEUR (MI16) DOSSIER DE PRESENTATION. Contenu du dossier :

Exercices d application

Equipement. électronique

1 Démarrer L écran Isis La boite à outils Mode principal Mode gadget Mode graphique...

LES CARACTERISTIQUES DES SUPPORTS DE TRANSMISSION

SIGNAUX NUMERIQUES ET MODULATIONS NUMERIQUES

Mesures d antennes en TNT

Choix d'enceintes de monitoring et autres...

Introduction à l informatique temps réel Pierre-Yves Duval (cppm)

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

DIPLÔME INTERUNIVERSITAIRE D ECHOGRAPHIE. Examen du Tronc Commun sous forme de QCM. Janvier h à 16 h

LE VDSL 2 EN FRANCE. Source :

Transcription:

Filtrage temps-réel et MATLAB (introduction) Matthieu Kowalski Univ Paris-Sud L2S (GPI) Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 1 / 27

1 Rappels des cours précédents : filtrage idéal et FIR 2 Les bases du temps-réel audio sous matlab Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 2 / 27

Plan 1 Rappels des cours précédents : filtrage idéal et FIR 2 Les bases du temps-réel audio sous matlab Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 3 / 27

Filtrage Définition Un filtre est un système linéaire et invariant dans le temps. Il peut donc s écrire comme une convolution. Réponse impulsionnelle Soit S un filtre. La réponse impulsionnelle h de S correspond à la sortie du système à l impulsion unité (Dirac). Ainsi et l on a, pour tout signal x h = S(δ) y = S(x) = h x = x h y n = + k= h k x n k Pour les signaux finis, la convolution suppose les signaux périodiques, de même période! Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 4 / 27

Filtres réalisables 1 Filtre réalisable Un filtre de réponse impulsionnelle h est réalisable ssi il est stable et causal. Remarque 1 Si un filtre est stable, alors il admet une transformée de Fourier Réciproquement, si un filtre admet une transformée de Fourier, alors il est stable. Remarque 2 Un filtre réalisable admet forcément une transformée de Fourier Si un filtre admet une transformée de Fourier il n est pas forcément réalisable, car il peut ne pas être causal Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 5 / 27

Filtres réalisables 2 Filtre stable Un filtre de réponse impulsionnelle h est stable ssi + k= h k < + Filtre stable Un filtre de réponse impulsionnelle h est causal ssi h est causal, ie h k = 0 k < 0 Filtre réalisable Un filtre de réponse impulsionnelle h est réalisable ssi il est stable et causal. Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 6 / 27

Filtrage et transformée de Fourier Réponse en fréquence ou Gain complexe La réponse en fréquence, ou gain complexe, d un filtre est sa transformée de Fourier (quand elle existe!). Filtrage dans le domaine fréquentielle Soit S un filtre de impulsionnelle h et x un signal. On a y = S(x) = h x Si h et x admettent une transformée de Fourier, on a dans le domaine fréquentiel : ŷ = ĥ ˆx Filtrer un signal, c est agir directement sur son spectre! Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 7 / 27

Filtre passe-bas idéal 1 Définition La réponse en fréquence d un filtre passe-bas idéal de fréquence de coupure ν 0 est donnée par : { ĥ(ν) pb 1 si ν < ν ν 0 0 = 0 sinon Réponse en fréquence 1 0.8 Amplitude 0.6 0.4 0.2 0-1 -0.8-0.6-0.4-0.2 0 0.2 0.4 0.6 0.8 1 Frequence (Hz) Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 8 / 27

Filtre passe-haut idéal 1 Définition La réponse en fréquence d un filtre passe-haut idéal de fréquence de coupure ν 0 est donnée par : { ĥ(ν) ph 0 si ν < ν ν 0 0 = 1 sinon = 1 ĥ(ν) pb ν 0 Réponse en fréquence 1 0.8 Amplitude 0.6 0.4 0.2 0-1 -0.8-0.6-0.4-0.2 0 0.2 0.4 0.6 0.8 1 Frequence (Hz) Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 9 / 27

Filtre passe-bande 1 Définition La réponse en fréquence d un filtre passe-bande idéal de fréquences de coupures ν 0 > 0 et ν 1 > 0 est donnée par : 1 si ν 0 < ν < ν 1 ĥ(ν) pbande ν 0 ;ν 1 = 1 si ν 0 < ν < ν 1 0 sinon = ĥ(ν) pb ν 1 ĥ(ν) pb ν 0 Réponse en fréquence 1 0.8 Amplitude 0.6 0.4 0.2 0-1 -0.8-0.6-0.4-0.2 0 0.2 0.4 0.6 0.8 1 Frequence (Hz) Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 10 / 27

Filtres équation aux différences Soit un filtre de réponse impulsionnelle h. Alors le signal y, version filtrée du signal x par h, est donnée par : y n = (h x) n = + k= h k x n k Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 11 / 27

Filtres équation aux différences Soit un filtre de réponse impulsionnelle h. Alors le signal y, version filtrée du signal x par h, est donnée par : y n = (h x) n = + k= h k x n k Comment réaliser un tel filtre en temps réel? Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 11 / 27

Filtres FIR ou MA Définition Soit un filtre de réponse impulsionnelle h. Le filtre est dit à réponse impulsionnelle finie (FIR) ou à moyenne mobile (MA) si h est finie : h = {h k1,..., h 0,..., h k2 } L équation aux différences s écrit alors : y n = k 2 k= k 1 h k x n k On appelle ordre du filtre, le nombre d échantillons de sa réponse impulsionnelle. Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 12 / 27

Filtres FIR ou MA Définition Soit un filtre de réponse impulsionnelle h. Le filtre est dit à réponse impulsionnelle finie (FIR) ou à moyenne mobile (MA) si h est finie : h = {h k1,..., h 0,..., h k2 } L équation aux différences s écrit alors : y n = k 2 k= k 1 h k x n k On appelle ordre du filtre, le nombre d échantillons de sa réponse impulsionnelle. Remarques Un filtre FIR est forcément stable Il n est pas forcément causal Un filtre FIR est réalisable ssi il est causal Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 12 / 27

Synthèse de filtre RIF But Synthétiser un filtre RIF (ou MA) causal, qui s approche le plus possible du filtre idéal recherché. RI du filtre RIF recherché VS RI du filtre idéal Le filtre idéal a une RI h ideal a support infini, non causal : y n = + k= h k x n k Le filtre RIF que l on cherche étant causal, sa réponse impulsionnelle h doit être causale : K y n = h k x n k k=0 Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 13 / 27

Synthèse de filtre RIF But Synthétiser un filtre RIF (ou MA) causal, qui s approche le plus possible du filtre idéal recherché. Synthèse par fenêtrage Calcul de la RI h ideal par TF inverse : Fenêtrage de la RI h ideal 1/2 hn ideal = H(ν)e i2πnν dν 1/2 h win = w {h ideal N/2,..., hideal N/2 } Application d un retard sur h tronc, afin de décaler les indices pour rendre le filtre causal hn RIF = hn N/2 win Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 14 / 27

Paramètres d un filtre FIR Ordre (nombre de coefficients) Fenêtre (Rectangulaire, Hamming, Hann, Blackman... ) Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 15 / 27

Plan 1 Rappels des cours précédents : filtrage idéal et FIR 2 Les bases du temps-réel audio sous matlab Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 16 / 27

Notion de temps réel La notion de temps-réel est liée à celle de latence, et dépend de l application Latence = durée qui s écoule entre l action et la réaction. Par exemple, un décalage entre le son et l image de 20 ms est acceptable. Au dela, on perçoit le décalage. Traiter un signal en temps-réel = traiter un signal en minimisant la latence Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 17 / 27

Structure général de traitement Structure de traitement Lire un bloc de signal (fichier, micro... ) Traiter ce bloc Écrire ce bloc (fichier, enceintes... ) Problèmes Le traitement ne doit pas introduire de latence En video : < 20 ms. En audio : < 5 ms! Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 18 / 27

Temps réel audio sous Matlab Boucle temps-réel Matlab avec la toolbox dsp.systems % Lecture d un fichier audio: AFR = dsp.audiofilereader( fichier.wav, SamplesPerFrame,frameLength); % Ecriture d un fichier audio: ADW = dsp.audioplayer(afr.samplerate); while ~isdone(afr) % Lecture d un block de signal audio = step(afr); % Traitement de ce block audio_processed = signal_processing(audio); % Ecriture du block de signal step(adw, audio_processed) end % Fermeture des ressources close(afr); close(adw); Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 19 / 27

Temps-réel et filtrage ideal Implémenter un filtrage ideal par bloc Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 20 / 27

Temps-réel et filtrage ideal Implémenter un filtrage ideal par bloc voir cours-td 1 Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 20 / 27

Temps-réel et filtrage ideal Implémenter un filtrage ideal par bloc voir cours-td 1 Qu observe-t-on? Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 20 / 27

Temps-réel et filtrage ideal Implémenter un filtrage ideal par bloc voir cours-td 1 Qu observe-t-on? Écoute très éloignée du signal original Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 20 / 27

Temps-réel et filtrage ideal Implémenter un filtrage ideal par bloc voir cours-td 1 Qu observe-t-on? Écoute très éloignée du signal original Pourquoi entend-t-on ce phénomène? Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 20 / 27

Temps-réel et filtrage ideal Implémenter un filtrage ideal par bloc voir cours-td 1 Qu observe-t-on? Écoute très éloignée du signal original Pourquoi entend-t-on ce phénomène? Le filtre n est pas compatible avec le temps-réel. Les artefacts viennent de la convolution circulaire! Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 20 / 27

Temps-réel et filtrage FIR Quels échantillons sont nécessaires pour le filtre FIR? Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 21 / 27

Temps-réel et filtrage FIR Quels échantillons sont nécessaires pour le filtre FIR? des K précédents échantillons, où K est l ordre du filtre Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 21 / 27

Temps-réel et filtrage FIR Quels échantillons sont nécessaires pour le filtre FIR? des K précédents échantillons, où K est l ordre du filtre Par quoi semble-t-il raisonnable de limiter l ordre du filtre? Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 21 / 27

Temps-réel et filtrage FIR Quels échantillons sont nécessaires pour le filtre FIR? des K précédents échantillons, où K est l ordre du filtre Par quoi semble-t-il raisonnable de limiter l ordre du filtre? Par la taille des blocs utilisée pour le temps-réel Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 21 / 27

Temps-réel et filtrage FIR Quels échantillons sont nécessaires pour le filtre FIR? des K précédents échantillons, où K est l ordre du filtre Par quoi semble-t-il raisonnable de limiter l ordre du filtre? Par la taille des blocs utilisée pour le temps-réel Proposer une implémentation d un filtrage temps-réel, avec un filtre FIR Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 21 / 27

Temps-réel et filtrage FIR Quels échantillons sont nécessaires pour le filtre FIR? des K précédents échantillons, où K est l ordre du filtre Par quoi semble-t-il raisonnable de limiter l ordre du filtre? Par la taille des blocs utilisée pour le temps-réel Proposer une implémentation d un filtrage temps-réel, avec un filtre FIR A partir de quel ordre le signal correctement filtré? Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 21 / 27

Temps-réel et filtrage FIR Quels échantillons sont nécessaires pour le filtre FIR? des K précédents échantillons, où K est l ordre du filtre Par quoi semble-t-il raisonnable de limiter l ordre du filtre? Par la taille des blocs utilisée pour le temps-réel Proposer une implémentation d un filtrage temps-réel, avec un filtre FIR A partir de quel ordre le signal correctement filtré? Cela dépend de la fenêtre. Un ordre d environ 100 semble nécessaire avec une fenêtre de Hann. Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 21 / 27

Gain en décibel Pour agir sur les fréquences, on peut leur appliquer un gain en décibel. Soit s le signal original et h s le signal filtré : Gain en décibel ( ) ) h s 2 ( ĥ ŝ 2 G = 10 log 10 s 2 = 10 log 10 ŝ 2 Ainsi, si l on veut appliquer un gain de 3 db, il suffit d amplifier les fréquences de : ĥ k = 10 G/10 On voit que pour G = 3, alors h 2. Un gain de 3 db double l énergie du signal! Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 22 / 27

Vers un Equalizer numérique Reprendre le programme ci-dessus avec : Une fonction pour calculer les coefficients du filtre voulu, selon la fréquence de coupure, l ordre et le gain (en DB) voulu : [FIRcoeff] = coeff passe bas fir(fe,fc,ordre,fenetre,gaindb,gainmax) Une fonction pour filtrer en temps-réel [ sig filtered ] = realtime filtering(sig pad,framelength,fircoeff) où sig pad est le signal contenant suffisament d échatillons passés pour appliquer le filtre. Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 23 / 27

Vers un Equalizer numérique Le but est de créer un equalizer numérique. On considère que l oreille humaine est sensible aux fréquences sur une échelle logarithmique, de 20 Hz à 20000 Hz. Division de la bande fréquentielle sub-basses : 30 a 63 Hz basses : 63 a 250 Hz bas-mediums : 250 a 500 Hz mediums : 500 a 2000 Hz haut-mediums : 2 a 4 khz aigus : 4 a 20 khz Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 24 / 27

Vers un Equalizer numérique trois bandes Ce qui donne, pour un equalizer trois bandes, la division suivante : Equalizer trois bandes Basses : < 250 Hz Medium : 250 à 2000 Hz Aigus : > 2000 Hz Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 25 / 27

Vers un Equalizer numérique trois bandes Quels sont les types de filtres qui vont intervenir pour créer un equalizer trois bandes? Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 26 / 27

Vers un Equalizer numérique trois bandes Quels sont les types de filtres qui vont intervenir pour créer un equalizer trois bandes? Un passe-bas, un passe-bande et un passe-haut Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 26 / 27

Vers un Equalizer numérique trois bandes Quels sont les types de filtres qui vont intervenir pour créer un equalizer trois bandes? Un passe-bas, un passe-bande et un passe-haut Implémenter trois fonctions qui calcule les coefficients FIR de ces trois filtres Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 26 / 27

Vers un Equalizer numérique trois bandes Quels sont les types de filtres qui vont intervenir pour créer un equalizer trois bandes? Un passe-bas, un passe-bande et un passe-haut Implémenter trois fonctions qui calcule les coefficients FIR de ces trois filtres [FIRcoeffBass] = coeff passe bas fir(fe,fc,ordre,fenetre,gaindb,gainmax) [FIRcoeffMedium] = coeff passe bande fir(fe,fc1,fc2,ordre,fenetre,gaindb,gainmax) [FIRcoeffAigu] = coeff passe haut fir(fe,fc,ordre,fenetre,gaindb,gainmax) Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 26 / 27

Vers un Equalizer numérique trois bandes : interface graphique Voir Matlab... Matthieu Kowalski Filtrage temps-réel et MATLAB (introduction) 27 / 27