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

Algorithmes et structures de données Discussion :

[Signal] Rééchantillonnage d'un son


Sujet :

Algorithmes et structures de données

  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1
    Par défaut [Signal] Rééchantillonnage d'un son
    Bonjour à tous,


    Dans le cadre d'un projet universitaire nous avons à réaliser un programme en langage C permettant le rééchantillonnage d'un fichier audio.

    Voici le sujet :
    Rééchantillonnage:

    Il s'agit de modifier un son (ou en créer un autre) dans un format d'échantillonnage différent. On
    s'intéresse ici à la fréquence d'échantillonnage ainsi qu'à la profondeur d'échantillonnage (le nombre
    de bits utilisé pour chaque échantillon).
    Ne trouvant peu(aucune? :/) aide sur internet , nous recherchons donc des pistes/aides de votre part


    Merci d'avance =)

  2. #2
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Salut,

    Peut-être que tu trouveras plus de réponses sur le forum consacré à l'algorithmique:
    http://www.developpez.net/forums/forumdisplay.php?f=60

    Sinon, tu devrais peut-être donner un peu plus de détails sur ton projet et ses spécifications, et attacher une grande importance à la phase de conception (à ce niveau, il n'est pas question d'implémentation ni de langage C). Le forum algorithmique te soutiendra au sujet des questions relatives aux algorithmes, et n'hésite à revenir avec des questions sur le langage C.

    Bonne chance à toi et meilleure salutations

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  3. #3
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Par défaut
    Pour rééchantilloner suivant le nombre de bits par échantillons, cela ne pose pas trop de problèmes.

    Pour rééchantilloner suivant les fréquences, c'est un peu plus délicat. En fait, il y a un cas où c'est simple : quand on choisit une fréquence d'échantillonage inférieure et multiple à celle d'origine. Ex : origine 44kHz -> 22kHz : il suffit de garder un échantillon sur deux.

    Dans tous les autres cas il faut procéder à des interpolations. Mais attentions, pas n'importe quelle interpolation ! Les linéaires, ne conviennent pas pour un signal sonore... A vous de choisir celle qui convient suivant vos critères (qualités du son, difficultés d'implémentations, ...)

  4. #4
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Citation Envoyé par Fabllot
    Pour rééchantilloner suivant les fréquences, c'est un peu plus délicat. En fait, il y a un cas où c'est simple : quand on choisit une fréquence d'échantillonage inférieure et multiple à celle d'origine. Ex : origine 44kHz -> 22kHz : il suffit de garder un échantillon sur deux.
    Avec un filtrage passe-bas avant, OK, sinon il y a risque de repliement de spectre.

    Pour le changement de quantification, pour ajouter de l'info, c'est simple, pour passer à une précision inférieure, soit on tronque brutalement, soit on ajoute un bruit dit "dither", et là les algos sont plus ou moins brevetés selon leur technicité.

    Pour rééchantilloner, une solution peut être de passer dans le domaine fréquentiel puis de d'utiliser une transformée chirpz pour obtenir un signal rééchantilloné différemment à la fin.

  5. #5
    Membre émérite
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Par défaut
    il suffit de garder un échantillon sur deux.
    Nyquist!!!

  6. #6
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Par défaut
    Citation Envoyé par j.p.mignot
    Nyquist!!!
    C'était un exemple... Cet échantillonnage est bien sûr pas terrible... Mais après tout, si ils veulent un signal dégradé...

  7. #7
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Sauf que c'est pire que dégradé, c'est replié, donc inutile en tant que tel, il faut FILTRER d'abord, et ceci dans TOUS les cas.

  8. #8
    Membre émérite
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Par défaut
    imaginez par exemple un signal sinus U.sin(2*pi*f*t) f=1Hz digitalisé 2Hz => OK avec nyquist.
    prenez 1 point sur 2 et vous obtenez une composante DC alléatoire entre +U et -U!!
    Le repliment de spectre est finallement equivalent à la stroboscopie.

    Il existe des cas ou on peut outrepasser cette règle:
    C'est le cas de signaux à largeur de bande limité autour de f

    F [ F1-df, F1+df]
    autel cas la sous-digitalisation permet de conaître le signal car on sait sur quelle harmonique de la fréquence observée on doit recaler le signal.
    Cela évite de faire des digitalisations enorme pour des signaux ne contenant aucune energie entre 0 et F-df
    ( par exemple telephone à 1.8 GHz avec une bande bassante très petite devant les 1.8GHz)

  9. #9
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    numérisé et pas digitalisé, idem pour numérisation et digitalisation...

  10. #10
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Pour passer d'une frequence d'echantillonage F1 a F2=F1*M/N, on commence par ajouter M-1 echantillon nul apres chaque echantillon, ensuite on filtre ensuite on consonserve un echantillon sur N.

    Pour le filtre, il ne faut pas oublier qu'il y a un tas de multiplication par zero si M est different de 1.

    (Chercher interpolation/decimation).

Discussions similaires

  1. [Lazarus] Lazarus signale des erreurs dans son propre code
    Par sondo dans le forum Lazarus
    Réponses: 4
    Dernier message: 07/12/2009, 17h05
  2. Réponses: 2
    Dernier message: 07/04/2009, 08h42
  3. [Signal] Déphasage d'un son : mesure en Delphi
    Par mathieu3392 dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 02/08/2007, 13h05
  4. Réponses: 7
    Dernier message: 12/06/2007, 15h05
  5. Signal sonore sur la carte son
    Par woow dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 22/11/2005, 13h25

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