Filtrage Passe-bande (Matlab)
Bonnassie
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
halloran Messages postés 45 Date d'inscription Statut Membre Dernière intervention -
halloran Messages postés 45 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je cherche à réaliser un filtre passe-bande sous matlab. Je travaille avec un bruit d'une durée de 5ms et échantillonné à 4MHz. Je souhaite filtrer ce bruit de façon à ce qu'il existe dans une bande de 3KHz centrée sur la fréquence de 16KHz avec fc1=14.5KHz et 17.5KHz. J'ai implémenté une petite routine sous Matlab. J'arrive à visualiser une magnitude correcte de mon filtre (fig1) mais mon bruit sortant du filtre est "astronomique" (fig2). Du coup, lorsque que je regarde le spectre de ce bruit (fig3), je n'obtiens rien. Plutôt que de grands discours, je vous montre ma routine pour que vous puissiez la tester à l'occasion et voir ce qu'il en est. Si quelqu'un a une idée à me suggérer, je suis preneuse.
Merci d'avance.
Alek.xandra.
Programme : ****************************************
clear all;
close all;
B = 3000; % Bande spectrale en Hz
T = 0.005; % Durée de l'impulsion en ms
f0 = 16000; % Fréquence centrale du code 22 en Hz
Fe = 4000000; % Frequence d echantillonnage
t = 0:1/Fe:T; % Balayage en temps
f = (0:length(t)-1)*Fe/length(t); % Balayage en frequence
X = 0.5*randn(size(t)); % Bruit aleatoire de matlab
K=1; % Gain du filtre
wp = 16000; % Fréquence centrale
Qp=14500/3000; % Facteur de qualité fc1/bande
coef=K/Qp;
B=[0 wp.*coef 0];
A=[1 wp./Qp wp.^2];
figure(1);
freqs(B,A,logspace(4,5,100));
title('Réponse fréquentielle du filtre passe-bande','FontSize',16);
Y=filter(B,A,X);
figure(2);
plot(t,Y);grid;
title('Bruit filtré','FontSize',16);
xlabel('Temps (en s)','FontSize',14);
ylabel('Amplitude (en V)','FontSize',14);
figure(3);plot(f,fftshift(fft(Y)));grid;
title('Spectre du bruit filtré','FontSize',16);
xlabel('Fréquence (en Hz)','FontSize',14);
ylabel('Amplitude (en V)','FontSize',14);
Fin du programme ************************
Je cherche à réaliser un filtre passe-bande sous matlab. Je travaille avec un bruit d'une durée de 5ms et échantillonné à 4MHz. Je souhaite filtrer ce bruit de façon à ce qu'il existe dans une bande de 3KHz centrée sur la fréquence de 16KHz avec fc1=14.5KHz et 17.5KHz. J'ai implémenté une petite routine sous Matlab. J'arrive à visualiser une magnitude correcte de mon filtre (fig1) mais mon bruit sortant du filtre est "astronomique" (fig2). Du coup, lorsque que je regarde le spectre de ce bruit (fig3), je n'obtiens rien. Plutôt que de grands discours, je vous montre ma routine pour que vous puissiez la tester à l'occasion et voir ce qu'il en est. Si quelqu'un a une idée à me suggérer, je suis preneuse.
Merci d'avance.
Alek.xandra.
Programme : ****************************************
clear all;
close all;
B = 3000; % Bande spectrale en Hz
T = 0.005; % Durée de l'impulsion en ms
f0 = 16000; % Fréquence centrale du code 22 en Hz
Fe = 4000000; % Frequence d echantillonnage
t = 0:1/Fe:T; % Balayage en temps
f = (0:length(t)-1)*Fe/length(t); % Balayage en frequence
X = 0.5*randn(size(t)); % Bruit aleatoire de matlab
K=1; % Gain du filtre
wp = 16000; % Fréquence centrale
Qp=14500/3000; % Facteur de qualité fc1/bande
coef=K/Qp;
B=[0 wp.*coef 0];
A=[1 wp./Qp wp.^2];
figure(1);
freqs(B,A,logspace(4,5,100));
title('Réponse fréquentielle du filtre passe-bande','FontSize',16);
Y=filter(B,A,X);
figure(2);
plot(t,Y);grid;
title('Bruit filtré','FontSize',16);
xlabel('Temps (en s)','FontSize',14);
ylabel('Amplitude (en V)','FontSize',14);
figure(3);plot(f,fftshift(fft(Y)));grid;
title('Spectre du bruit filtré','FontSize',16);
xlabel('Fréquence (en Hz)','FontSize',14);
ylabel('Amplitude (en V)','FontSize',14);
Fin du programme ************************
A voir également:
- Filtre passe bande matlab
- Photo filtre 7 gratuit - Télécharger - Retouche d'image
- Trousseau mot de passe iphone - Guide
- Mot de passe - Guide
- Mot de passe administrateur freebox ✓ - Forum Freebox
- Mot de passe administrateur - Guide