Ok merci je vais essayer d'utiliser ça.. (même si je ne comprends pas le quart du tiers:D)
Version imprimable
Ok merci je vais essayer d'utiliser ça.. (même si je ne comprends pas le quart du tiers:D)
Salut !
Ca semble bien fonctionner avec ce type de signal !Citation:
// 1. Fabriquons un joli signal sinusoidale bruité.
Et chez toi, est-ce que ça fonctionne avec :
Citation:
// 1. Fabriquons un joli signal carré non bruité.
Soit je me suis planté dans la retranscription de ton code (avec moi tout est possible) soit ... ???Code:
1
2
3
4
5
6 bla bla ... int a = (i / 10) & 1; // /20 /40 /55 /90 /100 /110 if(a == 0) input = 128; else input = -128; signal[i] = input;
Dans le cas présent on est loin d'illustrer l'effet d'une passe-bas (RC) sur un signal carré (carré ... ment rectangle) !
A plus !
En prenant :
input = ((i/100 & 1)==0)?128:-128;
et en gardant la meme valeur pour :
alpha = 1/RC = 40
J'obtiens ce qui semble être une bonne illustration d'un passe-bas RC :D
http://xphilipp.developpez.com/tmp/lowpass1.png
Salut !
J'ai modifié en utilisant le type double pour l'ensemble des tableaux (j'avais un problème dû aux mélange de types... il me semble dans la partie filtre... peut-être à cause du compilateur de mon BCB ... ???).
Maintenant ça fonctionne, non sans savoir optimisé, de place en place, pour gagner un peu, en temps d'exécution !
Un grand merci à toi pseudocode !
A plus !
Oui, c'est bien possible que C et Java ne gère pas pareil le boxing int/double.
Comme je l'ai dit, c'est une implémentation "raz les pâquerettes" qu'on peut largement optimiser. Ne serait-ce qu'en remplaçant le calcul "brut-force" de la DFT par une FFT. Ou alors, si le filtre est petit (moins de 60 points) en faisant la convolution directement dans le domaine temporel. ;)Citation:
Maintenant ça fonctionne, non sans savoir optimisé, de place en place, pour gagner un peu, en temps d'exécution !
J'en profite aussi pour dire que le circuit RC n'est pas très performant comme filtre passe-bas. Il vaut mieux prendre un Butterworth d'ordre 2.
EDIT: j'ai fait une récap de tout le code que j'ai posté dans la rubrique "contribuez". ;)