Lors de la décimation d'un signal à bande étroite avec un filtre à peigne intégrateur en cascade (CIC) , quel filtre FIR est le plus approprié pour compenser la réponse en fréquence CIC?
filter-design
Augusto Zebadúa
la source
la source
Réponses:
Il n'y a pas de réponse unique à votre question: comme pour tout problème de conception de filtre, cela dépend de vos besoins. Comme décrit assez bien sur la page Wikipedia , les filtres CIC (cascaded-integrator-comb) sont constitués d'un certain nombre de paires d'étapes d'intégrateur et de peigne (d'où le nom). Chaque étage intégrateur-peigne a une réponse impulsionnelle agrégée équivalente à un filtre wagon plat (c'est-à-dire un filtre à réponse rectangulaire). La réponse en fréquence (amplitude) d'un wagon couvert a une forme ressemblant à une fonction sinc, de sorte que la structure globale du CIC va avoir une réponse en amplitude qui ressemble à une fonction sinc prise à une puissance , où N est le nombre d'étages intégrateur-peigne.N N
Cependant, il n'y a pas beaucoup de boutons à ajuster en fonction des exigences spécifiques à l'application. Vous pouvez modifier le rapport de décimation / interpolation de la structure CIC, le délai du peigne et le nombre d'étages, mais vous êtes toujours coincé avec la réponse en fréquence de type sinc, qui n'est pas particulièrement idéale, car elle n'est pas plate à travers le lobe principal et a des lobes latéraux relativement élevés. Il est donc typique qu'un CIC soit suivi d'un autre filtre qui «nettoie» la réponse globale.
Le hic: ce dont vous avez besoin de tout filtre compensateur que vous mettez après le CIC va être défini par votre application. Ce qui est vraiment important, c'est la réponse de la cascade globale, que vous contraindriez en fonction des besoins de votre application. Il n'y a pas de filtre spécifique «le plus approprié».
la source
Il y avait une question similaire, https://dsp.stackexchange.com/a/1551/306 , et ce qui suit est un sous-ensemble de la réponse de l'autre post.
Généralement, pour compenser un filtre CIC, l'inverse de la réponse des filtres CIC peut être utilisé pour générer le filtre de compensation. Le CIC a une réponse de 2
Où D est le retard de différenciation, M est le taux de décimation et N est l'ordre des filtres (nombre de filtres en cascade). L'inverse peut être spécifié comme
Une fois que nous avons la réponse en fréquence du filtre de compensation, nous pouvons simplement choisir la longueur de filtre FIR que nous désirons. La longueur de la FIR est spécifique à l'application. Évidemment, plus le filtre FIR est long, meilleure est la compensation.
Les éléments suivants sont des graphiques de cette compensation simple.
Ce qui suit est le code Python pour créer les réponses en fréquence et les tracés.
import numpy as np from numpy import sin, abs, pi import pylab
1 Altera, "Comprendre les filtres de rémunération CIC"
2 R. Lyons, "Understanding Digital Signal Processing", 2e éd., Prentice Hall, Upper Saddle River, New Jersey, 2004
la source
Les ISOP (polynômes interpolés du second ordre) sont souvent utilisés pour compenser l'affaissement de la bande passante CIC.
La réponse Matlab de ce filtre peut être affichée en utilisant:
Le choix de l'alpha pour vos besoins est la partie délicate. Les pires simulations de force brute de préforme, bouclant sur 0 à 0,5 par incréments de 0,001, trouvant l'alpha qui donne la meilleure compensation de statisme. Définir la meilleure compensation d'affaissement comme une erreur minimale au bord de votre bande passante.
Pour plus d'efficacité, ce filtre est normalement placé au débit de données le plus bas, avant le CIC pour l'interpolation et après le CIC pour la décimation.
la source