J'ai du mal à comprendre ce que signifie "infini" dans l'IIF dans la pratique. En théorie, la réponse impulsionnelle est utilisée pour le feedback. Si ce feedback n'arrête jamais la façon dont la sortie est générée?
Pour répondre à cette question, vous devez savoir ce que "impulsion" et "réponse" signifient ...
Une "impulsion" est une simple impulsion. Numériquement, ce serait un échantillon avec une valeur maximale, tandis que tous les autres échantillons avant et après, ce serait zéro. Si vous écoutiez cela, vous entendriez quelque chose comme un pop ou un pétard.
La "réponse" est la sortie d'un filtre (ou autre chose) reçoit l'impulsion.
Par exemple, vous pouvez écouter la "réponse impulsionnelle d'une pièce" en entrant dans la pièce, en faisant un simple coup de main et en écoutant l'écho. Il faudrait un peu de pratique pour que le coup de main soit aussi "pointu" que possible. Obtenir la réponse impulsionnelle d'un filtre est la même manière, mais au lieu d'un coup de main, vous utilisez une impulsion simple et au lieu d'une pièce, vous avez un filtre.
Si vous regardez la réponse impulsionnelle d'un filtre ou d'une pièce, vous verrez la sortie se trémousser pendant un certain temps après l'impulsion (et parfois elle se trémousse avant aussi). Dans la pièce, vous avez entendu cette agitation comme l'écho. Dans un filtre, ce tremblement est directement lié à la réponse en fréquence et en phase du filtre. Dans une pièce, la durée pendant laquelle vous entendez l'écho s'appelle le "temps de réverbération" - il n'y a pas de terme correspondant pour un filtre, mais cela fait partie de la réponse impulsionnelle.
Maintenant, un filtre FIR (Finite Impulse Response) est fini car le temps de réponse impulsionnelle est limité par les mathématiques. Il est mathématiquement impossible que le temps de réponse impulsionnelle dépasse le nombre de prises dans le filtre - il est donc fini .
Un filtre IIR, d'autre part, n'a pas cette limitation mathématique dans le temps de réponse impulsionnelle. Si on lui donne une précision mathématique infinie, un filtre IIR peut remuer les sorties pour toujours. Bien sûr, dans un sens pratique, cela ne dure jamais éternellement, car à un moment donné, la manœuvre devient plus petite que la précision des mathématiques utilisées et disparaît donc.
La réponse impulsionnelle est la signature du filtre. Dans le cas d'un filtre FIR, la réponse impulsionnelle vous donne une image directe des coefficients du filtre. L'impulsion est un échantillon unique avec une amplitude maximale, tous les échantillons avant et après sont nuls. (Il s'agit de l'équivalent numérique d'une impulsion Dirac.)b0 y b0 z−1 b1 b1 . Etc. Pendant que l'impulsion se déplace à travers le filtre, vous obtenez les valeurs successives de à la sortie. Après N échantillons, l'impulsion est décalée hors du filtre et la sortie redevient nulle.
Pour un filtre IIR, il n'est pas si évident de dériver les coefficients de filtre de la réponse impulsionnelle. bi
Au moment de l'impulsion, sa valeur est multipliée par (voir diagramme du bas). Les autres échantillons sont nuls, donc la sortie est égale à (je suppose une valeur maximale pour l'impulsion de 1). Un échantillon plus tard, l'impulsion a déplacé un bloc et est multipliée par . Encore une fois, toutes les autres valeurs sont nulles, donc la sortie est y b 0 z - 1 b 1 b 1 b i
IIRz−1
Dans un filtre IIR (en partie), le signal traité est renvoyé à l'entrée. Cela signifie qu'il y aura toujours des résidus du signal en boucle. La plupart du temps, cependant, cette partie du signal sera toujours plus petite et finira par être nulle, mais en théorie, elle ne disparaît jamais complètement. Le diagramme ci-dessous montre un filtre biquad, une implémentation souvent utilisée d'un filtre IIR. La branche gauche prend des valeurs d'entrée (retardées), la branche droite fonctionne avec des valeurs de sortie (retardées). (Un bloc représente un retard de 1 échantillon. Les biquades sont souvent en cascade.
FIR Les
filtres FIR, d'autre part, ont un chemin linéaire de l'entrée à la sortie. Après N échantillons, le signal d'entrée (comme une impulsion Dirac) aura été décalé et c'est la fin.
Les filtres FIR sont intrinsèquement stables, contrairement aux filtres IIR.
la source
Il existe deux grandes classes de filtres numériques, la réponse implicite infinie (IIR) et la réponse impulsionnelle finie (FIR). Encore une fois, les filtres IIR sont basés sur des équations et sur des filtres FIR.
Les filtres IIR sont plus comme des filtres analogiques du monde réel. Par exemple, considérez une décroissance exponentielle simple comme vous le feriez avec un filtre passe-bas analogique RC. La réponse de sortie à une entrée pas à pas est une exponentielle qui se rapproche de plus en plus de l'entrée. Notez que cette exponentielle n'atteint jamais réellement la sortie, seulement assez près pour que nous ne nous soucions pas ou ne pouvons pas mesurer l'erreur. En ce sens, un tel filtre est inifinite. Un filtre IIR a les mêmes caractéristiques.
Le filtre IIR passe-bas unipolaire très courant peut être exprimé comme suit:
FILT <- FILT + FF (NOUVEAU - FILT)
Cela signifie que chaque itération de la sortie est déplacée d'une fraction fixe (FF, la "fraction de filtre") de la distance à l'entrée. Ceci est facile à visualiser lorsque FF = 1/2. Si tout est 0 et que l'entrée passe soudainement à 1 et y reste (un pas d'unité), alors la sortie sera 1/2, 3/4, 7/8, 15/16, etc. Il s'agit d'une série infinie. Finalement, la valeur sera si proche de 1 qu'elle sera exprimée comme 1 car les valeurs numériques de l'ordinateur n'ont pas une précision infinie.
Les filtres FIR fonctionnent sur un principe totalement différent. Un extrait récent fini du signal d'entrée est enregistré, et chacune des valeurs enregistrées est multipliée par un coefficient différent, puis tous les résultats sont ajoutés pour produire la sortie du filtre pour cette itération. L'itération suivante, la plus ancienne valeur enregistrée est rejetée, les autres sont décalées d'un emplacement plus ancien et la nouvelle entrée est placée dans l'emplacement libéré. Le nouvel extrait enregistré est ensuite multiplié par les coefficients, etc. Ce processus est connu sous le nom de "convolution" et le tableau des coefficients est souvent appelé noyau de filtre. Certaines choses fantaisistes et utiles peuvent être faites avec ce type de filtre en faisant preuve de créativité avec les coefficients. C'est tout un sujet sur lequel je n'entrerai pas maintenant. Cependant, puisqu'un extrait fini de l'entrée est stocké en mémoire, n'importe quelle partie du signal d'entrée ne peut affecter la sortie que pendant un temps fini. Une fois qu'un échantillon d'entrée est déplacé vers la fin de l'extrait stocké, il disparaît et n'a plus aucun effet sur la sortie.
Il y a des livres entiers écrits sur ce sujet et vous pouvez passer plusieurs semestres de cours universitaires à approfondir cela. J'espère que mon aperçu de 30 secondes le démystifie suffisamment pour répondre à votre question.
la source
Un point qui n'a pas encore été mentionné est que les filtres IIR peuvent être subdivisés en deux styles: ceux où les étapes peuvent être classées, de sorte que chaque étape dépend entièrement de ses propres valeurs antérieures et de celles des étapes précédentes, et celles où les les étapes ne peuvent pas être classées (car deux ou plusieurs étapes dépendent les unes des autres). Il est possible que les étapes d'un filtre FIR fassent référence aux sorties précédentes d'autres étapes, à condition qu'elles puissent être classées comme dans l'ancien style de l'IIF, et aucune étape ne fait référence à sa propre sortie précédente.
Si les étapes d'un filtre IIR peuvent être classées et si l'amplitude totale des coefficients d'auto-rétroaction pour une étape donnée est inférieure à un, le filtre IIR est garanti stable. Si, par exemple, un étage comprend une certaine quantité de signal des étages précédents, plus la moitié de la valeur précédente de cet étage et 1/4 de la valeur avant cela, moins 1/8 de la valeur avant cela, la magnitude totale de l'auto la rétroaction sera de 7/8, donc en l'absence de nouvelles entrées des étages inférieurs, l'ampleur de la contribution de l'auto-rétroaction diminuerait de 12,5% à chaque itération.
la source
Une FIR, fait ses calculs sur un nombre fini d'éléments, disons 32 ou 12 ou un certain nombre, mais c'est ce que fait le calcul, prendre un nombre fini d'éléments et effectuer le filtre uniquement sur ceux-ci.
Un IIR fait son calcul sur tous les échantillons que vous lui donnez. Si vous lui donnez 10 échantillons et que vous l'arrêtez, cela a fonctionné sur 10 échantillons, si vous l'avez alimenté à 1 000 000 000 d'échantillons, les calculs ont fonctionné à 1 000 000 000 d'échantillons. Et si vous laissez la chose fonctionner indéfiniment, approchant de l'infini (laissez-la fonctionner indéfiniment), le nombre d'éléments est également indéfini approchant l'infini. Parce que le mot fini s'applique clairement à l'autre modèle, et que le modèle IIR est destiné à ne pas avoir un nombre fini d'échantillons, le mot infini comme l'opposé de fini sonne juste mieux que indéfini ou un autre de ces mots.
la source