Bonjour,
J'aimerais filtrer un signal. Le signal est échantillonné à 6000 Hz et je voudrais le filtrer pour ne garder que les composantes entre 2800 Hz et 2950 Hz (passe-bande).
Comment faire ?
Merci !
Version imprimable
Bonjour,
J'aimerais filtrer un signal. Le signal est échantillonné à 6000 Hz et je voudrais le filtrer pour ne garder que les composantes entre 2800 Hz et 2950 Hz (passe-bande).
Comment faire ?
Merci !
Tu devrais pouvoir t'en sortir avec
et http://fr.wikipedia.org/wiki/Filtre_passe-bandeCode:
1
2 doc filter; doc c2d;
Ca donne quelque chose comme :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 signalEntree = rand(1000,1); t = 0:1/6000:1/6000*(1000-1); w1 = 2800/2/pi; w2 = 2950/2/pi; w0 = sqrt((w1*w2)); Q = w0/(w2-w1); passeBandeContinu = tf([1 0],[Q/w0 1 Q*w0]); passeBandeDiscret = c2d(passeBandeContinu,1/6000); signalFiltre = filter(passeBandeDiscret.num{1},passeBandeDiscret.den{1},signalEntree); %Observation du bode figure; bode(passeBandeContinu,[w1:1:w2 w2]); %observation de la réponse impulsionnelle figure; step(passeBandeContinu,'-',passeBandeDiscret,'--'); %Observation du résultat filtré figure; plot(t,signalEntree); hold on; plot(t,signalFiltre,'r');