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 :

lire un signal enregistré


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Femme Profil pro
    stagiare
    Inscrit en
    Août 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : stagiare
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2018
    Messages : 3
    Par défaut lire un signal enregistré
    bonjour

    jai des signaux enregistres a partir dun hydrophone dans le but de corriger le signaux obtenus par l'algorithme proportionnalité et de déterminer la dynamique dun signal .quelqu'un peut m'aider a resoudre ce probleme , ci joint le code

    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
    close all
    clear all
    clc;
    %Lecture d'un signal enregistré avec l'hydrophone
    for k = 1:8,
    Repertoire = 'C:\Users\TonusDATA\Documents\DATA\Experiences\MesuresHydrophoneTonus\';
    Radical = ['Gauss120@2mhz\RepHydroT' num2str(k) 'Gauss120@2Mhz'];
    NOM = fopen([Repertoire Radical '.acq'],'r');
    FICHIER = fread(NOM,[inf],'float32');
    fclose(NOM);
    Nbpoint = FICHIER(1);
    if k==1, SignalHydrophone = zeros(Nbpoint,8); end;
    PeriodeEchantillonnage = FICHIER(2);
    PremierTemps = FICHIER(3).*PeriodeEchantillonnage; 
    SignalHydrophone(:,k) = FICHIER(5:end);
    SignalHydrophone(:,k) = SignalHydrophone(:,k) - mean(SignalHydrophone(:,k));
    figure(k);plot(SignalHydrophone(:,k))
    end
    %A faire
    %Determiner la dynamique (difference entre le max et le min d'un signal) la plus grande
    %Et corriger (par une regle de trois, proportionalité) l'amplitude de tous les signaux un par un en fonction de cette
    %dynamique 
    %
    figure;plot(SignalHydrophone);

  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
    Tu peux sans doute t'inspirer de la FAQ : Comment normaliser les valeurs d'une matrice dans l'intervalle [0 1] ? en remplaçant la matrice M par chaque colonne de la matrice SignalHydrophone.

  3. #3
    Futur Membre du Club
    Femme Profil pro
    stagiare
    Inscrit en
    Août 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : stagiare
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2018
    Messages : 3
    Par défaut
    bonjour
    le problème que j'ai le même code sur un autre pc et il marche normalement .ici l'erreur s'affiche

    ?? Error using ==> fread
    Invalid file identifier.  Use fopen to generate a valid file identifier.
    
    Error in ==> LectureHydrophone at 10
    FICHIER = fread(NOM,'float32');
    cet erreur m'arrive lorsque je modifie le premier code comme suit


    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
    %Lecture d'un signal enregistré avec l'hydrophone
     for k = 1:8,
    Repertoire = 'C:\Users\Karima\Desktop\pfe\';
    Radical = ['Pulse100\RepHydroT' num2str(k) 'Pulse100'];
    NOM = fopen([Repertoire Radical '.acq'],'r');
     
    FICHIER = fread(NOM,'float32');
    fclose(NOM);
    Nbpoint = FICHIER(1);
    if k==1, SignalHydrophone = zeros(Nbpoint,8); end;
    PeriodeEchantillonnage = FICHIER(2);
    PremierTemps = FICHIER(3).*PeriodeEchantillonnage; 
    SignalHydrophone(:,k) = FICHIER(5:end);
    SignalHydrophone(:,k) = SignalHydrophone(:,k) - mean(SignalHydrophone(:,k));
    figure(k);plot(SignalHydrophone(:,k))

  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
    Vérifie le chemin du fichier stocké dans la variable Radical. Voici une version plus robuste de ton code :

    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
    %Lecture d'un signal enregistré avec l'hydrophone
    for k = 1:8
     
        Repertoire = 'C:\Users\Karima\Desktop\pfe\';
        Radical = ['Pulse100\RepHydroT' num2str(k) 'Pulse100'];
     
        NOM = fullfile(Repertoire, [Radical '.acq']);
     
        if exist(NOM, 'file')~=2
            error('File %s not found', NOM)
        end
     
        fid = fopen([Repertoire Radical '.acq'],'r');
        FICHIER = fread(fid,'float32');
        fclose(fid);
     
        Nbpoint = FICHIER(1);
        if k==1
            SignalHydrophone = zeros(Nbpoint,8);
        end
     
        PeriodeEchantillonnage = FICHIER(2);
        PremierTemps = FICHIER(3).*PeriodeEchantillonnage;
        SignalHydrophone(:,k) = FICHIER(5:end);
        SignalHydrophone(:,k) = SignalHydrophone(:,k) - mean(SignalHydrophone(:,k));
        figure(k);plot(SignalHydrophone(:,k))
     
    end

Discussions similaires

  1. Lire un signal
    Par niceen dans le forum VB.NET
    Réponses: 5
    Dernier message: 22/04/2008, 00h57
  2. Réponses: 4
    Dernier message: 19/12/2007, 12h30
  3. Réponses: 4
    Dernier message: 02/02/2007, 08h41
  4. Lire un signal de parole
    Par jena dans le forum Signal
    Réponses: 7
    Dernier message: 18/01/2007, 21h00
  5. [SQL] Lire 1 seul enregistrement sur doublon
    Par lodan dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 15/08/2006, 22h51

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