Perché la convoluzione circolare viene utilizzata in DSP? Perché non la convoluzione lineare?


8
  1. Perché stiamo usando la convoluzione circolare in DSP?

  2. Qual è la principale ragione solida per il suo utilizzo nell'elaborazione digitale?

  3. Perché il concetto di convoluzione circolare viene più spesso della convoluzione lineare?


2
noterai che tutte le tue risposte includono una menzione della trasformata discreta di Fourier che viene implementata nel modo più efficiente con la FFT. il DFT estende intrinsecamente periodicamente le sequenze di lunghezza finita passate ad esso (che è circolare). la convoluzione circolare è raramente l' obiettivo . l'obiettivo è solitamente la convoluzione lineare. ma quando si moltiplicano i DFTX[k] e H[k]insieme, ciò corrisponde alla convoluzione circolare delle due sequenze periodicamente estese,x[n] e h[n]passato ai DFT. il problema sta quindi trasformando in qualche modo questa convoluzione lineare.
robert bristow-johnson,

Risposte:


8

Dato un sistema LTI a tempo discreto con risposta all'impulso h[n], si può calcolare la sua risposta a qualsiasi input x[n]con una somma di convoluzione :

(1)y[n]=x[n]h[n]=k=h[k]x[nk]

Senza nulla di più dichiarato, sopra la definizione è per la convoluzione lineare (convoluzione aperiodica) trah[n] e x[n], che sono sequenze aperiodiche a tempo discreto di lunghezza forse infinita, se non diversamente indicato. Ciò è diverso da una convoluzione circolare tra due sequenze periodiche di periodoNe calcolato su un singolo periodo.

È possibile calcolare una convoluzione lineare nel dominio del tempo dall'Eq.1 o nel dominio della frequenza utilizzando la seguente proprietà DTFT (trasformata di Fourier a tempo discreto):

(2)y[n]=x[n]h[n]Y(ejω)=X(ejω)H(ejω)

Il DTFT è naturalmente correlato alla convoluzione lineare, poiché si occupa di sequenze aperiodiche teoricamente esistenti che possono estendersi da per riflessa nei suoi limiti della somma determinante:

(3)X(ejω)=n=x[n]ejωn

Quando si desidera effettuare un calcolo a mano, usando espressioni simboliche per segnali, come ad esempio x[n]=anu[n] e h[n]=bnu[n], puoi calcolare i risultati nei domini di tempo o frequenza come indicato sopra.

Inoltre, quando si desidera calcolare lo stesso risultato utilizzando un computer, è possibile utilizzare l'approccio nel dominio del tempo basato su una ricorsione LCCDE (per sistemi IIR) o una somma di convoluzione finita diretta (per sistemi FIR), MA l'approccio nel dominio della frequenza ha vinto ' lavorare con DTFT; in quanto è principalmente uno strumento utilizzato per sviluppare la matematica della teoria dei segnali e dei sistemi e non è adatto per implementazioni di computer digitali, in quanto variabileωè una vera continuo numero.

Ciò che viene utilizzato invece è la DFT (trasformata discreta di Fourier) definita come

(4)X[k]=X(ejω)|ω=2πkN

dove k=0,1,...,N1 e Nè la lunghezza del DFT, che viene quindi chiamato come DFT del punto N del segnalex[n].

Eq.4 implica che la sequenza DFT X[k] è ottenuto come campioni uniformi del DTFT X(ejω), che è una funzione periodica, quindi DFT X[k] è anche periodico ma consideriamo solo il suo primo periodo da k=0 per N1.

Poiché le sequenze DFT sono intrinsecamente periodiche, anche le loro convoluzioni saranno periodiche (circolari). Pertanto, mentre una convoluzione lineare tra segnali aperiodicix[n] e y[n] è implicito dall'espressione I-DTFT

y[n]=IDTFT{X(ejω)H(ejω)}
invece una convoluzione circolare tra due sequenze periodiche è implicita dall'espressione I-DFT
y~[n]=IDFT{X[k]H[k]}

Quindi, dato che vogliamo calcolare una convoluzione lineare tra due sequenze aperiodiche x[n] e h[n] di lunghezze Lx e Lh rispettivamente, usando il dominio della frequenza dal loro N punto DFT, X[k] e H[k], dobbiamo effettivamente calcolare una convoluzione circolare tra le estensioni periodiche dei segnali x~[n] e h~[n] di periodi N.

La chiave sta nel scegliere una lunghezza adeguata Ndei DFT, che devono essere abbastanza lunghi da evitare qualsiasi aliasing di dominio temporale della sequenzay~[n], restituito dal calcolo IDFT:

(5)y~[n]=r=y[nrN]

dove y[n] è il risultato della convoluzione lineare che verrebbe restituita dal DTFT inverso teorico e y~[n] è il risultato periodico della convoluzione periodica (circolare) implicita dal DFT inverso.

Si noti che se uno qualsiasi dei segnali ha una lunghezza infinita, NON è possibile calcolare la loro convoluzione lineare usando l'approccio DFT, comeNandrebbe all'infinito, praticamente impossibile. L'implementazione di una convoluzione lineare tramite DFT prevede quindi i seguenti passaggi:

  1. Scegli N in base ai seguenti criteri:

    NLx+Lh1
    che garantisce una ricostruzione senza alias del segnale inverso y[n] dal suo DFT Y[k] della convoluzione circolare calcolata via X[k]H[k].

  2. Calcola i DFT del punto N X[k] e H[k] di x[n] e h[n].

  3. Calcolare Y[k]=X[k]H[k]

  4. Calcola il DFT inverso del punto N di Y[k] per produrre l'output y[n]


2

Rispondere alle tue domande:

  1. Perché stiamo usando la convoluzione circolare in DSP?

In DSP normalmente ci occupiamo di sequenze discrete di lunghezza finita (anche se il segnale in studio è infinito possiamo solo analizzarne una parte finita alla volta). Quando si tratta di elaborare un segnale, il modo per elaborarlo deve essere implementabile in un dispositivo logico discreto (vale a dire un dispositivo che non può memorizzare valori continui perché questi valori sono infiniti e ha una quantità finita di memoria, archiviazione, ecc.). Questo spiega perché la trasformata discreta di Fourier a tempo (DTFT) che trasforma una sequenza temporale discreta in una sequenza di frequenza continua non può essere implementata nell'hardware. La convoluzione lineare nel tempo equivale alla moltiplicazione di DTFT a 2 sequenze, ma poiché DTFT non può essere implementato nell'hardware, questo non è il modo per ottenere una convoluzione lineare.La discreta trasformata di Fourier (DFT), d'altra parte, trasforma una sequenza temporale discreta in una sequenza di frequenza discreta e ciò consente di implementarla nell'hardware. Tuttavia moltiplicare 2 sequenze di DFT equivale in linea di principio alla convoluzione circolare(la convoluzione lineare può anche essere ottenuta se le sequenze temporali sono precedentemente riempite con abbastanza zeri, vedere la spiegazione di seguito). Il motivo per cui moltiplicare i DFT a 2 sequenze equivale alla convoluzione circolare e non lineare deriva dal fatto che DFT per una sequenza temporale limitata equivale alla serie discreta di Fourier (DFS) di quella stessa sequenza temporale finita estesa periodicamente (concatenando il sequenza di lunghezza temporale finita all'infinito nell'asse temporale) presa su un periodo. DFS è anche periodico nel dominio della frequenza, quindi la convoluzione lineare non si applica qui (vedere 8.2.5 e 8.6.5 della terza edizione di Oppenheim Discrete Time Signal Processing)

  1. Qual è la principale ragione solida per il suo utilizzo nell'elaborazione digitale?

È ottenuto dalla moltiplicazione DFT e DFT è facilmente implementabile nell'hardware. Inoltre esistono algoritmi molto efficienti come FFT per il calcolo del DFT

  1. Perché il concetto di convoluzione circolare viene più spesso della convoluzione lineare?

Dipende dall'applicazione. La convoluzione circolare può anche produrre la convoluzione lineare. Ad esempio, supponiamo di lavorare con un segnale A di lunghezza N e un segnale B anche di lunghezza N (può essere fatto anche per lunghezze diverse). La convoluzione circolare sarà di lunghezza N. Per ottenere una convoluzione lineare, sia A che B devono essere riempiti con zeri fino a raggiungere una lunghezza di almeno 2 * N - 1. Quindi applicare il DFT su entrambi, moltiplicandoli e applicando l'inverso DFT ti darà la convoluzione lineare


1

Ecco un po 'di intuizione:

Quando gestisci i segnali in modo digitale, hai sempre a che fare con un segnale finito. Questo perché è possibile elaborare solo una quantità finita di punti dati.

Il problema tuttavia è che quando si eseguono trasformazioni nel dominio della frequenza utilizzando il DFT, per definizione un segnale non può essere finito. Pertanto, quando si esegue un'operazione DFT, esiste un'alterazione implicita del segnale dall'essere finito, ad essere periodico, anche se il segnale non è periodico.

Questa periodicità del segnale porta alla necessità di usare la convoluzione in modo circolare.


1

Il DFT / FFT è un utile "martello" computazionale, ma tutti i suoi vettori di trasformazioni sono circolari (interi periodici) in apertura e possono essere estesi all'infinito come funzioni periodiche, che alcuni utenti confondono con la natura dei loro dati di input.

Se si esegue lo zero pad di una quantità sufficiente, la convoluzione circolare produce lo stesso risultato della convoluzione lineare, ma a un costo computazionale leggermente maggiore rispetto alla circolare.

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.