élargir la bande de fréq FFT matlab
Fermé
Le Trouveur
Messages postés
12
Date d'inscription
vendredi 18 avril 2008
Statut
Membre
Dernière intervention
9 septembre 2008
-
10 mai 2008 à 11:42
izi - 25 mai 2011 à 15:24
izi - 25 mai 2011 à 15:24
A voir également:
- élargir la bande de fréq FFT matlab
- Extraire bande son d'une video - Guide
- Comment élargir une photo - Guide
- Couper une bande son - Guide
- Bande déroulante excel - Guide
- Bande passante insuffisante - Forum Format et connectique vidéo
3 réponses
damlegone32
Messages postés
74
Date d'inscription
lundi 11 septembre 2006
Statut
Membre
Dernière intervention
31 mai 2011
29
10 mai 2008 à 15:37
10 mai 2008 à 15:37
Salut,
Si tu as fais un peu de traitement du signal tu dois savoir que le spectre d'un signal échantillonné et répété tous les Fe/2 où Fe est la fréquence d'échantillonnage du signal. Donc connaitre la transformé de fourrier entre 0 et Fe suffit pour connaitre tous le spectre. De plus comme le signal de ton exemple est réel il suffit juste de le tracé ente 0 et Fe/2. Voila pourquoi on ne prend que les 257 premiers points.
Si dans l'exemple tu veux tracé le spectre jusqu'à 120 khz il suffit d'augmenter la fréquence d'échantillonnage à 240 khz:
t = 0:1/(240e3):0.6;
puis f = 240e3*(0:256)/512; le reste c'est pareil.
Pour avoir une fft plus précise tu peut augmenter le pas de calcul prendre 1024 ou 2048 a la place de 512. Tous en modifiant la suite en conséquence.
Voilou. en espérant t'avoir éclairé.
A+
Si tu as fais un peu de traitement du signal tu dois savoir que le spectre d'un signal échantillonné et répété tous les Fe/2 où Fe est la fréquence d'échantillonnage du signal. Donc connaitre la transformé de fourrier entre 0 et Fe suffit pour connaitre tous le spectre. De plus comme le signal de ton exemple est réel il suffit juste de le tracé ente 0 et Fe/2. Voila pourquoi on ne prend que les 257 premiers points.
Si dans l'exemple tu veux tracé le spectre jusqu'à 120 khz il suffit d'augmenter la fréquence d'échantillonnage à 240 khz:
t = 0:1/(240e3):0.6;
puis f = 240e3*(0:256)/512; le reste c'est pareil.
Pour avoir une fft plus précise tu peut augmenter le pas de calcul prendre 1024 ou 2048 a la place de 512. Tous en modifiant la suite en conséquence.
Voilou. en espérant t'avoir éclairé.
A+
damlegone32
Messages postés
74
Date d'inscription
lundi 11 septembre 2006
Statut
Membre
Dernière intervention
31 mai 2011
29
11 mai 2008 à 22:16
11 mai 2008 à 22:16
Salut,
Est-tu bien sur que ta fréquence d'échantillonnage c'est 120 kHz ?
Tu peux faire Fe =1 /(t(2) - t(1)) pour vérifier
Puis tu prends comme vecteur f : f = Fe * (0:511)/512;
De plus si tu veut que ton spectre soit correct il faut que la fréquence maximale de ton signal de base soit inférieure à Fe/2 (pour respecter le th. de Shannon). Est-ce bien le cas ? Sinon tu as un repliement de spectre.
Sinon je vois pas d'où peut venir le problème. Pour avoir déjà pratiqué ce type de calcul de fft sur des données acquise par labview normalement ça marche. Reste a voir si par hasard ton signal n'est pas noyé dans un fort bruit auquel cas le spectre le serait également. N'hésite pas également à augmenter le nombre de point de calcul de la fft.
De plus un pic en f=0 s'explique par un signal a moyenne non-nulle. Si tu fait mean(s) ça sera différent de 0.
A+
Est-tu bien sur que ta fréquence d'échantillonnage c'est 120 kHz ?
Tu peux faire Fe =1 /(t(2) - t(1)) pour vérifier
Puis tu prends comme vecteur f : f = Fe * (0:511)/512;
De plus si tu veut que ton spectre soit correct il faut que la fréquence maximale de ton signal de base soit inférieure à Fe/2 (pour respecter le th. de Shannon). Est-ce bien le cas ? Sinon tu as un repliement de spectre.
Sinon je vois pas d'où peut venir le problème. Pour avoir déjà pratiqué ce type de calcul de fft sur des données acquise par labview normalement ça marche. Reste a voir si par hasard ton signal n'est pas noyé dans un fort bruit auquel cas le spectre le serait également. N'hésite pas également à augmenter le nombre de point de calcul de la fft.
De plus un pic en f=0 s'explique par un signal a moyenne non-nulle. Si tu fait mean(s) ça sera différent de 0.
A+
passionfm
Messages postés
1
Date d'inscription
mercredi 20 mai 2009
Statut
Membre
Dernière intervention
20 mai 2009
20 mai 2009 à 15:31
20 mai 2009 à 15:31
bonjour
avez vous trouve votre bonheur ?
pour ma part je suis actif dans ce domaine.....
car je suis en quete de realiser mon spectre a 60 Khz....voir 88khz +/-
pour visualiser mon signale mpx sortant de mon tuner fm
actellement je parviens a afficher de 0 a 46 khz lineairement sur mon pc
depuis la semaine passee ,
je decode egalement l RDS par mon pc....sans interface/boitier de decodage ...
autrement dit, je prend le data directement dans le tuner et l envoie par le port serie aux pc
actuellement de 0 a 20 khz sur les bande de couleur
et sur les logo RDS l image RDS
voir mon site http://www.passionfm.be
avez vous trouve votre bonheur ?
pour ma part je suis actif dans ce domaine.....
car je suis en quete de realiser mon spectre a 60 Khz....voir 88khz +/-
pour visualiser mon signale mpx sortant de mon tuner fm
actellement je parviens a afficher de 0 a 46 khz lineairement sur mon pc
depuis la semaine passee ,
je decode egalement l RDS par mon pc....sans interface/boitier de decodage ...
autrement dit, je prend le data directement dans le tuner et l envoie par le port serie aux pc
actuellement de 0 a 20 khz sur les bande de couleur
et sur les logo RDS l image RDS
voir mon site http://www.passionfm.be
11 mai 2008 à 19:26
merci pour ces précisions, j'ai essayé de mettre la fréquence d'échantillonnage à 120 kHz, mais je remarque que les raies sont décalées et n apparaissent plus à la même fréquence..
pour le cas qui m'intéresse c est un peu différent:
mon but est de voir les différentes fréquences des signaux qui compose le signal de base acquis sur mon pc, et je m'aperçois que les courbes ne sont pas ce que j'attends. peut être que je m y prends mal et que je ne cherche pas au bon endroit, voici mon code:
--------------------
load 50p2.m; % tableau des données (enregistré par labview sur le pc: 2 colonnes, 10000 lignes)
t=X50p2(1:10000,1); % les 10000 valeurs de la première colonne correspondent au temps, qui ne sert pas dans mon code d'ailleurs, c'est peut être une erreur.
s=X50p2(1:10000,2); % les 10000 valeurs de la deuxième colonne sont les valeurs de l'amplitude correspondante
Y = fft(s,512); % transformée de fourier de l'amplitude sur 512 points
Pyy = Y.* conj(Y) / 512; % élimine la partie complexe
f = 120000*(0:511) / 511; % fréquence allant de 0 à 120 kHz
plot(f,Pyy(1:512))
----------------------------------
ce graphe n'est pas ce que j attends, d ailleurs il ne présente aucun spectre. ou rien de discernable, à part un pic à 0.
peut être faut il aborder la chose autrement pour pratiquer la fft d un signal qui est stocké dans un tableau?
ou peut être ai je fait une erreur?
merci d avance
25 mai 2011 à 15:24
merci d'avance