j'ai pas bien compris, est ce qu'il existe un moyen d'avoir fréquen(temps) si c possible
j'ai pas bien compris, est ce qu'il existe un moyen d'avoir fréquen(temps) si c possible
bien entendu :
Time : vecteur temps.
Freq : Vecteur fréquence
Les règles Les cours La fonction rechercher
N'oubliez pas de mettre en et de voter.
La terre n'est pas un héritage de nos parents, mais un emprunt que nous faisons à nos enfants. La protection de notre environnement est la responsabilité de tous. Ne reculez plus devant l'urgence, agissez !
si tu fais
l'information concernant la densité spectrale par fréquence pour le temps T(i) devrait se retrouver soit dans la ligne soit dans la colonne i de P
Code : Sélectionner tout - Visualiser dans une fenêtre à part [S,F,T,P] = spectrogram(x)
donc freq=1,2,...,858
t=1,2,...,129
j'ai attaché une image
je ne crois pas que tu aies compris
t aura pour valeurs dans l'exemple que je t'ai donné T(1)...T(129) et f F(1)...F(858) (si ce n'est pas l'inverse, à toi de voir les longueurs de tes vecteurs T et F)
ensuite pour un temps t tu auras une valeur de niveau pour chaque fréquence, à toi de voir quelles fréquences il y a vraiment (pics)
[S,F,T,P] = spectrogram(x)
F c'est la valeur des fréquences suivant les indices de la colonne
et T c'est la valeur des temps suivant les indices de la ligne
c'est ça?
Mon code:
S une matrice de 8 éléments en lignes et 16385 en colonnes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 [xn,fs]=wavread('speech_dft.wav'); [S,F,T,P] = spectrogram(xn);
F un vecteur colonne de 16385 éléments
T un vecteur ligne de 8 éléments
Non,
si tu fais :
xft représente la fréquence en fonction du temps avec l'amplitude du son
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 >> [xft F T P] = specgram(x) ;
F : vecteur des valeurs de chaque fréquence : F(1), F(2), ...
T : vecteur des valeurs de chaque point de temps : T(1), T(2), ...
P : la densité spectrale
Les règles Les cours La fonction rechercher
N'oubliez pas de mettre en et de voter.
La terre n'est pas un héritage de nos parents, mais un emprunt que nous faisons à nos enfants. La protection de notre environnement est la responsabilité de tous. Ne reculez plus devant l'urgence, agissez !
oui j'ai compris, donc dans mon exemple j'ai 8 fréquences et 16352 éléments de temps c ça?
utilise la fonction size pour le confirmer ou bien whos
Les règles Les cours La fonction rechercher
N'oubliez pas de mettre en et de voter.
La terre n'est pas un héritage de nos parents, mais un emprunt que nous faisons à nos enfants. La protection de notre environnement est la responsabilité de tous. Ne reculez plus devant l'urgence, agissez !
sur la version de Matlab 2009b la variante suivante ne marche pas
mais on peut utiliser :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 [xft freq temps dens]=specgram(x);
Code : Sélectionner tout - Visualiser dans une fenêtre à part [xft freq temps] = specgram(x);
Les règles Les cours La fonction rechercher
N'oubliez pas de mettre en et de voter.
La terre n'est pas un héritage de nos parents, mais un emprunt que nous faisons à nos enfants. La protection de notre environnement est la responsabilité de tous. Ne reculez plus devant l'urgence, agissez !
size(xn)= 110033
normalement il devra me donner 16352 non?
Xn est une matrice, où chaque cellule représente l'amplitude du signal par rapport à l'unité de temps (les colonnes) et l'unité fréquence (les lignes).
Après exécution, tu auras :
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 % Lecture du fichier son % sndIn : étant un vecteur représentant le signal SON % Fs : Sample rate en Hertz utilisée pour encoder les données dans le % fichier [sndIn, Fs]=wavread('voltage.wav'); % Lecture du son sur les hauts parleurs wavplay(sndIn, Fs); % Traitement % xft : Matrice du sonagraphe % Fq : Vecteur des fréquences disponibles % Tm : Vecteur des echontillons temps [xft Fq Tm] = specgram(sndIn) ; sprintf('La taille de xft: %dx%d', size(xft, 1), size(xft, 2)) sprintf('La taille de Fq: %dx%d', size(Fq, 1), size(Fq, 2)) sprintf('La taille de Tm: %dx%d', size(Tm, 1), size(Tm, 2))
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 La taille de xft: 129x327 La taille de Fq: 129x1 La taille de Tm: 327x1
Les règles Les cours La fonction rechercher
N'oubliez pas de mettre en et de voter.
La terre n'est pas un héritage de nos parents, mais un emprunt que nous faisons à nos enfants. La protection de notre environnement est la responsabilité de tous. Ne reculez plus devant l'urgence, agissez !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager