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
|
%SPECTROGRAMME : code permettant de tracer le spectrogramme d'un signal
%sans passer par la fonction prédéfinie spectrogram() de Matlab
%exemple d'une fonction sinus
close all, clear all;
% axe des temps
fe = 1000; % fréquence d'échantillonnage
te = 1/fe;
t = (0 : te : 10);
signal = sin(2*pi*20*t);
figure
plot(t , signal);
borneinf = 1;
delta = 0.5;
L = length(signal);
while borneinf < L
a = signal(borneinf : 1 : borneinf + delta); % sélection d'une partie du signal de départ
b = (abs(fftshift(fft(a)))).^2; % calcul de la transformée de Fourier, puis de son module au carré
c = b.'; % transposée : inversion lignes/colonnes
if borneinf == 1
d = c;
else
d = [ d, c ]; % concaténation : ajout du vecteur colonne c "à droite" de la matrice d
end;
borneinf = borneinf + delta; % incrémentation
end;
figure;
plot(d); %tracé du spectrogramme |
Partager