Physique - UCL

forum de discussion entre étudiants
 
AccueilAccueil  CalendrierCalendrier  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  

Partagez | 
 

 traitement du signal

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
jfcp
Irrécupérable
avatar

Nombre de messages : 673
Age : 32
Localisation : forest (aime tjs pas bxl ;-)
Date d'inscription : 01/02/2005

MessageSujet: traitement du signal   Jeu 20 Déc - 21:13

AU SECOURS!!!

j'essaie déspérément de faire une FFT sous matlab, si je rentre un signal connu tout simple (genre une sinusoide avec une amplitude et une fréquence donnée), la fft ne me donne pas tout à fait l'amplitude et la fréquence....et l'erreur me semble trop grande pour dire "ah c la limitation du programme"..bref il y a un truc que je dois pas faire correctement...

donc si un de ceux qui ont suivi ce cours ont des codes d'exercices sur la fft, ca pourrait m'aider...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.astro.oma.be/D1/PLANET/ISY/home_icy.php
loicus
Irrécupérable
avatar

Nombre de messages : 1453
Age : 32
Localisation : 50°40'45.01"N 4°33'19.93"E
Date d'inscription : 09/01/2005

MessageSujet: Re: traitement du signal   Jeu 20 Déc - 22:00

Je te fais un copier/coller d'un exercice qu'on avait fait :
en esperant que ca t'aide....
Loic

############################

T = 10^-3;
dt = 10^-6;
N = T/dt;
f0 = 1/T;

t = 0:dt:T;

A1 = 1;
A2 = 1;
Abruit = 3.0;

freq1 = 1*10^4;
freq2 = 3*10^3;
bruit = Abruit*randn (1, fix(N+1) ); %fix is there just to be sure that N+1 is an integer


% Construction du signal
figure(1)
subplot(2,2,1);
signal = A1 .*sin(2*pi*freq1.*t) + A2 .*sin(2*pi*freq2.*t) + bruit ;

plot(t,signal)
title('Signal')

% Construction du spectre en fréquence du signal
subplot(2,2,3);
freq_x = -N*f0/2 : f0 : N*f0/2;
freq_signal = fft(signal);
freq_signal = fftshift(freq_signal);

plot(freq_x,abs(freq_signal) );
title('Spectre en fréquence du signal')
grid;


% Supression du bruit (fréquences non dominantes)
subplot(2,2,4);
freq_signal2 = freq_signal;
for i = 1:1:length(freq_signal)
if abs(freq_signal2(i)) <= 300
freq_signal2(i) = 0;
end
end

plot(freq_x, abs(freq_signal2));
title('Spectre en fréquence du signal débruité')
grid;

% Affichage du signal débruité
subplot(2,2,2);
plot(t, ifft(ifftshift(freq_signal2)) );
title('Signal débruité')
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.futura-sciences.com/
jfcp
Irrécupérable
avatar

Nombre de messages : 673
Age : 32
Localisation : forest (aime tjs pas bxl ;-)
Date d'inscription : 01/02/2005

MessageSujet: Re: traitement du signal   Ven 21 Déc - 12:29

merci (c chouette la fftshift...),

mais bon , y a rien à faire, les amplitudes rendues ne sont pas correctes...

pour avoir les amplitudes, la doc de matlab me dit que je doit prendre abs(Y)*2/(N+1). en plus comme j'ai pas de bruit, ca devrait fonctionner quasi parfaitement...

voilà le code qui corresond à mon problème (la fft ne retrouve pas 1 et 10, mais 1.04 et 9.7, sachant que j'ai besoin d'une précision à 10^-4, c un peu frustrant). J'ai diminué le pas de temps dt, ca ne donne rien...

T = 0.001;
dt = 0.000000001;
N = T/dt;
f0 = 1/T;

t = 0:dt:T;

A1 = 1;
A2 = 10;

freq1 = 1/0.0000355;
freq2 = 1/0.00055;


% Construction du signal
figure(1)
subplot(2,1,1);
signal = A1 .*sin(2*pi*freq1.*t) + A2 .*sin(2*pi*freq2.*t) ;

plot(t,signal)
title('Signal')

% Construction du spectre en fr?quence du signal
subplot(2,1,2);
freq_x = -N*f0/2 : f0 : N*f0/2;
freq_signal = fft(signal);
freq_signal = fftshift(freq_signal);

plot(freq_x,2*abs(freq_signal)/(N+1) );
title('Spectre en fr?quence du signal')
grid;
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.astro.oma.be/D1/PLANET/ISY/home_icy.php
loicus
Irrécupérable
avatar

Nombre de messages : 1453
Age : 32
Localisation : 50°40'45.01"N 4°33'19.93"E
Date d'inscription : 09/01/2005

MessageSujet: Re: traitement du signal   Sam 22 Déc - 18:18

attention que les amplitudes sont définie a des facteur sqrt(2pi) pret... en fonctiond e la formule que matlab utilise...

c'est peut etre ca le probleme...

sinon, je ne sais pas t'aider...
essaye sur un formum matlab

loic,
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.futura-sciences.com/
Contenu sponsorisé




MessageSujet: Re: traitement du signal   

Revenir en haut Aller en bas
 
traitement du signal
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» traitement de signale
» sujet magister electonique epreuve de traitement de signal: oran 2008
» Votre traitement
» aidez moi svp quel sont les meilleur traitement en ce momen
» Mon traitement...

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Physique - UCL :: 2ème Licence :: Electronique, traitements de données & modélisations-
Sauter vers: