Pouvons-nous avoir un filtre anti-crénelage numérique?

12

Je travaille sur une carte qui n'a pas de filtre antialysaire à l'entrée de l'ADC. J'ai la possibilité d'implémenter mon propre filtre en utilisant le circuit RC + Opamp. Mais est-il également possible d'implémenter un filtre anti-aliasing après échantillonnage par ADC et traitement en domaine numérique: un filtre anti-aliasing numérique?

gpuguy
la source

Réponses:

11

Juste pour soutenir la réponse de Matt et fournir quelques détails supplémentaires:

La plupart des ADC modernes effectuent la plupart du travail d'anti-crénelage difficile dans le domaine numérique. La raison en est que les filtres numériques ont tendance à produire moins de sous-produits pour un coût beaucoup plus faible. La chaîne réelle est:

  • Entrée analogique.
  • Filtre anti-aliasing analogique.
  • Suréchantillonnage (par exemple, à 8x).
  • Filtre anti-crénelage numérique.
  • Décimant (réduction à 1x).
  • Sortie numérique.

Les autres illustrent, considérez ce qui suit:

  • L'audio est échantillonné à 44100 Hz.
  • Cela fournit une fréquence de Nyquist de 22050 Hz.
  • Toutes les fréquences supérieures à 24100 Hz renvoient à la plage audible (inférieure à 20 kHz).
  • 20000Hz à 24100 est d'environ un quart d'octave.
  • Même avec un filtre raide 80dB / 8ve, vous ne réduirez les fréquences de repliement que de 20dB.

Mais avec un suréchantillonnage 8x:

  • L'audio est échantillonné à 352,8 kHz (44,1 kHz x 8).
  • Nyquist est de 176,4 kHz.
  • Seules les fréquences supérieures à 332,8 kHz refléteront la gamme audible.
  • Cela fait environ 4 octaves.
  • Vous pouvez donc appliquer un filtre analogique 24 dB / 8 Ve pour réduire les fréquences de repliement de 96 dB.
  • Suréchantillonnez ensuite.
  • Appliquez ensuite un filtre numérique à phase linéaire entre 20 kHz et 24,1 kHz

Le livre suivant est une excellente ressource claire pour ce genre de choses.

Izhaki
la source
1
Ce que vous dites est certainement vrai pour les applications audio (dans lesquelles des puces de codec intégrées prêtes à l'emploi ont remplacé l'ADC / DAC il y a longtemps) - mais il existe de nombreux domaines d'ingénierie dans lesquels l'acquisition est toujours effectuée par des ADC SAR vanille (en tant que autonomes) puces ou intégrés dans des microcontrôleurs) - et avec eux, vous devez faire le travail dur!
pichenettes
Voilà un excellent commentaire. Pourtant, je pense que la réponse est toujours là - si vous pouvez vous le permettre, les filtres anti-aliasing numériques apportent de nombreux avantages.
Izhaki
Je voulais juste savoir si c'est la façon de s'assurer que les filtres analogiques auront une petite géométrie et un faible poids?
gpuguy
1
Si je comprends bien la question, alors oui - l'utilisation d'un filtre numérique signifiera un montage analogique beaucoup plus simple (en particulier si la qualité est à prendre en compte).
Izhaki
Voulez-vous dire «décimer» à l'avant-dernière étape du flux de travail de suréchantillonnage?
Nick T
15

Non, cela n'a aucun sens. Supposons que votre taux d'échantillonnage ADC soit de 1 kHz. Une onde sinusoïdale de 100 Hz et une onde sinusoïdale de 900 Hz produiront exactement la même séquence d'échantillons numériques une fois introduits dans votre ADC - mais vous voulez passer le premier et atténuer le plus tard. Comment pensez-vous que votre filtre numérique produira des sorties différentes lorsqu'il sera alimenté par la même entrée?

La seule chose qui pourrait fonctionner serait d'échantillonner le signal d'entrée aussi rapidement que votre ADC le permet, puis de le sous-échantillonner dans le domaine numérique à votre fréquence d'échantillonnage cible - mais à moins que vous n'ayez des cycles de processeur à perdre, vous feriez mieux d'utiliser un analogique filtre en amont.

pichenettes
la source
1
"Une onde sinusoïdale de 100 Hz et une onde sinusoïdale de 900 Hz donneront exactement la même séquence d'échantillons numériques". Ce n'est généralement pas vrai (même si je comprends ce que vous voulez dire).
niaren
3
D'accord, cela nécessite une condition particulière sur leurs phases pour fonctionner mais ce n'est pas la question! Le fait est que vos échantillons numériques peuvent sembler provenir d'une onde sinusoïdale de 100 Hz, alors que la même séquence de données aurait pu être générée par une onde sinusoïdale de 900 Hz.
pichenettes
pouvez-vous dire quelle est cette condition (pour exactement tenir)?
niaren
1
π
il y a une erreur dans votre réponse. 100 Hz et 900 Hz n'ont pas la même sortie échantillonnée. En fait son [100 +/- k * 1000] qui donnera les mêmes échantillons. Ainsi, -900, 1100, 2100, etc. sont les fréquences crénelées correspondant à 100 Hz. En fait, 900 Hz sera négatif de l'onde de taille 100 Hz.
15

Je suis d'accord avec la réponse de pichenettes mais je voudrais ajouter qu'il est assez courant d'utiliser un simple filtre anti-aliasing analogique peu coûteux et de faire le reste du filtrage anti-aliasing dans le domaine numérique. Cela implique bien sûr que vous ne traitez pas à la fréquence d'échantillonnage maximale mais que vous sous-échantillonnez après le filtre anti-crénelage numérique. Résumant:

  1. Bien sûr, vous avez besoin d'un filtre anti-aliasing analogique.

  2. Le filtre analogique peut rester très simple si vous pouvez sous-échantillonner votre signal. Dans ce cas, vous pouvez supprimer davantage les alias dans le domaine numérique (avant le sous-échantillonnage).

Matt L.
la source