Questo filtro passa-basso ha una risposta all'impulso non causale?


8

Sto eseguendo alcune misurazioni con la mia scheda audio, ho un canale di uscita collegato a un canale di ingresso.

Quindi invio alla scheda audio un impulso unitario, ovvero un valore del segnale 1 seguito da zeri.

La risposta registrata è mostrata di seguito.

So che la trasformata di Fourier di una funzione Rect, o LPF, si tradurrà in una funzione Sinc - che è quella che sembra essere la risposta di seguito. Ma non sono del tutto sicuro del motivo del pre-squillo nella risposta.

unità catturata impusa

Risposte:


11

Da qualche parte nella catena tra l'ingresso analogico della scheda audio e i campioni che stai pianificando, c'è sicuramente un filtro passa-basso. Probabilmente esiste un filtro anti-aliasing analogico prima dell'ADC; inoltre, ci sono probabilmente uno o più filtri passa-basso applicati durante i processi di ricampionamento sulla scheda o nello stack del driver audio del sistema operativo (risultante in un flusso di campioni alla frequenza di campionamento richiesta).

Come hai notato, i filtri passa-basso hanno spesso una risposta all'impulso che ricorda una funzione . Quando ecciti un sistema lineare con un impulso, l'output risultante è solo una copia della risposta all'impulso del sistema (a causa del teorema di convoluzione ). Quindi, è prevedibile che il segnale osservato assomigli ad una funzione . Non sembra che questo ti abbia sorpreso.sincsinc

Tuttavia : non hai osservato un comportamento non causale. Se lo hai fatto, dovresti correre immediatamente al tuo ufficio brevetti locale. I sistemi non causali non sono realizzabili nel mondo reale. Ricorda la definizione: affinché la risposta di un sistema sia non causale, il suo output deve condurre l'input nel tempo. Detto in modo diverso, il filtro inizierà a fornire la sua risposta all'input prima di inserire l'input. Ovviamente, ciò non accadrà.

Quindi cosa succede con il pre-squillo? Semplice: il grande picco nel mezzo corrisponde al centro della risposta all'impulso del filtro. Tuttavia, quel picco non corrisponde a , il momento in cui l'impulso è stato inserito nel filtro. Considera il seguente esempio MATLAB:t=0

% generate a 250th order lowpass filter
b = fir1(250, 0.5);
% plot its impulse response
plot(0:250, b); grid on;

Il diagramma risultante è simile al seguente:

inserisci qui la descrizione dell'immagine

Come puoi vedere, il picco nel grafico non è nell'indice di campionamento zero. Il filtro ha un ritardo complessivo di 125 campioni (in effetti, tutti i filtri FIR in fase lineare hanno un ritardo di massa di campioni, dove è l'ordine del filtro), e il pre e il post-squillo sono centrato su quel ritardo. Quindi, quando si inserisce l'impulso, inizialmente si vede una risposta molto scarsa. Mentre l'impulso si fa strada attraverso i colpetti del filtro, lo squillo sale fino a un picco nel centro della risposta all'impulso, quindi ritorna a zero.N2N

Il takeaway: non c'è un comportamento non causale nell'esempio che hai dato. È possibile simulare in pratica i filtri non causali aggiungendo un ritardo sufficiente, simile al ritardo mostrato nella risposta all'impulso del filtro passa basso sopra.


Ahah, vorrei che fosse un comportamento acausal come allora lo sfrutterei per giocare al lotto e rotolare in contanti! Ho ancora problemi a ottenere l'intuizione di un filtro analogico che visualizza il pre-squillo, con un filtro digitale posso capire il segnale che si propaga attraverso i rubinetti.
Lance,

3
Un filtro analogico è molto analogo al caso digitale. Invece di propagarsi attraverso i rubinetti, si hanno tensioni e correnti che si propagano attraverso condensatori e induttori. Ricordiamo che la tensione attraverso un condensatore non può cambiare istantaneamente; dilaga esponenzialmente, aggiungendo ritardo alla risposta vista sull'uscita. Allo stesso modo, la corrente attraverso un induttore non può cambiare istantaneamente; dilaga esponenzialmente anche. Tutti questi effetti interagiscono all'interno di una rete di filtri analogici per dare la risposta all'impulso generale che si osserva.
Jason R,

Il pre-squillo e questo tipo di risposta è ancora più tipico dei filtri digitali, ma non sono ancora sorpreso di vederlo ... Non è raro che ADC e DAC funzionino internamente con una frequenza di campionamento superiore a quella su cui sono impostati, ed esegui la conversione della frequenza di campionamento nel dominio digitale.
Pichenettes,

@pichenettes: hai ragione. È molto più facile progettare un filtro digitale che approssima una risposta in frequenza a muro di mattoni e quindi ha una risposta all'impulso sincera piuttosto che crearne uno analogico. Buon punto.
Jason R,

1

La funzione Sinc rappresenta la trasformazione di un filtro passa-basso di fase lineare "muro di mattoni", con il picco centrato al tempo 0. La maggior parte dei filtri passa-basso fisici hanno una somiglianza più stretta con una risposta di fase minima con una risposta di grandezza che ha meno perfetto / transizioni nette rispetto a un Sinc, e con il picco nella risposta di fase minima compensato nel tempo da un ritardo di propagazione fisica.

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.