bonjour, je dois filtrer un signal échantillonné à 5Khz en temps réel et récupérer le fondamental. je connais la fréquence du signal à peut prés ( de 10hz à 100 Hz) J'ai récupérer l'algorithme ( filtre de butterworth a 2 pôles)
filtre numerique de butterworth
"Fred Kap" a écrit dans le message de news: snipped-for-privacy@NOt.com...
Bonjour,
la transmittance isochrone d'un Butterworth d'ordre 2, c'est:
1/ (1 + j sqrt(2) w/w0 - (w/w0)^2)si vous voulez le réaliser en numérique, l'approximation classique est jw #
2 / Te * (1-z^(-1)) / (1+z^(-1))où z^(-1) est l'opérateur retard (implicitement de Te) et Te la période d'échantillonnage.
par exemple, z^(-1) * x(n) = x(n-1)
Donc dans la transmittance isochrone vous remplacez jw par son approximation....puis quelques lignes de maths pour arriver à l'équation de récurrence....
Si vous n'y arrivez pas je vous donnerai le résultat.
Cordialement
Vincent
PS: la réponse n'est pas la même, bien sûr. Notamment, fréquence de coupure numérique = fe / pi * arctan( pi * f0 / fe)...choisir f0 en conséquence...
exemple: coupure du filtre numérique désirée à 1 kHz, fe = 5 kHz
f0 = fe / pi * (pi * fdes / fe) = 1156 kHz
c'est ce f0 là qui doit être utilisé dans la transmittance isochrone pour les calculs.
f0 = fe / pi * tan(pi * fdes / fe) = 1156 kHz
"Fred Kap" a écrit dans le message de news: snipped-for-privacy@NOt.com...
Bonjour,
Simple curiosité, ne serait ce pas un signal ECG pour avoir une bande passante de 10 à 100 Hz?
Cordialement pf
Je te remercie de ta réponse , pourrais tu me donner par exemple les valeurs A et B pour F=50 Hz.
Le Mon, 14 Sep 2009 14:27:20 +0200, Vincent Thiernesse a écrit :
Le Tue, 15 Sep 2009 10:06:02 +0200, Pierre-François (f5bqp_pfm) a écrit :
Non , c'est un signal courant de moteur.
"Fred Kap" a écrit dans le message de news: snipped-for-privacy@NOt.com...
d'abord, ta formulation est incomplète:
y[2] = 1 / C * (x[0] + x[2]) + 2 * x[1] + A* y[0]) + B * y[1])
avec:
*) C = 1 + a + b *) B = 2 * (b - 1) *) A = a - b - 1où:
a = sqrt(2) * fe / (pi * f0) b = (fe / (pi * f0))^2
note que tu prends f0
"Vincent Thiernesse" a écrit dans le message de news:4aafa894$0$17759$ snipped-for-privacy@news.orange.fr...
rq: j'ai considéré fe = 5 kHz, comme dans ton post initial.
Le Tue, 15 Sep 2009 17:13:57 +0200, Vincent Thiernesse a écrit :
Super , je vais essayer ca , merci
Il manque des parentheses ou il y en a de trop y[2] = 1 / C * (x[0] + x[2]) + 2 * x[1] + A* y[0]) + B * y[1]) est ce que c'est ca ? y[2] = 1 / C * (x[0] + x[2] + 2 * x[1]) + A* y[0] + B * y[1]
ok c'est en fait y[2] = 1 / C * (x[0] + x[2] + 2 * x[1] + A* y[0] + B * y[1])
"Fred Kap" a écrit dans le message de news: snipped-for-privacy@NOt.com...
tout à fait !!!
si vous avez un doute, vous pouvez remplacer tous les Xn et Yn par 1 et vérifier l'égalité.
@+
Vincent
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required