Ordre des filtres vs nombre de prises vs nombre de coefficients

28

J'apprends le DSP lentement et j'essaie de comprendre ma terminologie:

  • Question 1 : Supposons que j'ai l'équation de différence de filtre suivante:

    y[n]=2x[n]+4x[n2]+6x[n3]+8x[n4]

    Il y a 4 coefficients sur le côté droit. Le "nombre de prises" est-il également de 4? "L'ordre de filtrage" est-il également 4?

  • Question 2 : J'essaie d'utiliser la fir1(n, Wn)fonction MATLAB . Si je voulais créer un filtre à 10 prises, devrais-je définir ?n=10

  • Question 3 : Supposons que j'ai l'équation de différence de filtre récursive (vraisemblablement IIR) suivante:

    y[n]+2y[n1]=2x[n]+4x[n2]+6x[n3]+8x[n4]

    Comment pourrais-je déterminer le "nombre de prises" et l '"ordre de filtrage" puisque le nombre de coefficients diffère à gauche et à droite?

  • Question 4 : Les affirmations logiques si et seulement si sont vraies?

    • Le filtre est récursif Le filtre est IIR.
    • Le filtre n'est pas récursif Le filtre est FIR.
stackoverflowuser2010
la source

Réponses:

37

OK, je vais essayer de répondre à vos questions:

Q1: le nombre de prises n'est pas égal à l'ordre du filtre. Dans votre exemple, la longueur du filtre est de 5, c'est-à-dire que le filtre s'étend sur 5 échantillons d'entrée [ ]. Le nombre de prises est le même que la longueur du filtre. Dans votre cas, vous avez un tap égal à zéro (le coefficient de ), donc vous avez 4 taps non nuls. Pourtant, la longueur du filtre est 5. L'ordre d'un filtre FIR est la longueur du filtre moins 1, c'est-à-dire que l'ordre du filtre dans votre exemple est 4.x(n),x(n1),x(n2),x(n3),x(n4)x(n1)

Q2: le dans la fonction Matlab fir1 () est l'ordre du filtre, c'est-à-dire que vous obtenez un vecteur avec éléments en conséquence (donc est la longueur de votre filtre = nombre de taps).nn+1n+1

Q3: l'ordre de filtrage est à nouveau 4. Vous pouvez le voir à partir du délai maximum nécessaire pour implémenter votre filtre. Il s'agit en effet d'un filtre IIR récursif. Si par nombre de prises vous voulez dire le nombre de coefficients de filtre, alors pour un filtre IIR d'ordre vous avez généralement coefficients, même si dans votre exemple plusieurs d'entre eux sont nuls.nth2(n+1)

Q4: c'est un peu délicat. Commençons par le cas simple: un filtre non récursif a toujours une réponse impulsionnelle finie, c'est-à-dire qu'il s'agit d'un filtre FIR. Habituellement, un filtre récursif a une réponse impulsionnelle infinie, c'est-à-dire qu'il s'agit d'un filtre IIR, mais il existe des cas dégénérés où une réponse impulsionnelle finie est mise en œuvre en utilisant une structure récursive. Mais ce dernier cas est l'exception.

Matt L.
la source
3
+1: Belle réponse, en particulier le point subtil # 4. Comme vous le dites, il est parfaitement possible (et parfois souhaitable) d'écrire des filtres FIR sous une forme récursive.
Peter K.
Concernant Q3: L'ordre de filtrage est-il trouvé à partir du "délai maximum nécessaire pour implémenter votre filtre" se référant uniquement au côté droit? Je suppose que cela doit s'appliquer aux filtres FIR et IIR. Si la réponse est "oui", le côté droit d'un filtre IIR n'a aucun impact sur l'ordre du filtre, non?
stackoverflowuser2010
1
Concernant Q4: Les implications logiques suivantes sont donc correctes: (1) Filtre récursif -> ("implique") FIR ou IIR; (2) Filtre non récursif -> FIR; (3) FIR -> non récursif ou récursif (rare); (4) IIR -> récursif. Ces déclarations sont-elles correctes?
stackoverflowuser2010
2
Q3: L'ordre de filtrage est le max. délai nécessaire, peu importe s'il est nécessaire de retarder ou , donc si votre filtre est vous avez un ordre de filtre de 10.x ( n ) y ( n ) + y ( n - 10 ) = x ( n )y(n)x(n)y(n)+y(n10)=x(n)
Matt L.
2
Q4: Vos implications sont correctes.
Matt L.
3
  • Question 1: Le nombre de prises = nombre de coefficient s = Longueur de filtre en cas de filtre FIR. L'ordre du filtre est égal à Longueur du filtre-1.
  • Question 2: doit être réglé sur 9 si vous utilisez un filtre FIR.n
  • Question 3: Il s'agit d'un filtre IIR puisque vous avez un feed-back dedans. Essayez de reconvertir l'équation en transformée en z et de l'exprimer sous la forme d'une fonction de transfert telle que , puis vous pourrez voir ce que vous demandez ou lire plus pour IIR filtres pour déterminer leur ordre.
    Y(z)/X(z)=H(z)
  • Question 4: Le filtre FIR est direct signifie qu'il n'a pas de rétroaction, mais pour le filtre IIR, vous auriez un retour d'information. Je vous suggère d'utiliser des filtres FIR car ils ont une phase linéaire. D'un autre côté, les calculs du filtre IIR sont inférieurs pour la même taille de filtre FIR, car le filtre IIR a moins de coefficients, mais le filtre IIR n'a pas de phase linéaire. Donc, c'est un compromis que vous pouvez dire.
DX
la source