Nous pouvons facilement concevoir des filtres d'interpolation qui obéissent à certaines contraintes du domaine fréquentiel en utilisant l' algorithme de Parks-McClellan . Cependant, il n'est pas immédiatement clair comment appliquer les contraintes de domaine temporel; en particulier, je souhaite générer des filtres Nyquist. Donc, si je suréchantillonne d'un facteur de N
, je veux que le filtre ait des passages à zéro kN
pour, pour un entier non nul k
(cela garantit que les échantillons d'entrée de mon interpolateur apparaîtront dans la séquence de sortie).
J'ai vu Harris 1 parler d'une technique pour concevoir des filtres demi-bande, c'est-à-dire le cas spécial où N=2
. Existe-t-il une solution générale à cela? (Je sais que nous pouvons facilement concevoir des filtres avec la méthode window, mais cela ne nous donne pas le même contrôle.)
[1] Traitement du signal multidébit pour les systèmes de communication , pp. 208-209
la source
N=2
voir ma réponse à: Conception du filtre FIR: Fenêtre vs Parks-McClellan et Least-Squares .Réponses:
Une méthode de conception, quoique limitée à des puissances de deux, consisterait à commencer par un filtre demi-bande, à insérer des zéros les uns aux autres (crée une réplique spectrale), puis à le convoluer avec un deuxième filtre demi-bande ayant une bande de transition plus large. Répétez le processus jusqu'à ce que vous atteigniez la puissance requise de 2.
Voici un exemple qui crée un filtre passe-bas avec Fc = fs / 8 et zéro croisements tous les 4 échantillons:
la source
Une méthode pour obtenir les passages à zéro souhaités est de faire une conception hybride.
Commencez avec un filtre à demi-bande Parks-McLellan / Remez à poids égal pour la bande passante et la bande d'arrêt. Puisqu'il s'agit d'un filtre demi-bande , il aura des zéros à des échantillons alternatifs. Vous pouvez ensuite interpoler le domaine temporel par sin (x) / x par zéro-bourrage dans le domaine fréquentiel.
Exemple: création d'un filtre passe-bas fs / 12 avec passages par zéro tous les 6 échantillons.
Le filtre résultant est proche, mais pas aussi bon que le prototype en termes d'ondulation de bande d'arrêt / bande passante. L'interpolation sin (x) / x introduit une sonnerie de bas niveau. Vous devrez peut-être sur-concevoir légèrement le filtre prototype pour obtenir le niveau d'atténuation requis dans le filtre interpolé.
la source