Concevoir un filtre qui laisse passer librement les fréquences inférieures à 5 kHz, mais toutes les fréquences supérieures à 5,2 kHz doivent être indétectables


12

Mon plus grand défi avec cette question est son taux de roulement ridiculement élevé.

Je suppose que le signal est indétectable si son gain est de -20 dB. Cela signifie que, dans la bande de transition de 200 Hz, la puissance du signal doit chuter de 20 dB.

Si mes calculs sont corrects, ce filtre nécessite un taux de roll-off de 1200 dB / déc. Cela nécessite 60 pôles, ce qui n'est évidemment pas faisable.

Je voudrais utiliser un filtre actif analogique avec une ondulation minimale dans la bande passante. Un grand déphasage n'est pas trop important.

Une solution potentielle consiste à utiliser un filtre coupe-bande à 5,2 kHz. Cependant, les fréquences supérieures à la bande passante du filtre coupe-bande ne sont toujours pas suffisamment filtrées.

Veuillez signaler toute faille dans ma logique et / ou proposer des solutions potentielles. Je vous remercie.


16
Appeler -20dB indétectable est tout à fait un tronçon
PlasmaHH

1
@WhatRoughBeast ??? Je me rends compte qu'il a divisé 4500 par 20 pour obtenir 225 pôles; ce que je défie, c'est comment il a obtenu le 4500 en premier lieu.
Dave Tweed

7
Quel genre de réponse attendez-vous Tamir? Analogique passif / actif? IIR / FIR numérique? Filtre numérique Wave? FFT + Supprimer les éléments indésirables + IFFT?
Harry Svensson

4
Quelle est l'ondulation de la bande passante acceptable?
Bruce Abbott

1
"avec une ondulation minimale dans la bande passante" - 'minimal' n'est pas une spécification.
Bruce Abbott

Réponses:


21

Vous avez supposé un roll-off de 20 dB / déc par commande de filtre pour votre filtre. Ce n'est pas vrai pour tous les types de filtres.

Soit et . Alorsf s t o p = 5,2 k H z f s t o pf0=5kHzfstop=5.2kHz

fstopf0=1.04.

Jetez un œil à ce filtre elliptique du quatrième ordre tiré de l'article Wikipedia . elliptique

Bien qu'il ne réponde pas tout à fait à vos besoins, vous pouvez voir que c'est faisable. Un filtre elliptique d'ordre supérieur peut atteindre ce que vous recherchez.

Vous devez garder à l'esprit que les filtres elliptiques peuvent perturber la phase du signal. Puisque vous n'avez rien mentionné au sujet de vos contraintes de phase, j'ai supposé qu'un filtre elliptique convient.


Ce n'est pas une mauvaise idée. LPF elliptique d'ordre 6 a une pente de transition suffisamment raide si l'ondulation de la bande passante 3dB et max. Une fuite de -20 dB à 5200 Hz et plus est autorisée. Le résultat a été obtenu avec une calculatrice de filtre, je n'ai entré que des ordres et des limites différents jusqu'à ce qu'une réponse en fréquence appropriée apparaisse. Le sixième ordre signifie seulement trois blocs du deuxième ordre en cascade. Aucune idée, sera-t-il réalisable dans la pratique avec les tolérances habituelles des composants comme filtre opamp analogique. Cela nécessite plus de simulations.
user287001

Salut et merci pour une belle réponse. Juste une curiosité, quand je regarde wikipedia, les pôles semblent se trouver sur des points de suspension, est-ce que cela vient du nom ou est-ce une coïncidence?
mathreadler

1
@mathreadler Je crois que le nom vient de la fonction rationnelle elliptique qui apparaît dans la fonction de transfert du filtre elliptique. Les pôles des filtres elliptiques sont fonction de la fonction cosinus elliptique de Jacobi. Par conséquent, ils se trouvent sur une ellipse.
user110971

21

Ce type de coupure nette nécessite un filtre numérique. Ne pensez même pas à l'analogique. Vous devez convoluer l'entrée avec une fonction sinc. La largeur de la fonction sinc (le nombre de points du noyau) définit l'atténuation de la bande d'arrêt.

Je n'ai pas fait le calcul, mais certains calculs très rapides (pourrait être désactivé, votre travail à faire correctement) indique que vous avez probablement besoin de quelques 100 points si vous échantillonnez à 20 kHz. 200 points à 20 kHz signifie un taux MAC de 4 MHz. C'est faisable, en fait bien en deçà de ce que les DSP modernes peuvent faire assez facilement. Cela signifie que votre problème est tout à fait traitable. Quelque chose comme un dsPIC de la série E peut le faire, et c'est plutôt bas de gamme si vous ne recherchez que la capacité DSP.


3
il s'agit en fait d'un filtre FIR. Une simulation rapide a montré que 128 filtres à prises avec fenêtrage rectangulaire suffisent. Les coefficients sont tirés de la réponse impulsionnelle sinc du LPF 5100Hz idéal. Le premier lobe latéral ne fait que -20 dB à env. 5250Hz (vu depuis une calculatrice de filtre)
user287001

2
@user: OK, cela signifie donc que c'est en fait un peu plus facile que mon estimation approximative ci-dessus. Je ferais probablement du noyau un peu plus large, juste pour avoir une certaine marge, d'autant plus que cela reste bien à la portée d'un DSP même modeste.
Olin Lathrop

Il existe de très bonnes ressources pour le filtre et la fonction de fenêtre à utiliser: personnellement, j'aime dspguide.com
Peter Smith

4

Si vous autorisez un retard substantiel ou traitez un signal enregistré, vous pouvez simplement faire FFT, supprimer les composants indésirables et inverser la transformation. Vous devez tronquer le fft avec la fonction de fenêtre appropriée pour garder la sonnerie acceptable.


8
Je pense que pour une bande de transition aussi étroite, vous devez en dire beaucoup plus sur la façon de sélectionner la fonction de fenêtre pour rendre cette réponse utile pour résoudre le problème.
Le Photon

4

Je choisirais une puce de codec audio (ADC + DAC), acheminer la sortie numérique ADC vers l'entrée DAC et définir la fréquence d'échantillonnage à 10 kHz.

Ces puces incluent déjà le moteur de filtre numérique dont vous avez besoin. Une vérification rapide de la fiche technique semble confirmer que vous obtiendrez les performances de filtre dont vous avez besoin.


Êtes-vous sûr de cela?
user253751

Pas sûr à 100%, mais je ne vois aucune raison pour laquelle cela ne fonctionnerait pas avec un codec sigma delta, certains peuvent échantillonner jusqu'à 8 kHz ...
peufeu

Mais je veux dire pourquoi croyez-vous qu'il rejettera les fréquences indésirables, plutôt que de les alias?
user253751

L'ADC audio habituel est un delta sigma avec un énorme facteur de suréchantillonnage suivi d'un filtre numérique net. La plupart d'entre elles fonctionneront de Fs = 8k à 96-192k. Le repliement est évité par un simple passe-bas de premier ordre avant l'ADC, et le suréchantillonnage s'en charge. Ils devraient fonctionner correctement autour de Fs = 10 kHz avec la bonne fréquence d'horloge.
peufeu

4

Vous avez déjà beaucoup de bonnes réponses avec de bonnes solutions traditionnelles, des filtres elliptiques, des FFT (de courte durée), etc., donc je pensais pouvoir ajouter quelque chose du monde du codage de sous-bande / transformation en ondelettes.

Le codage de sous-bande signifie de subdiviser le spectre de fréquences en "bacs", chacun de ces bacs a son propre filtre associé. Les bandes plus serrées, les filtres plus larges dans le domaine temporel (naturellement) - mais dans les zones où nous n'avons pas besoin de bandes très serrées, nous pouvons nous en tirer avec des filtres vraiment courts et peu coûteux à calculer.

Les ondelettes sont des fonctions qui sont le résultat d'un type spécifique de filtres de sous-bandes qui sont générés par un filtrage itéré suivi d'un sous-échantillonnage.

L'idée serait de trouver les sous-bandes d'intérêt qui nous permettraient de resserrer le plus les calculs, tout en obtenant une bonne granularité dans la bande d'intérêt.

Exemple de décomposition d'un paquet de 12 tap Daubechies en trois niveaux (Wikipedia):

Entrez la description de l'image ici

Nous pouvons ensuite les résumer de manière sélective pour obtenir la réponse souhaitée. Et ceux que nous ne voulons pas ajouter - nous n'avons même pas besoin de calculer! Nous aurons besoin de plus minces plus proches de la bande 5-5,2 kHz pour pouvoir obtenir un comportement suffisamment raide. Mais d'un autre côté, loin de la bande 5-5,2 kHz, nous pouvons nous en sortir avec seulement quelques subdivisions.


Il s'agit plus d'une annonce que d'une réponse.
Harry Svensson

@HarrySvensson Je peux essayer d'être plus précis mais je n'ai pas autant de temps libre ces jours-ci que je devais améliorer les réponses.
mathreadler

3

si vous pouvez GARANTIR une entrée sinusoïdale, alors un monostable à un coup (74121) peut suffire. Ou le 122/123 re-déclenchable.

Utilisez un comparateur avant le 74121/122/123

Certains MCU incluent des comparateurs analogiques comme périphériques; une fois converti en onde carrée, vous pouvez utiliser des minuteries, etc. pour détecter au-dessus / en dessous de 5000 Hz, si le MCU a une horloge stabilisée XTAL. Pas besoin d'un monostable sensible à la température.


3
Intéressant, mais qu'est-ce qui vous fait penser que l'entrée pourrait être sinusoïdale? Semble assez utopique pour faire cette hypothèse sans raison particulière.
autour du

1
je pense qu'en repérant comme les 4 premiers mots de sa réponse "si vous pouvez GARANTIR", alors c'est une nouvelle solution.
Techydude

J'ai utilisé cette approche (le 74123 redéclenchable) pour détecter le blocage des roues dans un système anti-dérapant; lorsque le 74123 a expiré, le vérin hydraulique a été entraîné à partir du 2N3055 pour pulser les freins. Nous n'avons obtenu qu'environ 2 impulsions par seconde, en raison de la constante de temps hydraulique.
analogsystemsrf
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.