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

Interfaces Graphiques Discussion :

[GUIDE] Besoin d'aide


Sujet :

Interfaces Graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4
    Par défaut [GUIDE] Besoin d'aide
    Bonjour à toutes et à tous.

    Voilà, je réalise un projet de rehaussement de la parole par méthode en sous espace (débruitage trame par trame par traitement des valeurs singulières sur les matrices de Hankel).
    Je voudrais réaliser une interface graphique pour mon programme qui affiche le spectrogramme du signal original, celui du signal bruité et enfin celui du signal réhaussé à gauche; et à droite je souhaiterais avoir la superposition des trois courbes sur deux graphiques : un en temporel et un en fréquentiel. J'ai déjà réalisé l'apparence de cette interface (.fig) mais je ne sais pas trop comment programmer le fichier .m lié... En copiant sur ce que j'ai pu trouver, j'ai fais du orienté objets et mon binôme me l'a reproché... Par exemple, dès le début, je ne sais pas comment ouvrir, charger et tracer le son original (.mat) puisque fropen et fread ou load me retournent des erreurs... Je vous mets le début de mon code ci-dessous.
    Pouvez m'aider svp, c'est urgent et très important pout moi. Merci à tous ceux qui savent !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    function varargout = interface(varargin)
    % INTERFACE M-file for interface.fig
    %      INTERFACE, by itself, creates a new INTERFACE or raises the existing
    %      singleton*.
    %
    %      H = INTERFACE returns the handle to a new INTERFACE or the handle to
    %      the existing singleton*.
    %
    %      INTERFACE('CALLBACK',hObject,eventData,handles,...) calls the local
    %      function named CALLBACK in INTERFACE.M with the given input arguments.
    %
    %      INTERFACE('Property','Value',...) creates a new INTERFACE or raises the
    %      existing singleton*.  Starting from the left, property value pairs are
    %      applied to the GUI before interface_OpeningFunction gets called.  An
    %      unrecognized property name or invalid value makes property application
    %      stop.  All inputs are passed to interface_OpeningFcn via varargin.
    %
    %      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
    %      instance to run (singleton)".
    %
    % See also: GUIDE, GUIDATA, GUIHANDLES
     
    % Copyright 2002-2003 The MathWorks, Inc.
     
    % Edit the above text to modify the response to help interface
     
    % Last Modified by GUIDE v2.5 24-Dec-2007 01:24:11
     
    % Begin initialization code - DO NOT EDIT
    gui_Singleton = 1;
    gui_State = struct('gui_Name',       mfilename, ...
                       'gui_Singleton',  gui_Singleton, ...
                       'gui_OpeningFcn', @interface_OpeningFcn, ...
                       'gui_OutputFcn',  @interface_OutputFcn, ...
                       'gui_LayoutFcn',  [] , ...
                       'gui_Callback',   []);
    if nargin && ischar(varargin{1})
        gui_State.gui_Callback = str2func(varargin{1});
    end
     
    if nargout
        [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
    else
        gui_mainfcn(gui_State, varargin{:});
    end
    % End initialization code - DO NOT EDIT
     
     
    % --- Executes just before interface is made visible.
    function interface_OpeningFcn(hObject, eventdata, handles, varargin)
    % This function has no output args, see OutputFcn.
    % hObject    handle to figure
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    % varargin   command line arguments to interface (see VARARGIN)
     
    % Choose default command line output for interface
    handles.output = hObject;
     
    % Update handles structure
    guidata(hObject, handles);
     
    % UIWAIT makes interface wait for user response (see UIRESUME)
    % uiwait(handles.figure1);
     
     
    % --- Outputs from this function are returned to the command line.
    function varargout = interface_OutputFcn(hObject, eventdata, handles) 
    % varargout  cell array for returning output args (see VARARGOUT);
    % hObject    handle to figure
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
     
    % Get default command line output from handles structure
    varargout{1} = handles.output;
    clear all
    global donnees
    donnees.fe=16000;
    donnees.t=20;
    donnees.N=donnees.t*10^(-3)*donnees.fe; 
    donnees.n=5;
    donnees.SNR=5;
    donnees.nstep=0;
     
     
    % --- Executes on button press in pushbutton1.
    function pushbutton1_Callback(hObject, eventdata, handles)
    % hObject    handle to pushbutton1 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
     
    close
     
     
    % --- Executes on button press in pushbutton2.
    function pushbutton2_Callback(hObject, eventdata, handles)
    % hObject    handle to pushbutton2 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
     
    global donnees
    donnees.file = uigetfile ('*.mat','Choisir le son');
    %-----------------------------------------------------
    donnees.fid = fopen ( donnees.file , 'r' ) ; 
    donnees.s = fread ( donnees.fid ,'short' ) ;
    % load donnees.file;
    %-----------------------------------------------------
    set(handles.text7, 'string',{donnees.file});
    axes(handles.axes1);
    specgram(donnees.s,256,donnees.fe)
    title('Spectrogramme du signal original')
    donnees.T=[1:length(donnees.s)]; 
    axes(handles.axes4);
    plot(donnees.T/donnees.fe,donnees.s,'b')
    axis tight;
    title('Signaux dans le domaine temporel')
    legend('Signal original')
    ylabel('Amplitude') 
    xlabel('Temps')
    axes(handles.axes5);
    plot(linspace(-donnees.fe/2,donnees.fe/2,length(donnees.s)),fftshift(db(abs(fft(donnees.s)))),'b')
    axis tight;
    title('Signaux dans le domaine fréquentiel')
    legend('Signal original')
    ylabel('Amplitude') 
    xlabel('Fréquence')

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Essaie ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    donnees.file = uigetfile ('*.mat','Choisir le son');
    load(donnees.file);

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4
    Par défaut
    Merci bien pour l'info ! En effet, çà ne bug ici maintenant...! Mais après ! Le problème c'est qu'en utilisant fopen et fread, j'avais déclaré un object donnees.s (pour le signal original) que je n'ai plus désormais... Tu peux y jeter un coup d'oeil stp?
    Tu as l'air bien calé et si tu pouvais me "guider" çà serait super sympa. Le gros du travail est fait : le .fig est fini et le .m presque (dès qu'il marchera !). Ils sont disponibles ici si tu veux : http://uuu.enseirb.fr/~sigot/TDSI/

    Par contre, tu ne m'as pas répondu sur le "problème" de programmer orienté objets... Tu me conseilles quoi toi?

    Merci d'avance

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Ajoute un appel à la fonction WHOS juste après la fonction LOAD.
    Relève le nom des variables contenues dans donnees.mat dans le Command Window et utilise ces noms dans la suite du programme.

    Pour la programmation objet, je ne vois pas le problème dans le cadre d'un projet. Du moment que le code fonctionne, peu importe le type de programmation.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4
    Par défaut
    La fonction whos ne me révèle pas les différentes variables : elle ne me donne que "donnees", pas les champs affiliés à "donnees" du genre "donnees.fe" par exemple. Donc je ne sais pas quoi faire... Je ne comprends même pas le message d'erreur qui empêche mon interface de tourner.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 27
    Par défaut
    Ta variable de donnees est de quel type? structure? Si c'est une structure tu as la méthode fields pour obtenir les champs dans ta varible donnees.

    Si c'est un objet quel type d'object est ce? Tu as la fonction get qui peux te donner les paramètres de ton objet.

Discussions similaires

  1. Réponses: 6
    Dernier message: 08/01/2007, 15h56
  2. besoin d'aide pour un guide cartographique
    Par sebnutt dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/01/2007, 19h10
  3. besoin d'aide pour le composant DBComboBox
    Par jane2002 dans le forum Bases de données
    Réponses: 8
    Dernier message: 28/02/2004, 19h01
  4. [TP]besoin d'aide pour commandes inconnues
    Par Upal dans le forum Turbo Pascal
    Réponses: 15
    Dernier message: 03/10/2002, 10h48
  5. Besoin d'aide pour l'I.A. d'un puissance 4
    Par Anonymous dans le forum C
    Réponses: 2
    Dernier message: 25/04/2002, 17h05

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