Perché è necessaria la convoluzione o qual è la filosofia alla base della convoluzione?


14

Sto lavorando nel campo del restauro di immagini digitali. Ho letto tutto sulla convoluzione, che, per un sistema LTI , se conosciamo la sua risposta all'impulso , allora possiamo trovare il suo output semplicemente usando la convoluzione tra input e risposta all'impulso.

Qualcuno può dirmi che qual è la principale filosofia matematica dietro di essa? La tua esperienza con me non mi limiterà a navigare in Internet.



3
Sto sottovalutando questa domanda perché (o variazioni minori di essa) è stata ripetutamente posta e risposto su questo sito come afferma il commento di Pichenettes. Dovresti invece "navigare in Internet" su questo sito.
Dilip Sarwate,

Risposte:


13

L'idea di convoluzione

La mia esposizione preferita sull'argomento è in una delle lezioni di Brad Osgood sulla trasformata di Fourier . La discussione sulla convoluzione inizia intorno alle 36:00, ma l'intera lezione ha un contesto aggiuntivo che vale la pena guardare.

L'idea di base è che, quando si definisce qualcosa come la trasformata di Fourier, piuttosto che lavorare sempre direttamente con la definizione, è utile derivare proprietà di livello superiore che semplificano i calcoli. Ad esempio, una di queste proprietà è che la trasformazione della somma di due funzioni è uguale alla somma delle trasformazioni, vale a dire

F{f+g}=F{f}+F{g}.

Ciò significa che se si dispone di una funzione con una trasformazione sconosciuta e può essere scomposta come somma di funzioni con trasformazioni note, in pratica si ottiene la risposta gratuitamente.

Ora, poiché abbiamo un'identità per la somma di due trasformazioni, è una domanda naturale chiedersi quale sia l'identità per il prodotto di due trasformazioni, vale a dire

F{f}F{g}= ?.

Si scopre che quando si calcola la risposta, la convoluzione è ciò che appare. L'intera derivazione è data nel video e, poiché la tua domanda è per lo più concettuale, non la riassumerò qui.

L'implicazione dell'avvicinarsi alla convoluzione in questo modo è che è una parte intrinseca del modo in cui la trasformata di Laplace (di cui la Tranform di Fourier è un caso speciale) trasforma equazioni differenziali ordinarie lineari a coefficiente costante (LCCODE) in equazioni algebriche. Il fatto che una simile trasformazione sia disponibile per rendere trattabile analiticamente LCCODE è una grande parte del motivo per cui sono studiati nell'elaborazione del segnale. Ad esempio, per citare Oppenheim e Schafer :

Poiché sono relativamente facili da caratterizzare matematicamente e poiché possono essere progettati per svolgere utili funzioni di elaborazione del segnale, la classe dei sistemi lineari invarianti di spostamento verrà studiata approfonditamente.

Quindi una risposta alla domanda è che se stai usando metodi di trasformazione per analizzare e / o sintetizzare i sistemi LTI, prima o poi, sorgerà una convoluzione (implicitamente o esplicitamente). Si noti che questo approccio all'introduzione della convoluzione è molto standard nel contesto delle equazioni differenziali. Ad esempio, vedi questa lezione del MIT di Arthur Mattuck . La maggior parte delle presentazioni o presenta l'integrale di convoluzione senza commenti, quindi ne ricava le proprietà (cioè estraendolo da un cappello), oppure orlo e falco sulla strana forma dell'integrale, parla di capovolgere e trascinare, invertire il tempo, ecc., Ecc. .

La ragione per cui mi piace l'approccio del Prof. Osgood è che evita tutto quello tsouris, oltre a fornire, secondo me, una profonda comprensione di come i matematici probabilmente sono arrivati ​​all'idea in primo luogo. E cito:

Dissi: "Esiste un modo per combinare F e G nel dominio del tempo, in modo che nel dominio della frequenza gli spettri si moltiplichino, le trasformazioni di Fourier si moltiplichino?" E la risposta è, sì, c'è, con questo integrale complicato. Non è così ovvio. Non ti alzi dal letto la mattina e scrivi questo, e ti aspetti che questo risolva il problema. Come lo otteniamo? Hai detto, supponi che il problema sia risolto, vedi cosa deve succedere e quindi dovremmo riconoscere quando è il momento di dichiarare la vittoria. Ed è tempo di dichiarare la vittoria.

Ora, essendo un odioso matematico, copri le tue tracce e dici: "Bene, ho semplicemente intenzione di definire la convoluzione di due funzioni con questa formula".

Sistemi LTI

Nella maggior parte dei testi DSP, la convoluzione viene generalmente introdotta in un modo diverso (che evita qualsiasi riferimento ai metodi di trasformazione). Esprimendo un segnale di ingresso arbitrario come somma di impulsi di unità scalati e spostati,x(n)

(1)x(n)=k=x(k)δ(nk),

dove

(2)δ(n)={0,n01,n=0,

le proprietà di definizione dei sistemi lineari invarianti di tempo conducono direttamente una somma di convoluzione che coinvolge la risposta all'impulso . Se il sistema definito da un operatore LTI L è espresso come y ( n ) = L [ x ( n ) ] , applicando le proprietà repettive, vale a dire la linearitàh(n)=L[ δ(n) ]Ly(n)=L[ x(n) ]

(3)L[ ax1(n)+bx2(n) ]Transform of the sum of scaled inputs=aL[ x1(n) ]+bL[ x2(n) ]Sum of scaled transforms,

e invarianza tempo / turno

(4)L[ x(n) ]=y(n) impliesL[ x(nk) ]=y(nk),

il sistema può essere riscritto come

y(n)=L[k=x(k)δ(nk)]Tranform of the sum of scaled inputs=k=x(k)L[δ(nk)]Sum of scaled transforms=k=x(k)h(nk).Convolution with the impulse response

Questo è un modo molto standard per presentare la convoluzione, ed è un modo perfettamente elegante e utile per farlo. Derivazioni simili si possono trovare in Oppenheim e Schafer , Proakis e Manolakis , Rabiner e Gold , e ne sono sicuro molti altri. Alcuni approfondimenti [che vanno oltre le introduzioni standard] sono forniti da Dilip nella sua eccellente risposta qui .

Si noti, tuttavia, che questa derivazione è in qualche modo un trucco magico. Dando un'altra occhiata a come il segnale è decomposto in , possiamo vedere che è già sotto forma di una convoluzione. Se(1)

(fg)(n)f convolved with g=k=f(k)g(nk),

allora è solo x δ . Poiché la funzione delta è l' elemento di identità per la convoluzione, dire che qualsiasi segnale può essere espresso in quella forma è molto simile a dire che qualsiasi numero n può essere espresso come n + 0 o n × 1 . Ora, scegliere di descrivere i segnali in quel modo è geniale perché porta direttamente all'idea di una risposta all'impulso - è solo che l'idea di convoluzione è già "inserita" nella decomposizione del segnale.(1)xδnn+0n×1

Da questa prospettiva, la convoluzione è intrinsecamente correlata all'idea di una funzione delta (ovvero è un'operazione binaria che ha la funzione delta come elemento di identità). Anche senza considerare la sua relazione con la convoluzione, la descrizione del segnale dipende fondamentalmente dall'idea della funzione delta. Quindi la domanda diventa: da dove abbiamo preso l'idea per la funzione delta? Per quanto ne so, risale almeno al documento di Fourier sulla teoria analitica del calore, dove appare implicitamente. Una fonte per ulteriori informazioni è questo articolo su Origine e storia della convoluzione di Alejandro Domínguez.

Ora, questi sono i due principali approcci all'idea nel contesto della teoria dei sistemi lineari. Uno favorisce la comprensione analitica e l'altro favorisce la soluzione numerica. Penso che entrambi siano utili per un quadro completo dell'importanza della convoluzione. Tuttavia, nel caso discreto, trascurando completamente i sistemi lineari, c'è un senso in cui la convoluzione è un'idea molto più antica.

Moltiplicazione polinomiale

Una buona presentazione dell'idea che la convoluzione discreta sia solo una moltiplicazione polinomiale è data da Gilbert Strang in questa lezione che inizia intorno alle 5:46. Da quella prospettiva, l'idea risale all'introduzione di sistemi numerici posizionali (che rappresentano i numeri implicitamente come polinomi). Poiché la trasformata Z rappresenta segnali come polinomi in z, anche in questo contesto sorgerà una convoluzione, anche se la trasformata Z viene definita formalmente come un operatore di ritardo senza ricorrere ad analisi complesse e / o come caso speciale di Laplace Trasforma .


grazie signore per la tua preziosa guida, mi hai appena mostrato la strada giusta da seguire. Il tuo aiuto mi ha insegnato che come essere un buon essere umano inizia per gli altri .... :)
Mayank Tiwari,

In che modo questa grande coincidenza spiega che devi fare la convoluzione nel suo caso? Credo che in ogni dominio, vi sia un'operazione che si trasforma in convoluzione quando si ripristinano gli argomenti nel dominio del tempo. Potrebbe essere necessario eseguire la mitigazione nel dominio del tempo per ottenere la risposta? Perché dovremmo moltiplicare le frequenze anziché gli intervalli di tempo?
Val

1
Considerando che l'OP aveva già posto una domanda sul ruolo degli impulsi in relazione ai sistemi LTI , ho letto la domanda mentre lui la utilizzava come esempio per motivare una domanda sulla provenienza della convoluzione - non necessariamente il suo ruolo nel calcolo di un impulso risposta di per sé. È quello che stai chiedendo?
datageist

1
Dire che abbiamo bisogno di una convoluzione perché è identico alla moltiplicazione di Fourier mi sembra assurdo nel caso in cui non sappiamo perché abbiamo bisogno della moltiplicazione di Fourier. Quando ci viene data la risposta all'impulso, questo significa dominio del tempo e convoluzione piuttosto che qualsiasi magia nera su base quadrupla. Non credo che il riferimento a questa domanda possa chiarire questo punto. In ogni caso, non è bene dare "risposte localizzate" a domande generali, fondamentali (cioè filosofiche). Le domande e risposte devono essere utili per i futuri visitatori.
Val

Il commento di Val sopra è proprio sul bersaglio. Mi chiedo come funzionassero i sistemi lineari prima che le trasformazioni di Fourier fossero inventate / scoperte. Come mai un oggetto inanimato non senziente ha scoperto una formula così complicata?
Dilip Sarwate,

6

Una volta ho dato la risposta nella pagina di discussione sulla convoluzione di Wikipedia, che sostanzialmente poneva la stessa domanda: perché l'inversione del tempo? . La filosofia è che si applica un singolo impulso al tempo 0 al filtro e si registra la sua risposta al tempo 0,1,2,3,4,…. Fondamentalmente, la risposta apparirà come una funzione, h (t). Puoi complottarlo. Se l'impulso era n volte più alto / più alto, gli impulsi di risposta saranno proporzionalmente più alti (questo perché il filtro lineare viene sempre assunto). Ora, tutti i DSP (e non solo i DSP) riguardano cosa succede quando si applica il filtro al segnale? Conosci la risposta all'impulso. Il tuo segnale (specialmente digitale) non è altro che una serie di impulsi di altezza x (t). Ha altezza / valore al momento txt. I sistemi lineari sono fantastici e puoi sommare le uscite per ciascuno di questi impulsi di ingresso per ottenere la funzione di risposta y (t) per la funzione di ingresso x (t). Sai che l'impulso di uscita y (t = 10) dipende dall'ingresso immediato x (10), che contribuisce h (0) * x (10). Ma c'è anche un contributo, x (9) * h (1), all'uscita dall'impulso precedente, x (9), e contributi da valori di input ancora precedenti. Vedete, quando aggiungete contributi dagli input precedenti, una volta l'argomento diminuisce mentre un altro aumenta. È MAC tutti i contributi in y (10) = h (0) * x (10) + h (1) * x (9) + h (2) * x (8) + ..., che è una convoluzione.

Puoi pensare alle funzioni y (t), h (t) e x (t) come vettori. Le matrici sono operatori dell'algebra lineare. Prendono il vettore di input (una serie di numeri) e producono il vettore di output (un'altra serie di numeri). In questo caso, y è un prodotto della matrice di convoluzione con il vettore x,

y=[y0y1y2]=[h000h1h00h2h1h0][x0x1x2]=Hx

Ora, poiché la convoluzione è una matrice di Toeplitz , ha un'autofisi di Fourier e, quindi, un operatore di convoluzione (gli operatori lineari sono rappresentati da matrici, ma anche la matrice dipende dalla base) è una bella matrice diagonale nel dominio di Fourier,

Y=[Y0Y1Y2]=[λ0000λ1000λ2][X0X1X2]=diag(H)X

Nota, molti più zeri e, quindi, un calcolo molto più semplice. Questo risultato è noto come "teorema di convoluzione" e, come risposta alla prima risposta, è molto più semplice nel dominio di Fourier. Ma questa è la filosofia alla base del "teorema di convoluzione", base quadrupla e operatori lineari piuttosto che onnipresente necessità di convoluzione.

Normalmente, fai la convoluzione perché hai il tuo segnale di input, risposta all'impulso e richiedi output nel dominio del tempo. È possibile trasformarsi in uno spazio di Fourier per ottimizzare il calcolo. Ma non è pratico per filtri semplici, come ho visto in DSPGuide . Se il filtro è simile a , non ha senso trasformarsi in fourier. Basta fare n moltiplicazioni, per calcolare ogni y. È anche naturale per il tempo reale. In tempo reale calcoli solo una volta alla volta. Potresti pensare alla trasformata di Fourier se hai il segnale x registrato e devi calcolare l'intero vettore y contemporaneamente. Ciò richiederebbe operazioni MAC NxN e Fourier può aiutare a ridurle a N log (N).y[currentTime]=k1x[time1]+k2x(time2)+by[time1]


Un paio di note: come estenderesti questa descrizione per il caso a tempo continuo (che ovviamente è venuto prima del caso a tempo discreto)? Inoltre, ci sono molte applicazioni in tempo reale che utilizzano metodi basati sulla trasformata di Fourier per una convoluzione rapida. Dire che gli output sono sempre calcolati uno alla volta per le applicazioni in tempo reale non è vero.
Jason R,

Detto questo, un bel lavoro che sottolinea il fatto che la struttura di Toeplitz della matrice di convoluzione implica che ammette una rappresentazione diagonale su una base di Fourier.
Jason R,

Sì, potresti usare il transfrom di Fourier in tempo reale. Sono lungi dall'essere esperto di DSP. Ho appena espresso l'idea (che ho tratto dalla mia scarsa pratica e dalla lettura di DSPGuide). Ad ogni modo, voglio sottolineare che Fourier non ha nulla a che fare con la filosofia della convoluzione. Potrebbe essere necessario rimuovere tutta la discussione relativa a Fourier, poiché è fonte di distrazione. La convoluzione è naturale nel dominio del tempo ed è necessaria senza alcun Fourier, non importa quanto sia cool il Fourier.
Val

Il fatto che il caso del tempo continuo sia venuto prima storicamente, non ci richiede di imparare nello stesso ordine. Penso che sia più facile comprendere la filosofia di molte cose, inclusa la convoluzione, a partire dal caso discreto (e siamo in D SP.se ad adottare questo approccio). Nel caso continuo, una serie di operazioni MAC viene trasformata in integrazione, poiché i nostri impulsi diventano sempre più brevi. A proposito, l'integrazione stessa è intesa come un caso limite della somma discreta: f ( x )f(x)dx . Quindi, non può venire prima della sommatoria discreta. f(x)dx=limdx0(f(x)dx)
Val

@JasonR Nell'impostazione continua, sostituiresti la matrice di Toeplitz con un operatore invariante a turni. È quindi possibile mostrare che le funzioni di base di Fourier diagonalizzano questo operatore.
LP251,

3

Sebbene le risposte precedenti siano state davvero buone, vorrei aggiungere il mio punto di vista sulla convoluzione in cui semplifico la visualizzazione grazie alle cifre.

Ci si chiede se esiste un metodo attraverso il quale è possibile determinare un segnale di uscita di un sistema per un dato segnale di ingresso. La convoluzione è la risposta a questa domanda, a condizione che il sistema sia lineare e invariante nel tempo (LTI).

Supponiamo che abbiamo un segnale arbitrario . Quindi, s [ n ] può essere scomposto in una somma in scala di impulsi di unità spostati attraverso il seguente ragionamento. Moltiplicare s [ n ] con un impulso unitario spostato di m campioni come δ [ n - m ] . Poiché δ [ n - m ] è uguale a 0 ovunque tranne che a n = m , questo moltiplicherebbe tutti i valori di s [ n ] per 0 quandos[n]s[n]s[n]mδ[nm]δ[nm]n=ms[n] non è uguale a m e per 1 quando n è uguale a ] . Questo processo è chiaramente illustrato nella figura seguente.nmn . Quindi la sequenza risultante avrà un impulso a n = m con il suo valore uguale a s [ mmn=ms[m]

inserisci qui la descrizione dell'immagine

Questo può essere matematicamente scritto come Ripetendo la stessa procedura con un ritardo diverso m s [ n ] δ [ n - m ] = s [ m ] δ [

s[n]δ[nm]=s[m]δ[nm]
m
s[n]δ[nm]=s[m]δ[nm]

s[m]-<m<S[n]

s[n]=+s[2]δ[n+2]+s[1]δ[n+1]+s[0]δ[n]+s[1]δ[n1]+s[2]δ[n2]+=m=s[m]δ[nm]

s[n]δ[nm]s[m]

inserisci qui la descrizione dell'immagine

h[n]

inserisci qui la descrizione dell'immagine

Questo porta ad una sequenza input-output come

inserisci qui la descrizione dell'immagine

r[n]S[n]h[n]

La convoluzione è un processo molto logico e semplice, ma molti studenti DSP possono trovarlo confuso a causa del modo in cui è spiegato. Descriveremo un metodo convenzionale e un altro approccio più intuitivo.

Metodo convenzionale


n

r[n]=Σm=-S[m]h[-m+n]mh[m]m=0h[-m]

h[-m+n]nh[-m]nnn

S[m]h[-m+n]S[m]h[-m+n]

[Somma]n

[Ripeti] Ripetere i passaggi precedenti per ogni possibile valore din

s[n]=[211]h[n]=[112]r[n]n

s[n]h[n]nmnh[m]s[m]r[n]nh[m]

inserisci qui la descrizione dell'immagine

Successivamente, passiamo al metodo più intuitivo in cui non è necessario invertire un segnale.

Metodo intuitivo


r[n]

r[n] = +s[2]h[n+2] +s[1]h[n+1] +s[0]h[n] + s[1]h[n1] + s[2]h[n2] +
s[n]=[2 11]h[n]=[112]

inserisci qui la descrizione dell'immagine

Tale metodo è illustrato nella figura seguente. Dal punto di vista dell'implementazione, non vi è alcuna differenza tra entrambi i metodi.

inserisci qui la descrizione dell'immagine

Per riassumere, la convoluzione ci dice come si comporta un sistema LTI in risposta a un particolare input e grazie al metodo intuitivo sopra, possiamo dire che la convoluzione è anche una moltiplicazione nel dominio del tempo (e non è necessario capovolgere il segnale), tranne il fatto che questa volta la moltiplicazione del dominio coinvolge la memoria. Per capire ulteriormente a un livello molto più profondo da dove proviene il capovolgimento e cosa succede nel dominio della frequenza, puoi scaricare una sezione di esempio dal mio libro qui .

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.