Algorithme sur Matlab - Page 3
Répondre à la discussion
Page 3 sur 3 PremièrePremière 3
Affichage des résultats 61 à 65 sur 65

Algorithme sur Matlab



  1. #61
    GBo

    Re : Algorithme sur Matlab


    ------

    Pour la voix, il y en a pléthore mais il vous faudra la Signal Processing Toolbox:
    https://scholar.google.com/scholar?h...lgorithm&btnG=

    -----

  2. #62
    GBo

    Re : Algorithme sur Matlab

    J'ai un peu browsé sur Google Scholar, c'est intéressant comme domaine.
    Voilà de quoi par exemple vous donner des idées d'algo un peu plus complexes (mais pas trop non plus puisque ça reste dans le domaine temporel pour la majorité, donc Matlab de base suffira) et sûrement meilleurs, bien adaptés à la voix humaine (et peut-être aux instruments de musique solo, je ne sais pas):
    https://web.ece.ucsb.edu/Faculty/Rab...inter_2012.pdf
    - Short-Time Energy
    - Short-Time Average Magnitude
    - Short-Time Average Zero Crossing Rate
    - Short-Time Autocorrelation
    Etc..

    cdlt,
    GBo
    Dernière modification par GBo ; 17/11/2020 à 22h23.

  3. #63
    invite7bc59f57

    Re : Algorithme sur Matlab

    Bonjour,
    Merci infiniment pour votre aide, mais je n'ai pas réussi à tirer grand chose de ce que vous m'avez envoyé en anglais, j'avoue ma compréhension en signal, en matlab, ajoutée à celle en anglais n'est pas fameuse. J'ai essayé une nième tentative, cette fois avec la puissance instantanée. L'idée est de ne pas avoir de marge d'erreur, ou d'essayer en tout cas...
    Pour cela, j'ai pensé à trouver la puissance seuil, en comparant les puissances en chaque point jusqu'à ce que j'ai appelé Llim. Ensuite, comparer les puissances en chaque point de Llim à L. Si c'est plus grand, il y a un signal utile donc on renvoie 1, sinon on renvoie 0. Voila ce que j'ai écris :
    Code:
    [y,Fs] = audioread(filepath); % Chargement du fichier :
    [L, nbColonnes] = size(y);
    if nbColonnes == 1
        y2 = y;
    else 
        y2 = mean(y, 2); % Conversion stéréo --> mono
    end
    
    Ts = 1/Fs;
    t = Ts*(1:L);
    D = L/Fs; % Durée totale du signal
    Llim = 50*10^(-3)*Fs;% Nombre d'échantillons 50 premières millisecondes 
    marge = 0 ;
    PSeuil = 0;
    
    for k = 1:Llim
        if y2(k)^2 > PSeuil
            PSeuil = y2(k)^2;
            marge = k;
        end
    end 
    
    
     for i = 1:L
         resulat = y2(i)^2 > y2(k)^2;
     end
    
    figure
    plot(t,y2);
    hold on
    plot(resultat);
    Le résultat que j'obtiens ne veut rien dire, il doit certainement y avoir une ou meme plusieurs erreurs, mais je n'arrive pas à mettre la main dessus.

    Merci.

  4. #64
    GBo

    Re : Algorithme sur Matlab

    On voit dans la 1ere boucle for que vous essayez d'élaborer un seuil à partir de puissances instantanées, alors que je croyais vous avoir convaincu que la puissance instantanée ne servait à rien dans ce problème puisque le signal utile passe par toutes les valeurs y compris près de zéro => il faut jouer sur des fenêtres cumulant l'énergie E de plusieurs samples comme je vous ai montré Lundi.
    En plus vous ne vous servez pas de ce seuil ensuite...
    Dans la 2ieme boucle for... resultat n'est pas un vecteur, mais un scalaire que vous écrasez sans cesse.

    Bref : ne codez rien tant que vous n'avez pas écrit l'algo noir sur blanc, en le jouant dans la tête sur un exemple avant le moindre codage.
    Coté Matlab, ce n'est pas encore ça non plus : je vous conseille de bien maitriser les matrices, vecteurs, opérations utiles associées, et sur la ligne de commande déjà, il y a pleins de tutoriels. Ensuite quand vous passez au script, il faut savoir débugger tout seul : mettez un point d'arrêt sur la ligne 25 (en double cliquant dessus) au milieu de la boucle for, appuyez sur F5 pour y accéder via ce qui précède et faire F10 F10 F10 pour voir pas à pas ce qu'il se passe en surveillant la valeur des variables dans le workspace.


    Bon courage.
    Dernière modification par GBo ; 18/11/2020 à 20h35.

  5. #65
    GBo

    Re : Algorithme sur Matlab

    Regardez, je n'affabule pas : en plein milieu de la note de flute, l'amplitude d'un sample (surligné en jaune) quasiment à 0, et ce n'est pas une exception:

    Nom : FluteMidCapture.JPG
Affichages : 96
Taille : 30,0 Ko
    Dernière modification par GBo ; 18/11/2020 à 21h40.

Page 3 sur 3 PremièrePremière 3

Discussions similaires

  1. algorithme tabo en matlab
    Par invitefa21deb3 dans le forum Programmation et langages, Algorithmique
    Réponses: 2
    Dernier message: 26/07/2017, 17h48
  2. algorithme max sur matlab
    Par invitef5197fd1 dans le forum Programmation et langages, Algorithmique
    Réponses: 6
    Dernier message: 14/07/2015, 08h54
  3. recherche d'une fonction ou d'un algorithme sur MATLAB
    Par invite601a5f00 dans le forum Programmation et langages, Algorithmique
    Réponses: 2
    Dernier message: 14/09/2014, 13h41
  4. Algorithme Matlab
    Par invitede8302a1 dans le forum Logiciel - Software - Open Source
    Réponses: 6
    Dernier message: 12/04/2010, 08h17
  5. Matrice et algorithme Matlab
    Par invited028b400 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 14/01/2008, 13h53