Che tipo di filtro è quello? È IIR?


9

Sto cercando di rispondere alla seguente domanda:

Il sistema è descritto dall'equazione:

y[n]=0.5y[n1]+x[n]0.5x[n1]

un filtro IIR ? La mia risposta è si

Grazie


1
esiste una classe di filtri FIR chiamati filtri "Truncated IIR" (TIIR). puoi cercarlo su Google e troverai cose di Julius Smith e Avery Wang. un altro esempio di filtri TIIR è il filtro Somma mobile o Media mobile o filtro CIC (tutti nomi praticamente diversi per la stessa cosa). ciò che rende questo filtro ricorsivo un FIR è la cancellazione polo-zero. come implementato, ci sono poli interni e se fossero instabili, il filtro potrebbe esplodere all'interno, ma non lo vedresti nell'output fino a quando non verranno superati i limiti numerici.
robert bristow-johnson,

1
quali sono i limiti numerici?
Black Yasmin,

dipende dal tipo numerico (float o fisso) e dalla larghezza della parola. questa roba può essere cercata. (diciamo, per i float IEEE-754. per fixed, dipende da quanti bit, , sono rimasti del punto binario; circa .nI±2nI1
robert bristow-johnson

grazie ancora signori per tutto l'aiuto! aiuta molto Sono contento di aver trovato questo sito Web
Black Yasmin,

2
@AnthonyParks: dici : " perché le persone rendono questo complicato ... questo è chiaramente un IIR perché il primo termine del filtro ha una porzione di feedback. "? Dico : " perché le persone non si preoccupano di comprendere i concetti di base di DSP "? Il filtro IIR implica sempre la forma ricorsiva, ma FIR non significa necessariamente che il filtro non è ricorsivo. Questa è l'unica risposta corretta e stai confondendo i concetti qui. Se questa era la domanda d'esame, falliresti dicendo che è un IIR. Oppenheim spiega questo argomento nel suo libro su DSP.
jojek

Risposte:


18

Questo è il filtro FIR , sebbene sembri un IIR. Se si calcolano i coefficienti si ottiene una risposta agli impulsi finita:

h=[1]

Ciò accade a causa della cancellazione del polo zero:

Y(z)0.5Y(z)z1=X(z)0.5X(z)z1

H(z)=Y(z)X(z)=10.5z110.5z1=1

Sì, può essere complicato. Vedere i coefficienti in LCCDE (equazione di differenza dei coefficienti costanti lineari) non significa necessariamente che si tratti di un filtro IIR. Potrebbe essere solo un filtro FIR ricorsivo.y[nk]


1
grazie per il riconoscimento! Sono stato preso in giro per dire IIR, senza mai guardare attentamente i coefficienti ... Ho cancellato la mia risposta.
Fat32,

Tuttavia, se si implementano le equazioni come indicato inizialmente, non si comporterà esattamente come H (z) = 1 a causa degli effetti di lunghezza della parola finita (nonostante la cancellazione polo-zero sia esatta in questo caso).
Oscar

Questo è vero @Oscar, ma questi sono problemi numerici che non hanno nulla a che fare con il filtro essendo F / IIR.
jojek

1
@jojek: ovviamente hai perfettamente ragione. Tuttavia, l'uso di filtri FIR ricorsivi causa un bel po 'di problemi se non si è a conoscenza di queste cose (cosa che molti, anche ricercatori di "alta qualità", sono). Quindi, il mio commento. Idealmente dovrebbe esserci anche una discussione sulla funzione algoritmo vs trasferimento.
Oscar

jojek Sto leggendo la tua risposta da questa domanda a cui hai risposto ma non posso commentare. dsp.stackexchange.com/questions/17605/… posso usare una finestra diversa?
Black Yasmin,

14

La risposta di Jojek è ovviamente corretta. Vorrei solo aggiungere qualche informazione in più perché troppo spesso ho visto confusi i termini "IIR" e "ricorsivo". Le seguenti implicazioni valgono sempre:

IIRrecursivenon-recursiveFIR

cioè ogni filtro IIR (ovvero un filtro a tempo discreto avente una risposta all'impulso infinitamente lunga) deve essere implementato in modo ricorsivo (a meno che tu non abbia memoria infinita disponibile) e ogni sistema LTI non ricorsivo ha una risposta all'impulso finita (di nuovo, a meno che tu non abbia infinito memoria).

Tuttavia, il contrario non è generalmente vero. Un filtro ricorsivo può avere una risposta all'impulso finita, come nel caso dell'esempio nella domanda. Un altro esempio famoso è un filtro a media mobile. Questa è un'implementazione non ricorsiva di una media mobile (necessariamente FIR):

y[n]=1Nk=nN+1nx[k]

E questa è un'implementazione ricorsiva dello stesso filtro (anche FIR):

y[n]=y[n1]+1N(x[n]x[nN])

1
Conciso e preciso come sempre, +1;) Grazie per aver sollevato il caso MA.
jojek

1
@jojek: sì, penso che sia un classico che tutti dovrebbero sapere.
Matt L.,

E mentre pensavo principalmente al rumore arrotondato nel commento alla risposta di Jojek, per MA, l'overflow sarà un potenziale problema che deve essere attentamente considerato. Facilmente risolto dall'aritmetica del complemento a due e dalla lunghezza sufficiente delle parole.
Oscar

1
@Oscar: Bene, dopo aver fatto un'analisi molto semplice con doppia precisione in virgola mobile ho ricevuto un errore di 8,881784197001252e-16 . Ciò avviene dopo l'elaborazione dell'equivalente di 1 anno di audio alla frequenza di campionamento 44,1 kHz. I dati di input sono un rumore gaussiano con distribuzione normalizzata. Ecco il codice per riprodurre il risultato ! Clicca! (potrebbero essere necessari 3 giorni per l'esecuzione). Se questo è corretto, allora credo che non ci sia nulla di cui preoccuparsi.
jojek

1
@jojek: tre cose. 1) Mi riferivo al filtro della media mobile della risposta, non a quello della domanda originale. 2) Sì, va bene per l'audio (ma non esatto, quindi nessun motivo per mettere "no" in grassetto), ma preferisco che l'elaborazione del segnale critico per la sicurezza funzioni indipendentemente dal segnale in ingresso con proprietà sintetiche. 3) La cosa interessante è che il filtro con cui hai simulato non avrà i problemi che ho descritto (poiché il polo è all'interno del cerchio dell'unità, non su di esso), ma avrà sempre errori di arrotondamento indipendenti dalla rappresentazione (che possono essere evitati nel caso della media mobile).
Oscar
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.