PB traitement du signal fft/abs/angle

Fermé
Matlabitch Messages postés 1 Date d'inscription lundi 25 janvier 2016 Statut Membre Dernière intervention 25 janvier 2016 - 25 janv. 2016 à 15:22
Bonjour,

%%%%%%%%%%%%%%%%%%%%%%%%%%
fe_sync = 1000000; %fréquence d'échantillonage
t1=0:1/(1000000):1; %1Million de point en 1 sec (1MGHz)
t2=1;
t3=[100:0.0019:2000]';%Echelle de temps (de 100 a 2KHZ avec 1M de point)
f_start = 100; % fréquence de début (100Hz)
f_fin = 2000; % fréquence de fin (2KHz)
N=1000001; %nombre de points
y = 0.7*chirp(t1,f_start,t2,f_fin,'logarithmic');% on crée le signal sinusoïdal variant en fréquence de 100 à 2KHz

%% On applique la fft pour passer dans le domaine fréquentiel

Y=fft(y,N); % fft du signal crée
%% affichage
figure(111)
plot(t3,Y);
title('FFT du signal ');


%% Le module donne l'amplification :
A1=abs(Y./N); % partie réelle
a11=mag2db(A1); %converti en DB correspond à a11=20*log10(A1);

%% L'argument donne la phase (degré) :
A3=(angle((Y))*180./pi);% on calcule la phase en degré

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Voici le code que j'ai crée, je cherche a caractériser une chaîne de transmission (Haut-parleur) dans le cadre d'un projet étudiant.
Tout d'abord je crée un signal sinusoïdal variant en fréquence(sur matlab), je passe dans le domaine fréquentiel, ensuite je calcul le module et l'argument.
Le signal crée est envoyé sur ma chaîne de transmission et mesuré à l'aide d'un oscilloscope (1 million de point/seconde).

Par la suite je récupère les données de l'oscilloscope , je les transfert sur matlab et j'effectue exactement le même traitement que le code si dessus.
cependant alors que pour la fft j'obtient des résultats plus ou moins identiques , quand je calcul le module déjà j'ai l'impression que le résultat est fortement bruité, et quand arrive la phase alors la ça devient n importe quoi.

Mon objectif par la suite est de calculer 20log(Sortie/Entrée) en phase et en module. mais avec mes résultats impossible d'avoir un diagramme cohérent.

J'aimerai déjà savoir si l'approche de la méthode est cohérente?
Est ce que je peux utiliser la fonction unwrap sachant que mon signal varie en fréquence ?
y aurait-il des erreurs que je ne verrai pas dans mon code.

Cordialement et merci d'avance.