somme nombre fini de fréquence
Bonjour à tous,
Je cherche à générer un signal composé d'une somme de fréquence (de 1 à 3200 par pas de 0.1) avec chacune une phase aléatoire (Phi = rand;) afin de tester un filtre et déterminer l'exactitude de sa fréquence de coupure.
Je m'attendais à trouver une fft qui réponde pour chaque fréquence (en quelque sorte de forme carrée) et malheureusement ce n'est pas le cas et j'obtiens en fait deux pics de fréquence.
Auriez-vous une idée de l'endroit où j'ai commis une erreur dans mon code?
Voici mon code:
Code:
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
| clear all
close all
Fs = 32768; % Sampling frequency
T = 1/Fs; % Sample time
L = 2048; % Length of signal
t=(0:L-1)*T;
f_array = 1:0.1:3200;
Phi = rand;% Phase alétoire
for Index_f = 1 : length (f_array)
f = f_array(Index_f);
SimSig(Index_f,:) = sum(sin(2*pi*f*t+Phi));
end
plot(SimSig)
figure('name','Full FFT','numbertitle','off');
FFT_size=2048;
X=fft(SimSig,FFT_size);
f=(0:FFT_size/2)/(FFT_size/2)*Fs/2;
plot(f,abs(X(1:FFT_size/2+1)));
title('FFT - Pré');
xlabel('Fréquence(Hz)');
ylabel('Amplitude'); |
Merci d'avance!