De ce se utilizează convoluția circulară în DSP? De ce nu convoluția liniară?
On noiembrie 29, 2020 by admin-
De ce folosim convoluție circulară în DSP?
-
Care este principalul motiv solid al utilizării acestuia în procesarea digitală?
-
De ce vine conceptul de circular convoluția vine mai des decât convoluția liniară?
Comentarii
- veți observa că toate răspunsurile dvs. includ o mențiune a Transformatei Fourier Discrete care este implementată cel mai eficient cu FFT. DFT extinde în mod inerent periodic secvențele de lungime finită trecute către acesta (care este circulară). Convoluția circulară este rareori scopul . de obicei convoluția liniară este obiectivul. dar când înmulțiți DFT ‘ s $ X [k] $ și $ H [k] $ împreună, acesta corespunde convoluției circulare din cele două secvențe extinse periodic, $ x [n] $ și $ h [n] $ au trecut la DFT-uri. Problema transformă cumva acest lucru în convoluție liniară.
Răspuns
Având în vedere un sistem LTI de timp discret cu răspuns impuls $ h [n] $ , se poate calcula răspunsul său la orice intrare $ x [n] $ de către un convolution sum: $$ y [n] = x [n] \ star h [n] = \ sum_ {k = – \ infty} ^ {\ infty} {h [k] x [nk]} \ tag {1} $$
Fără nimic mai precizat, definiția de mai sus este pentru convoluție liniară (convoluție aperiodică) între $ h [n] $ și $ x [n] $ , care sunt secvențe aperiodice în timp discret de lungime posibil infinită, dacă nu se specifică altfel. Acest lucru este diferit de o convoluție circulară care este între două secvențe periodice ale perioadei $ N $ și calculat pe o singură perioadă.
Puteți calcula o linie convoluție în domeniul timpului prin ecuația 1 sau în domeniul frecvenței utilizând următoarea proprietate DTFT (transformată Fourier în timp discret): $$ y [n] = x [n] \ star h [n] \ implică Y (e ^ {j \ omega}) = X (e ^ {j \ omega}) H (e ^ {j \ omega}) \ tag {2} $$
DTFT este în mod natural legat de convoluția liniară, deoarece se ocupă de secvențe aperiodice teoretic existente care se pot extinde de la $ – \ infty $ la $ \ infty $ reflectat în limitele sumei definitoare: $$ X (e ^ {j \ omega}) = \ sum_ {n = – \ infty} ^ {\ infty} x [n] e ^ {- j \ omega n} \ tag {3} $$
Când doriți să faceți un calcul manual, folosind expresii simbolice pentru semnale, cum ar fi $ x [n] = a ^ nu [n] $ și $ h [n] = b ^ nu [n] $ , puteți calcula rezultatele în domenii de timp sau frecvență, așa cum este subliniat mai sus.
De asemenea, atunci când doriți să calculați același rezultat utilizând un computer, puteți utiliza abordarea domeniului timp bazată pe o recursie LCCDE (pentru sistemele IIR) sau o sumă directă de convoluție finită (pentru sistemele FIR), DAR abordarea domeniului frecvenței nu va funcționa cu DTFT; deoarece este în principal un instrument folosit pentru a dezvolta matematica semnalelor & teoria sistemelor și nu este potrivit pentru computerul digital implementări, ca variabilă $ \ omega $ este un real continuu număr.
Ce se folosește în schimb este DFT (transformată Fourier discretă) definită ca $$ X [k] = X (e ^ {j \ omega}) | _ {\ omega = \ frac {2 \ pi k} {N}} \ tag {4} $$
unde $ k = 0,1, …, N-1 $ și $ N $ este lungimea DFT, care este numită apoi ca N-point DFT al semnalului $ x [n] $ .
Eq.4 implică faptul că secvența DFT $ X [k] $ este obținută ca eșantioane uniforme ale DTFT $ X (e ^ {j \ omega}) $ , care este o funcție periodică, prin urmare DFT $ X [k] $ este de asemenea, periodic, dar luăm în considerare doar prima sa perioadă de la $ k = 0 $ la $ N-1 $ .
Deoarece secvențele DFT sunt inerent periodice, atunci convoluțiile lor vor fi, de asemenea, periodice (circulare).Prin urmare, întrucât o liniară convoluție între semnale aperiodice $ x [n] $ și $ y [n] $ este implicat de expresia I-DTFT $$ y [n] = \ mathcal {I-DTFT} \ {X (e ^ {j \ omega}) H (e ^ {j \ omega}) \} $$ în loc de un circular convoluție între două secvențe periodice este implicată de expresia I-DFT $$ \ tilde {y} [n] = \ mathcal { I-DFT} \ {X [k] H [k] \} $$
Deci, având în vedere că dorim să calculăm o convoluție liniară între două secvențe aperiodice $ x [n] $ și $ h [n] $ de lungimi $ L_x $ și, respectiv, $ L_h $ , utilizând domeniul de frecvență de SP-urile lor $ N $ , $ X [k] $ și $ H [k] $ , de fapt trebuie să calculăm o convoluție circulară între extensiile periodice ale semnalelor $ \ tilde {x} [n] $ și $ \ tilde {h} [n] $ de perioade $ N $ .
Cheia constă în alegerea unei lungimi corespunzătoare $ N $ a DFT-urilor, care trebuie să fie suficient de lungă pentru a evita orice domeniu de timp aliasing al secvenței $ \ tilde {y} [n] $ , returnat după calculul IDFT: $$ \ tilde {y} [n] = \ sum_ {r = – \ infty} ^ {\ infty} y [n-rN] \ tag {5 } $$
unde $ y [n] $ este rezultatul convoluției liniare care ar fi returnată de inversul teoretic DTFT și $ \ tilde {y} [n] $ este rezultatul periodic al convoluției periodice (circulare) implicate de DFT invers.
Rețineți că dacă oricare dintre semnale are o lungime infinită, atunci este „s NU pentru a calcula convoluția lor liniară utilizând abordarea DFT, deoarece $ N $ ar merge la infinit, practic imposibil. Implementarea unei convoluții liniare prin DFT are apoi următorii pași:
-
Alegeți N conform următoarelor criterii: $$ N \ geq L_x + L_h -1 $$ care garantează o reconstrucție fără alias a semnalului invers $ y [n] $ din DFT $ Y [k] $ a convoluției circulare calculate prin $ X [k] H [k] $ .
-
Calculați DFT-uri în puncte N $ X [k] $ și $ H [k] $ din $ x [n] $ și $ h [n] $ .
-
Calculați $ Y [k] = X [k ] H [k] $
-
Calculați DFT inversă în punct N de $ Y [k] $ pentru a produce ieșirea $ y [n] $
Răspuns
Răspuns la întrebările dvs.:
- De ce folosim convoluție circulară în DSP?
În DSP avem de-a face cu secvențe discrete de lungime finită (chiar dacă semnalul studiat este infinit putem analiza doar o porțiune finită a acestuia la un moment dat ). Când vine vorba de procesarea unui semnal, modul de procesare trebuie să fie implementabil într-un dispozitiv logic discret (și anume un dispozitiv care nu poate „stoca valori continue deoarece aceste valori sunt infinite și are o cantitate finită de memorie, stocare etc.) Acest lucru explică de ce Transformarea Fourier Discretă în Timp (DTFT) care transformă o secvență de timp discretă într-o secvență de frecvență continuă nu poate fi implementată în hardware. Convoluția liniară în timp este echivalentă cu înmulțirea a 2 secvențe DTFT, dar deoarece DTFT nu poate fi implementat în hardware, aceasta nu este modalitatea de a obține o convoluție liniară. Transformata Fourier discretă (DFT), pe de altă parte, transformă o secvență de timp discretă într-o secvență de frecvență discretă și acest permite implementarea ei hardware. Cu toate acestea, înmulțirea a două secvențe DFT este echivalentă cu convoluția circulară în principiu (convoluția liniară poate fi obținută și dacă secvențele de timp sunt anterior umplute cu suficiente zerouri, vezi explicația de mai jos)Motivul pentru care înmulțirea a 2 secvențe DFT este echivalent cu convoluția circulară și nu liniară vine din faptul că DFT pentru o secvență de lungime de timp finită este echivalentă cu Seria Fourier Discretă (DFS) a aceleiași secvențe de lungime de timp finită extinsă periodic (concatenând secvența de lungime a timpului finită infinit în axa timpului) preluată pe o perioadă. DFS este, de asemenea, periodic în domeniul frecvenței, astfel încât convoluția liniară nu se aplică acolo (a se vedea 8.2.5 și 8.6.5 din ediția a III-a de procesare a semnalului discret al lui Oppenheim)
- Care este principalul motiv solid pentru utilizarea acestuia în procesarea digitală?
Se obține prin multiplicarea DFT și DFT este ușor de implementat în hardware. Mai mult, există algoritmi foarte eficienți, cum ar fi FFT, pentru calculul DFT
- De ce vine conceptul de convoluție circulară mai des decât convoluție liniară?
Asta depinde de aplicație. Convoluția circulară poate produce și convoluția liniară. De exemplu, să spunem lucrăm cu semnalul A de lungime N și semnalul B, de asemenea, cu lungimea N (se poate face și pentru lungimi diferite). Convoluția circulară va fi de lungime N. Pentru a obține o convoluție liniară, atât A cât și B trebuie să fie umplute cu zerouri până când ating o lungime de cel puțin 2 * N – 1. Aplicând apoi DFT pe ambele, înmulțindu-le și aplicând invers DFT vă va oferi convoluția liniară
Răspuns
Aici „un pic de intuiție:
Când tratați semnalele digital, aveți întotdeauna de-a face cu un semnal finit. Acest lucru se datorează faptului că puteți procesa numai pe o cantitate finită de puncte de date.
Totuși, problema este că atunci când efectuați transformări în domeniul frecvenței folosind DFT, prin definiție, un semnal nu poate fi finit. Prin urmare, atunci când efectuați o operație DFT, există o modificare implicită a semnalului dvs. de la a fi finit, la a fi periodic, chiar dacă semnalul dvs. nu este periodic.
periodicitatea semnalului duce la necesitatea utilizării convoluției în mod circular.
Răspuns
DFT / FFT este un „ciocan” de calcul util, dar toți vectorii bazei de transformare ai acestuia sunt circulari (periodici întregi) în diafragmă și pot fi extinse infinit ca funcții periodice, pe care unii utilizatori le confundă cu natura datelor lor de intrare.
Dacă faceți zero-pad cu o cantitate suficientă, convoluția circulară produce același rezultat ca și convoluția liniară, dar la un cost de calcul ușor mai mare decât circularul.
Lasă un răspuns