Filtre FIR de mise en œuvre de la programmation en C
Quelqu'un peut me dire comment mettre en œuvre un filtre FIR à l'aide de langage de programmation c.
- sestevenson.wordpress.com/2010/01/04/...
- vous voudrez peut-être vérifier musicdsp.org pour les filtres, comme des listes de codes libres datant depuis 2000.
- "fircoef.h", il peut être utile de recherche de google
Vous devez vous connecter pour publier un commentaire.
De la conception d'un filtre FIR est PAS un simple sujet, mais la mise en œuvre d'un déjà conçu filtre (en supposant que vous avez déjà le SAPIN coefficients) n'est pas trop mauvais. L'algorithme est appelé la convolution. Voici une implémentation naïve...
Fondamentalement, le produit de convolution fait un mouvement de la moyenne pondérée du signal d'entrée. Les pondérations sont les coefficients d'un filtre, qui sont supposés somme à 1.0. Si la somme des poids de quelque chose d'autre que 1.0, vous obtenez une certaine amplification/atténuation ainsi que le filtrage.
BTW - il est possible que cette fonction a les coefficients de la matrice de rétro - je n'ai pas vérifié et c'est un moment depuis que j'ai pensé à ces choses.
Pour comment calculer le SAPIN coefficients d'un filtre particulier, il ya une bonne quantité de mathématiques derrière que vous avez vraiment besoin d'un bon livre sur le traitement du signal numérique. Cette une est disponible gratuitement pour un PDF, mais je ne suis pas sûr de savoir comment il est bon. J'ai Rorabaugh et Orfandis, tous deux publiés dans le milieu des années nonante, mais ces choses ne sont pas vraiment obsolète.
De combiner plusieurs filtres:
Commencer avec une unité d'impulsion (signal avec un 1 dans la première position et 0 partout ailleurs). Appliquer le premier filtre. Appliquer le deuxième filtre. Continuer jusqu'à ce que tous les filtres sont appliqués. Le résultat montre comment le combiné filtres de convolution de l'unité d'impulsion (à condition que le tableau est assez long pour qu'aucune donnée n'a été perdue), de sorte que les valeurs sont les coefficients d'un filtre qui est de la composition des autres filtres.
Voici un exemple de code:
J'ai trouvé ce bout de code ne fonctionne pas pour moi (Visual Studio 2005).
J'ai fini par trouver la convolution des questions ayant une grande réponse:
1d convolution linéaire en C ANSI code?
Pour ceux qui ne connaissent pas le produit de convolution est exactement le même fonctionnement que le SAPIN de filtrage - le "noyau" est le SAPIN de Filtre à réponse impulsionnelle et le signal est le signal d'entrée.
J'espère que cela aide certains mauvais sap qui était à la recherche pour le SAPIN de code 🙂
Voir ce lien pour les FIR et IIR code c et FIR et IIR exemples de filtres.
http://www.iowahills.com/A7ExampleCodePage.html
StackOverflow
, veuillez coller les parties pertinentes de celui-ci (dans le cas où le lien ou le site tombe en panne), d'ailleurs, c'est seulement un lien "Répondre" et ceci ne compte pas ici.