IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

MATLAB Discussion :

générer bruit en décibel


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Femme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2012
    Messages : 19
    Points : 24
    Points
    24
    Par défaut générer bruit en décibel
    Bonjour;
    Je veux faire un analyse sur des conditions bruités, je dois utiliser l'unité décibel (par exemple ajouter 10 db), j’ai connu que le commande " random" de matlab permet de générer des bruits mais, je ne compris pas comment je dois l'utiliser tel que la valeur de bruit ajouté au vecteur de signal est 10db.

    S'il vous plait, est ce que tu peux m'aider et merci. C’est très urgent.
    Cordialement

  2. #2
    Membre à l'essai
    Femme Profil pro
    Doctorante
    Inscrit en
    Janvier 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Doctorante

    Informations forums :
    Inscription : Janvier 2010
    Messages : 36
    Points : 19
    Points
    19
    Par défaut
    Bonjour Sara,

    Je suis très loin de m'y connaître sur Matlab, mais j'ai quelques connaissances sur le son et j'ai programmé plusieurs fois du bruit.
    Je ne suis pas sûre de vraiment comprendre ce que tu veux faire.
    Pour créer un bruit, personnellement, je définis une fréquence d'échantillonnage (traditionnellement, 44100Hz), ainsi que l'amplitude (inférieure à 1), qui est liée au volume final de mon bruit. La fonction rand me donne une matrice pour générer le bruit.

    Par exemple, pour faire 6 secondes de bruit (encore une fois sous toute réserve que quelqu'un de plus calé fasse des modifs) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    F_echan = 44100; %fréquence d'échantillonnage
    amp = 0.99; %amplitude
    Bcal= amp * (2 * rand(6*F_echan, 1) - 1);
    B_calib = audioplayer(Bcal, F_echan);
    playblocking(B_calib);
    Si tu veux créer un bruit plus fort qu'un signal, l'amplitude de ton bruit doit être plus grande que celle de ton signal. Attention, l'amplitude totale doit être inférieure à 1.

  3. #3
    FLB
    FLB est déconnecté
    Modérateur
    Avatar de FLB
    Homme Profil pro
    Ing. Aérospatiale
    Inscrit en
    Juin 2003
    Messages
    770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ing. Aérospatiale
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2003
    Messages : 770
    Points : 1 185
    Points
    1 185
    Par défaut
    Si tu veux un bruit blanc utilise plutot randn :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Bcal= amp * randn(6*F_echan, 1);
    Si tu as un signal d'amplitude As et que tu veux un bruit d'amplitude Ab, 10dB moins fort, tu as la relation :
    10 = 10*log10(As/Ab)
    (Voir l'article wikipedia
    donc Ab = As/10;
    Si le rapport d'amplitude est de 20 dB, on a Ab = As/100, etc...

  4. #4
    Membre à l'essai
    Femme Profil pro
    Doctorante
    Inscrit en
    Janvier 2010
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Doctorante

    Informations forums :
    Inscription : Janvier 2010
    Messages : 36
    Points : 19
    Points
    19
    Par défaut
    Bonsoir FLB,

    randn ce n'est pas plutôt pour faire un bruit blanc gaussien ?
    Pour un bruit blanc, nous utilisons toujours rand dans mon labo.

    Par ailleurs, la formule pour obtenir une différence de décibels en utilisant des amplitudes, il me semble que c'est plutôt :

    deltadB = 20 * log(base10) (A2/A1) (http://en.wikipedia.org/wiki/Decibel

    Soit pour un deltadB = 10dB

    log(As/Ab)=1/2
    As=Ab * 10^(1/2)

  5. #5
    FLB
    FLB est déconnecté
    Modérateur
    Avatar de FLB
    Homme Profil pro
    Ing. Aérospatiale
    Inscrit en
    Juin 2003
    Messages
    770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ing. Aérospatiale
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2003
    Messages : 770
    Points : 1 185
    Points
    1 185
    Par défaut
    En effet!

Discussions similaires

  1. [Débutant] Générer du bruit en 1/f
    Par sylar42 dans le forum Simulink
    Réponses: 5
    Dernier message: 25/06/2008, 08h19
  2. Réponses: 2
    Dernier message: 31/08/2002, 14h00
  3. Générer un nombre aléatoire entre 0 et 1 (INCLUS !!!)
    Par haypo dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 22/08/2002, 16h30
  4. [CR][VB] comment générer un état ?
    Par ndi dans le forum SDK
    Réponses: 3
    Dernier message: 22/08/2002, 13h13
  5. Réponses: 5
    Dernier message: 08/07/2002, 16h22

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