Rechercher : dans
Par :

Filtrage Passe-bande (Matlab)

Dernière réponse le 9 mar 2009 à 19:34:47 Bonnassie, le 20 jan 2006 à 16:01:00 
 Signaler ce message aux modérateurs

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 ************************

Meilleures réponses pour « Filtrage Passe bande (Matlab) » dans :
[Windows XP] Libérer 20% de la bande passante VoirComment faire ? Par défaut, Windows XP Pro réserve 20% de la bande passante de la connexion à Internet en cas de congestion réseau à l'aide d'un outil appelé "Planificateur de paquets". (Lire l'article: mythes xp reserve 20 de la bande passante...
[mythes] XP réserve 20% de la bande passante VoirMythe Windows XP se réserve 20% de la bande passante réseau. Réalité FAUX Explications Windows XP Pro possède un mécanisme qui - en cas de congestion réseau - réserve une petite partie de la bande passante aux applications prioritaires (qui le...
Les filtres graphiques VoirFiltrage Le filtrage consiste à appliquer une transformation (appelée filtre) à tout ou partie d'une image numérique en appliquant un opérateur. On distingue généralement les types de filtres suivants : les filtres passe-bas, consistant à atténuer...

1

nedjla, le 20 fév 2006 à 14:01:19

Je veux filtrer un signal pseudo aleatoire par un filtre passe bande de 50MHz a 8000MHz
merci

Répondre à nedjla

2

zanouni, le 25 jan 2008 à 15:04:17

Salut
j'ai un signal qui est issu d'un accélerometre et je voudrais filtré ce signal des valeurs d'accélerations dynamiques pour ne laisser que les valeurs de gravitation g.
comment je pourrais réaliser ca avec un filtre passe bas sous matlab

Répondre à zanouni

3

 halloran, le 9 mar 2009 à 19:34:47
  • +2

Salut

voila un petit soft sous matlab qui permet de réaliser un filtre passe pas
tu dois rentrer les paramètres comme le gain , la fréquence de coupure et la plage de fréquence qui sera sans doute ton signal en sortie de ton accéléromètre.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Modelisation of a low pass filter.
% March 9th, 2009.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

clear all;
close all;
clc;

% parametes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

G=1; % low-pass filter gain
w=0:10000; % frequency range
wo=1000; % Cut-off frequency

% program %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% for to generate a low pass filter, we use a canonical form.

H=G*(1./(1+j.*(w/wo))); % canonical form equation
H=abs(H); % modul
semilogx(H); % curve
grid on; % grid



a+
romain m.

Répondre à halloran
Collection CommentÇaMarche.net