Signal Analyzer
Visualiser et comparer plusieurs signaux et spectres
Description
L’application Signal Analyzer est un outil interactif servant à visualiser, prétraiter, mesurer, analyser et comparer des signaux dans les domaines temporel, fréquentiel et temps-fréquence. Avec cette application, vous pouvez :
Accéder facilement à tous les signaux dans l’espace de travail MATLAB®.
Compléter les données manquantes (depuis R2024a) et lisser, filtrer, rééchantillonner, débruiter, extraire, modifier et éliminer la tendance des signaux sans quitter l’application.
Ajouter et appliquer des fonctions de prétraitement personnalisées.
Lire les signaux audio. (depuis R2024a)
Visualiser et comparer simultanément plusieurs représentations de la forme d’onde, du spectre, de la persistance, du spectrogramme et du scalogramme de signaux.
Mesurer les statistiques des données et des signaux.
L’application Signal Analyzer permet de travailler simultanément sur un grand nombre de signaux de durée variable dans une même vue.
Pour plus d’informations, veuillez consulter Utiliser l’application Signal Analyzer.
Une licence Wavelet Toolbox™ est nécessaire pour utiliser la vue du scalogramme et pour appliquer un débruitage par ondelettes aux signaux.
Ouvrir l'application Signal Analyzer
Barre d’outils MATLAB : dans l’onglet Apps, dans la section Signal Processing and Communications, cliquez sur l’icône de l’application.
Invite de commande MATLAB : saisissez
signalAnalyzer.
Exemples
Chargez un signal de parole échantillonné à . Le fichier contient l’enregistrement d’une voix féminine disant le mot « MATLAB® ».
load mtlbPour simuler une situation où 70 % des données audio sont manquantes, affectez des valeurs NaN de manière aléatoire au signal.
rng(2024) numToReplace = round(length(mtlb) * 0.70); missing = randperm(length(mtlb),numToReplace); mtlbMissing = mtlb; mtlbMissing(missing) = NaN;
Ouvrez Signal Analyzer et faites glisser les variables mtlb et mtlbMissing depuis le volet Workspace Browser vers la table « Filter Signals ». Sélectionnez les deux signaux. Dans l’onglet Analyzer, cliquez sur Time Values et sélectionnez Sample Rate and Start Time. Définissez Sample Rate à Fs Hz et Start Time à 0 s. Cliquez sur Display Grid pour créer deux affichages côte à côte. Tracez mtlb dans l’affichage de gauche et mtlbMissing dans l’affichage de droite. Pour écouter le signal audio mtlb, sélectionnez-le et cliquez sur Play dans la section Playback de la barre d’outils sous l’onglet Display. Pour répéter le signal, sélectionnez Play in Loop avant de lancer la lecture.

Sélectionnez le signal avec des données manquantes et cliquez sur Preprocess sous l’onglet Analyzer pour passer en mode prétraitement. Sélectionnez ensuite Fill Missing dans la liste des options de prétraitement. Utilisez le panneau Function Parameters pour ajuster les paramètres Fill Missing. Sélectionnez Autoregressive model et cliquez sur Apply pour compléter le signal manquant. Cliquez sur Accept All pour enregistrer les résultats du prétraitement et quitter le mode. Pour des informations sur d’autres fonctions pour compléter un signal, veuillez consulter fillmissing et fillgaps.

Vous pouvez maintenant lire le signal complété avec le bouton Play. Pour visualiser l’effet de compléter des données manquantes sur le spectrogramme, cliquez sur Time-Frequency dans l’onglet Display. Dans l’onglet Spectrogram, spécifiez une résolution temporelle de 20 ms et un chevauchement de 80 % entre les segments adjacents. Définissez les valeurs Power Limits à –50 dB et –10 dB. Cliquez sur l’affichage de gauche et répétez les mêmes étapes.

Vous pouvez ajuster la fuite spectrale de la fenêtre d’analyse pour résoudre les sinusoïdes dans Signal Analyzer.
Générez un signal bicanal échantillonné à 100 Hz pendant 2 secondes.
Le premier canal se compose d’un signal sonore de 20 Hz et d’un autre de 21 Hz. Les deux signaux sonores ont une amplitude unitaire.
Le second canal contient lui aussi deux signaux sonores. L’un a une amplitude unitaire et une fréquence de 20 Hz. L’autre a une amplitude de 1/100 et une fréquence de 30 Hz.
fs = 100; t = (0:1/fs:2-1/fs)'; x = sin(2*pi*[20 20].*t)+[1 1/100].*sin(2*pi*[21 30].*t);
Ajoutez du bruit blanc au signal. Spécifiez un rapport signal à bruit de 40 dB.
x = x + randn(size(x)).*std(x)/db2mag(40);
Ouvrez Signal Analyzer et tracez le signal. Dans l’onglet Analyzer, assurez-vous que le signal est sélectionné dans la table Signal, cliquez sur Time Values et sélectionnez Sample Rate and Start Time. Définissez Sample Rate à fs Hz et Start Time à 0 s. Dans l’onglet Display, cliquez sur Spectrum pour ajouter un tracé spectral à l’affichage.

Cliquez sur l’onglet Spectrum. Le curseur qui contrôle la fuite spectrale est positionné au milieu, ce qui correspond à une bande passante de résolution d’environ 1,28 Hz. Les deux signaux sonores du premier canal ne sont pas résolus. Le signal de 30 Hz du second canal est visible bien qu’il soit beaucoup plus faible que l’autre.
Augmentez la fuite pour que la bande passante de résolution soit d’environ 0,83 Hz. Le signal faible du second canal est visiblement résolu.

Déplacez le curseur jusqu’à la valeur maximale. La bande passante de résolution est d’environ 0,5 Hz. Les deux signaux sonores du premier canal sont résolus. Le signal faible du second canal est masqué par les grands lobes secondaires de la fenêtre.
Cliquez sur l’onglet Display. Utilisez le zoom horizontal pour agrandir l’axe de la fréquence. Ajoutez deux curseurs à l’affichage et faites glisser les curseurs du domaine fréquentiel pour estimer la fréquence des signaux sonores.

Lisez l’enregistrement audio d’une brosse à dents électronique dans MATLAB®. Le signal est échantillonné à 48 kHz. La brosse à dents est mise en marche à environ 1,75 seconde et fonctionne pendant 2 secondes environ.
[y,fs] = audioread("toothbrush.m4a");Ouvrez Signal Analyzer et faites glisser le signal depuis le volet Workspace Browser vers la table « Signal ». Ajoutez des informations temporelles au signal en sélectionnant ce dernier dans la table « Signal » et en cliquant sur Time Values dans l’onglet Analyzer. Sélectionnez Sample Rate and Start Time et saisissez fs comme fréquence d'échantillonnage.
Dans l’onglet Display, cliquez sur Display Grid pour créer une grille de 2 x 2 affichages. Sélectionnez chaque affichage, cliquez sur Spectrum pour ajouter une vue spectrale puis cliquez sur Time pour supprimer la vue temporelle. Faites glisser le signal vers chacun des quatre affichages.

Cliquez sur l’onglet Spectrum pour modifier la vue spectrale de chaque affichage.
Cliquez sur l’affichage supérieur gauche pour le sélectionner. Déplacez le curseur Leakage pour régler la valeur de fuite à 32.
Cliquez sur l’affichage supérieur droit pour le sélectionner. Dans la section Resolution Type, sélectionnez Window Length. Dans la section Window Length, sélectionnez Specify et spécifiez une longueur de fenêtre de 1 500 échantillons. Dans la section Window Options, sélectionnez une fenêtre
Rectangularet spécifiez un pourcentage de chevauchement de 20.Cliquez sur l’affichage inférieur gauche pour le sélectionner. Dans la section Resolution Type, sélectionnez Window Length. Dans la section Window Length, sélectionnez Specify et spécifiez une longueur de fenêtre de 500 échantillons. Dans la section Window Options, sélectionnez une fenêtre de
Hamminget spécifiez un pourcentage de chevauchement de 50. Dans la section NFFT, spécifiez 550 points de transformée de Fourier discrète.Cliquez sur l’affichage inférieur droit pour le sélectionner. Dans la section Resolution Type, sélectionnez Window Length. Dans la section Window Length, sélectionnez Specify et spécifiez une longueur de fenêtre de 5 000 échantillons. Dans la section Window Options, sélectionnez une fenêtre de
Chebyshevet spécifiez une atténuation de lobe secondaire de 50 dB et un pourcentage de chevauchement de 90.
Vous pouvez voir que certaines vues ont une résolution supérieure mais aussi une fuite supérieure, alors que d’autres vues ont une fuite inférieure mais au détriment de la résolution.

Exemples associés
- Extract Voices from Music Signal
- Modulation and Demodulation Using Complex Envelope
- Find and Track Ridges Using Reassigned Spectrogram
- Declip Saturated Signals Using Your Own Function
- Compute Envelope Spectrum of Vibration Signal
- Find Delay Between Correlated Signals
- Find Interference Using Persistence Spectrum
- Denoise Noisy Doppler Signal
- Resample and Filter a Nonuniformly Sampled Signal
- Extract Regions of Interest from Whale Song
Utilisation programmatique
signalAnalyzer ouvre l’application Signal Analyzer.
signalAnalyzer( ouvre l’application Signal Analyzer et importe et trace le signal sig)sig. Si l’application est déjà ouverte, sig est tracé dans l’affichage courant. Si sig est déjà tracé mais a changé, l’appel de fonction met à jour le tracé.
sig peut être une variable de l’espace de travail ou une expression MATLAB. sig peut être :
Un vecteur ou une matrice avec des signaux indépendants dans chaque colonne.
Une
timetableavec des valeurs temporelles correspondant à des durées.Un objet
timeseries.
Pour plus de précisions, veuillez consulter Data Types Supported by Signal Analyzer.
Par défaut, l’application trace le signal en fonction de l’index de l’échantillon. Si vous indiquez des informations temporelles ou si le signal a des informations temporelles intrinsèques, l’application trace le signal en fonction du temps.
signalAnalyzer( importe N vecteurs ou matrices de signaux et les trace dans l’affichage courant. L’application ne supporte pas l’importation de signaux avec et sans informations temporelles intrinsèques dans le même appel de fonction.sig1,...,sigN)
signalAnalyzer(___,'SampleRate', définit une fréquence d'échantillonnage fs)fs par un scalaire positif exprimé en Hz. L’application utilise cette fréquence d'échantillonnage pour tracer un ou plusieurs signaux en fonction du temps en supposant une heure de début égale à zéro. Il est possible de spécifier une fréquence d'échantillonnage pour les signaux sans informations temporelles intrinsèques.
signalAnalyzer(___,'SampleTime', définit un pas d’échantillonnage ts)ts par un scalaire positif exprimé en secondes. L’application utilise ce pas d’échantillonnage pour tracer un ou plusieurs signaux en fonction du temps en supposant une heure de début égale à zéro. Il est possible de spécifier un pas d’échantillonnage pour les signaux sans informations temporelles intrinsèques.
signalAnalyzer(___,'StartTime', définit l’heure de début du signal st)st par un scalaire exprimé en secondes. Si vous ne spécifiez pas de fréquence ni de pas d’échantillonnage, l’application suppose une fréquence d'échantillonnage égale à 1 Hz. Il est possible de spécifier une heure de début pour les signaux sans informations temporelles intrinsèques.
signalAnalyzer(___,'TimeValues', spécifie un vecteur tv)tv avec des valeurs temporelles correspondant aux points de données. tv peut être un vecteur numérique réel avec des valeurs exprimées en secondes. tv peut également être un tableau duration. Les valeurs de tv doivent être uniques et non NaN, mais il n’est pas nécessaire qu’elles soient espacées uniformément. Tous les signaux d’entrée doivent avoir la même longueur que tv. Il est possible de spécifier un vecteur de valeurs temporelles pour les signaux sans informations temporelles intrinsèques.
Le filtrage et la vue du scalogramme ne supportent pas les signaux échantillonnés de manière non uniforme.
Historique des versions
Introduit dans R2016aPrétraitez les signaux dans l’application Signal Analyzer en identifiant et comblant les lacunes dans les données. Vous pouvez compléter les données manquantes avec des valeurs constantes, des combinaisons d’échantillons voisins ou des moyennes mobiles. Vous pouvez également effectuer une interpolation ou appliquer un modèle autorégressif.
Lisez les signaux audio dans l’application Signal Analyzer avec les commandes de lecture audio.
Bénéficiez d’une plus grande flexibilité pour calculer des spectres dans Signal Analyzer. Contrôlez la longueur de la fenêtre, le nombre de points de transformée de Fourier discrète et la bande passante de résolution.
Effectuez des mesures de crête pour des signaux dans le domaine temporel. Visualisez les valeurs de crête du signal dans la table Measurements et sous forme de marqueurs annotés sur l’affichage.
Signal Analyzer n’ouvre plus Signal Labeler qui est désormais disponible en tant qu’application. Si vous souhaitez labelliser des signaux, ouvrez Signal Labeler depuis la barre d’outils MATLAB ou la fenêtre de commande.
Voir aussi
Applications
Fonctions
Rubriques
- Time-Frequency Gallery
- Use Signal Analyzer App
- Edit Sample Rate and Other Time Information
- Data Types Supported by Signal Analyzer
- Spectrum Computation in Signal Analyzer
- Persistence Spectrum in Signal Analyzer
- Spectrogram Computation in Signal Analyzer
- Scalogram Computation in Signal Analyzer
- Keyboard Shortcuts for Signal Analyzer
- Signal Analyzer Tips and Limitations
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Sélectionner un site web
Choisissez un site web pour accéder au contenu traduit dans votre langue (lorsqu'il est disponible) et voir les événements et les offres locales. D’après votre position, nous vous recommandons de sélectionner la région suivante : .
Vous pouvez également sélectionner un site web dans la liste suivante :
Comment optimiser les performances du site
Pour optimiser les performances du site, sélectionnez la région Chine (en chinois ou en anglais). Les sites de MathWorks pour les autres pays ne sont pas optimisés pour les visites provenant de votre région.
Amériques
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)