Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Traitement du signal Discussion :

Algorithme de réduction de bruit


Sujet :

Traitement du signal

  1. #1
    Candidat au Club
    Femme Profil pro
    etudiante
    Inscrit en
    mai 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 25
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : etudiante

    Informations forums :
    Inscription : mai 2015
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Algorithme de réduction de bruit
    Bonjour,

    J'ai enregistré un signal audio sous audacity, j'ai récupéré ce signal sous python mais j'aimerais réduire le bruit de ce signal sous python.
    J'aimerais fabriquer un filtre numérique mais je ne s'est pas trop comment faire, j'aimerais avoir des idées d'algorithme pour réduire le bruit d'un signal audio sous python si possible.
    Merci par avance.

  2. #2
    Modérateur

    Homme Profil pro
    Architecte technique
    Inscrit en
    juin 2008
    Messages
    15 081
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 15 081
    Points : 25 596
    Points
    25 596
    Par défaut
    Salut,

    Le forum algorithmes me semble plus approprié pour trouver des idées côté algo. à appliquer.
    Comment le mettre en œuvre en Python sera éventuellement pour plus tard.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre actif Avatar de cedd70
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    mars 2012
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : mars 2012
    Messages : 153
    Points : 269
    Points
    269
    Par défaut
    Bonjour,

    J'y connais rien mais si tu fais une simple moyenne sur quel que points ca ne baisserait pas déjà considérablement le bruit ?

  4. #4
    Candidat au Club
    Femme Profil pro
    etudiante
    Inscrit en
    mai 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 25
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : etudiante

    Informations forums :
    Inscription : mai 2015
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Je ne pense pas que faire une moyenne permettrait de réduire le bruit puisque cela fausserait mon signal sonore de départ, merci quand même pour l'idée.

  5. #5
    Modérateur

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    août 2014
    Messages
    1 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : août 2014
    Messages : 1 295
    Points : 2 388
    Points
    2 388
    Par défaut
    Bonjour,

    Tu peux commencer par étudier la transformée de fourrier de ton signal et y appliquer différents filtres (passe-haut, passe-bas, coupe-bande, passe-bande) selon "l'emplacement" fréquentiel de ton bruit.
    Si vous cherchez des réponses sur ce forum il faudra avant tout expliquer clairement votre problème et exposer la démarche que vous avez entreprise pour le résoudre. Fournissez une base de travail et de réflexion à vos interlocuteurs!

  6. #6
    Membre actif Avatar de cedd70
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    mars 2012
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : mars 2012
    Messages : 153
    Points : 269
    Points
    269
    Par défaut
    Et si tu passes le signal en fréquentielle avec une FFT, et ensuite tu appliques un filtre passe bas ou haut selon les fréquences à éliminer.

  7. #7
    Candidat au Club
    Femme Profil pro
    etudiante
    Inscrit en
    mai 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 25
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : etudiante

    Informations forums :
    Inscription : mai 2015
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    J'ai déjà étudié la transformée de fourrier de mon signal mais je ne sais pas comment fabriquer le filtre.
    Supposons que le bruit se situe au début du signal, il faut donc que j'applique un filtre passe-haut, mais comment le fabriquer ?
    Merci de votre aide.

  8. #8
    Modérateur

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    août 2014
    Messages
    1 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : août 2014
    Messages : 1 295
    Points : 2 388
    Points
    2 388
    Par défaut
    Malheureusement, je n'ai aucune compétence en python. Tu peux commencer de façon très brutale en forçant tes données fréquentielles à zéro dans la zone concernée par le bruit.
    Si vous cherchez des réponses sur ce forum il faudra avant tout expliquer clairement votre problème et exposer la démarche que vous avez entreprise pour le résoudre. Fournissez une base de travail et de réflexion à vos interlocuteurs!

  9. #9
    Candidat au Club
    Femme Profil pro
    etudiante
    Inscrit en
    mai 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 25
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : etudiante

    Informations forums :
    Inscription : mai 2015
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Merci,

    Je pense que c'est une bonne idée j'ai essayé de faire un filtre passe bande en mettant certaine fréquence à zéro cela à modifier mon signal, du coup j'ai supprimé le bruit mais aussi mon signal dans une zone de fréquence. J'aimerai essayé de conserver le signal. Peut-on jouer sur les amplitudes sans modifier les fréquences, par exemple je pourrai enregistrer un signal audio avec du bruit puis enregistrer le signal audio du bruit et soustraire les amplitudes? mais en faisant cela, la nature de mon signal sera sans doute déformée.
    Si vous avez d'autres idées cela m'intéresse.

    Merci encore.

  10. #10
    Modérateur

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    août 2014
    Messages
    1 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : août 2014
    Messages : 1 295
    Points : 2 388
    Points
    2 388
    Par défaut
    Etant donné que ton bruit est probablement pseudo-aléatoire, je ne pense pas que soustraire les amplitudes est une solution pertinente. Cependant il y a de l'idée dans ce que tu écris. Tu devrais comparer le spectre de ton bruit et celui de ton signal afin de déterminer si le bruit apparaît à une fréquence spécifique que tu pourrais filtrer facilement. Si tu échantillonnes sur une longue période, tu devrais pouvoir avoir une bonne estimation fréquentielle de ton bruit.
    Si vous cherchez des réponses sur ce forum il faudra avant tout expliquer clairement votre problème et exposer la démarche que vous avez entreprise pour le résoudre. Fournissez une base de travail et de réflexion à vos interlocuteurs!

  11. #11
    Candidat au Club
    Homme Profil pro
    R&D
    Inscrit en
    mars 2019
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2019
    Messages : 1
    Points : 2
    Points
    2
    Par défaut débruitage
    Citation Envoyé par cellia Voir le message
    J'ai enregistré un signal audio sous audacity, j'ai récupéré ce signal sous python mais j'aimerais réduire le bruit de ce signal sous python.
    J'aimerais fabriquer un filtre numérique mais je ne s'est pas trop comment faire, j'aimerais avoir des idées d'algorithme pour réduire le bruit d'un signal audio sous python si possible.
    Merci par avance.

    J'ai travaillé sur ça et ai publié un alg du nom de urQRd..
    Le code est en Python.. il faut découper en fenêtre glissante et ça devrait marcher..

  12. #12
    Membre éclairé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    mai 2013
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : mai 2013
    Messages : 131
    Points : 660
    Points
    660
    Par défaut Filtrage numérique
    Bonjour,

    C'est un problème de filtrage numérique donc plutôt de la classe des des algorithmes de traitement du signal. Pour les filtres, il est assez rarement nécessaire de faire des FFT qui, outre le temps, posent des problèmes de type et mouvement du fenêtrage.

    En général, mais je ne suis pas un spécialiste, on utilise la transformée en Z d'un filtre pour synthétiser le filtre numérique correspondant. Les filtres numériques sont de deux sortes : à réponse impulsionnelle finie (qui ne dépendent que d'un nombre fini d'échantillons) ou infinie.

    Par exemple, un filtre très simple qui correspond à un filtre RC peut s'écrire S = (1-a).E + a.S avec a entre 0 et 1. Il provient d'une transformée en Z : S = (1-a).E/(1 -Z-1).
    Z-1 peut être vu comme un opérateur qui retourne l'échantillon précédent (Z-2) retournerait l'avant dernier échantillon etc.). Cet exemple est un filtre de réponse infini car S dépend de E et S-1 qui dépend de E-1 et S-2 qui dépend de... Ad nauseam.

    La proposition faite d'une moyenne locale est un filtre passe-bas. Bien sûr il altère le signal puisque c'est un filtre qui supprime les hautes fréquences. Son problème est sa pente de coupure qui est assez faible. C'est à dire que pour fortement atténuer une fréquence haute, il faudra atténuer sensiblement des fréquences bien plus basses. Pour éviter cela, il faut passer à des filtres d'ordre supérieur donc plus complexes.

    Des filtres un peu sophistiqués demandent a minima d'étudier la transformée en Z liée directement à la transformée de Laplace.

    Je ne crois pas qu'il existe de logiciel qui permette de définir - éventuellement graphiquement - une courbe de réponse et qui sortirait l'approximation des coefficients en Z du filtre correspondant. Je serais preneur car c'est un peu laborieux à faire à la main.

    Remarque : il est bizarre que le bruit à éliminer soit en bas du spectre. Un signal audio a généralement une décroissance fréquentielle en 1/f donc sa sensibilité au bruit est plutôt dans le haut du spectre (les fréquences plus hautes étant plus faibles).

    Bon courage.
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  13. #13
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Ancien développeur matériel électronique (Hard/Soft)
    Inscrit en
    avril 2002
    Messages
    2 578
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ancien développeur matériel électronique (Hard/Soft)
    Secteur : Service public

    Informations forums :
    Inscription : avril 2002
    Messages : 2 578
    Points : 8 834
    Points
    8 834
    Par défaut
    Salut à tous,
    Citation Envoyé par Guesset Voir le message
    C'est un problème de filtrage numérique donc plutôt de la classe des des algorithmes de traitement du signal. Pour les filtres, il est assez rarement nécessaire de faire des FFT qui, outre le temps, posent des problèmes de type et mouvement du fenêtrage.
    Tout à fait, il va y avoir des artefacts dans le spectre résultant à cause du bord de la fenêtre et il faut le prendre en compte. Le fenêtrage sert a faire une analyse par bloc afin de simuler une période car rien ne dit que le véritable signal et périodique. Il y a plein de type de fenêtre (Hanning, Hamming, Kaiser-Bessel, ...) qui adoucissent plus ou moins les bords de la fenêtre.

    Ce pendant, une FFT de ton signal te permettra de savoir où il se situe dans le spectre et tu connaîtras sa largeur de bande (bande passante du signal).

    Une fois que tu sais où est ton signal dans le spectre et que tu connais sa largeur (bande passante du signal), il ne te reste plus qu'a créer un filtre passe bande :
    - centrer sur la fréquence de ton signal
    - avec une bande passante pouvant contenir la bande passante de ton signal
    - avec des fréquences de coupure haute et basse égales aux fréquences et basse de ton signal

    Pour diminuer le bruit, donc pour améliorer le rapport signal/bruit, on limite la bande utile car le bruit (bruit rose en basse fréquence et bruit blanc en haute fréquence) est une densité de puissance. Petite bande utile = petite densité de puissance de bruit, grande bande utile = grande densité de bruit. Le tout étant d'arriver a trouver le filtre qui peut contenir que le signal sans le décapiter au passage.

    Citation Envoyé par Guesset Voir le message
    Je ne crois pas qu'il existe de logiciel qui permette de définir - éventuellement graphiquement - une courbe de réponse et qui sortirait l'approximation des coefficients en Z du filtre correspondant. Je serais preneur car c'est un peu laborieux à faire à la main.
    Peut être ici ?
    http://t-filter.engineerjs.com/
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  14. #14
    Membre éclairé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    mai 2013
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : mai 2013
    Messages : 131
    Points : 660
    Points
    660
    Par défaut Outil de conception de filtre
    Bonjour,

    J'ai été voir le lien proposé par Vincent PETIT. C'est un générateur de filtres en ligne. Il est facile à prendre en main, bien présenté, et génère du code C/C++. Il est dommage qu'il ne fasse que les FIR. Mais je ne suis jamais content

    Merci Vincent.

    Salutations
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

Discussions similaires

  1. lisser une courbe et réduction des bruits
    Par arbas dans le forum Mathématiques
    Réponses: 7
    Dernier message: 04/03/2011, 10h42
  2. [Optimisation] Algorithme de réduction
    Par tromaltsec dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 06/08/2009, 15h26
  3. Réduction de bruit et détection de mouvement
    Par marco13 dans le forum 2D
    Réponses: 1
    Dernier message: 11/01/2009, 23h20
  4. algorithme détection pic signal bruité
    Par mariono dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 04/11/2008, 15h16
  5. Algorithme de réduction de bruit appliqué a un contenue textuelle
    Par vodevil dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 27/11/2006, 09h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo