Ok merci je vais essayer d'utiliser ça.. (même si je ne comprends pas le quart du tiers)
Ok merci je vais essayer d'utiliser ça.. (même si je ne comprends pas le quart du tiers)
Salut !
Ca semble bien fonctionner avec ce type de signal !// 1. Fabriquons un joli signal sinusoidale bruité.
Et chez toi, est-ce que ça fonctionne avec :
// 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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
![]()
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
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.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".![]()
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
Partager