J'ai implémenté un algorithme de base Karplus-Strong.
Le tampon de remplissage, qui se remplit de bruit blanc, émet un échantillon à partir de l'avant et ajoute la moyenne des deux premiers éléments à la fin et supprime le premier élément. Répétez le dernier pour les étapes.Extension de Karplus-Strong avec filtre passe-bas
Pour de meilleurs résultats et le contrôle sur eux, j'ai essayé d'implémenter une version étendue de l'algorithme.
Par conséquent, au lieu d'un filtre de moyennage j'ai besoin d'un filtre de fréquence comme un filtre passe-bas.
Mon filtre moyenne a deux entrées et une sortie: avg (a, b) = (a + b)/2
L'exemple de code sur la page wikipedia donne autant de sorties que les entrées.
http://en.wikipedia.org/wiki/Low-pass_filter
I ont trouvé d'autres versions (mathématiques) comme:
http://cnx.org/content/m15490/latest/
H (z) = (1+ (1/z))/2
Je suppose que z est un nombre complexe.
Les deux versions ont deux entrées mais aussi deux sorties.
Comment puis-je obtenir une valeur significative?
Ou dois-je réécrire de plus grandes parties de l'algorithme?
Si c'est le cas, où puis-je trouver une bonne explication?
Merci pour la réponse. Je ne savais pas que j'utilise déjà un filtre passe-bas. Ensuite, j'ai besoin d'un plus avancé avec des paramètres. Merci pour les conseils pour calculer le coefficient et la commande. Je vais probablement utiliser cela dans le futur. Mais le problème actuel est l'implémentation d'un tel filtre. –
L'implémentation est * très simple *: y = c0 * x [0] + c1 * x [1] ... Définir de bonnes valeurs pour c est la partie la plus difficile. –
Oui, c'est simple. Explique aussi pourquoi la moyenne est un filtre passe-bas. (a + b)/2 => 0,5 * a + 0,5 * b. Question répondue et acceptée. Je suppose que la haute et la basse de la bande est également simple? Si oui, pourriez-vous également écrire ces algorithmes? –