Bonjour,
Je souhaite synthétiser un signal composé d'un sinus dont la fréquence à chaque instant t dépend de la valeur d'un paramètre. Le paramètre en question est dans un premier temps constant, puis croissant et enfin de nouveau constant (cf. plot 1). La fréquence du sinus est correctement calculée à chaque instant t (cf. plot 2).
Mon problème est que, lorsque je trace le spectrogramme du signal, l'évolution de la fréquence au cours du temps ne correspond pas à celle qui a été calculée et qui est visible sur le plot 2. Plus précisement, la fréquence du signal est correcte lorsque le paramètre est constant mais, lors de la phase de croissance du paramètre, la fréquence du signal est "décalée" (cf. spectrogramme). Je ne comprends pas la raison de ce phénomène...
Je vous remercie par avance pour toute idée/explication/aide que vous pourrez m'apporter.
Arthur.
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 % Initialisation des paramètres Fs = 22050; d = 3; t = 0:1/Fs:d-1/Fs; finit = 200; % Création du profil du paramètre a = 15/(t(2*length(t)/3)-t(length(t)/3)); b = 5-t(length(t)/3)*a; param = [5*ones(1,length(t)/3)... a*t(length(t)/3+1:2*length(t)/3)+b... 20*ones(1,length(t)/3)]; % Calcul de la fréquences et du signal à chaque instant t f = zeros(1, length(t)); y = zeros(1, length(t)); for i=1:length(t) f(i) = param(i)*finit/5; y(i) = sin(2*pi*f(i)*t(i)); end % Tracés figure, plot(t,param), xlabel('Temps'), ylabel('Paramètre'); figure, plot(t,f), xlabel('Temps'), ylabel('Fréquence du sinus'); figure, spectrogram(y,blackman(128),56,128,Fs,'yaxis');
Partager