Mengapa konvolusi melingkar digunakan dalam DSP? Mengapa tidak konvolusi linier?

8
  1. Mengapa kita menggunakan konvolusi melingkar dalam DSP?

  2. Apa alasan kuat utama untuk menggunakannya dalam pemrosesan digital?

  3. Mengapa konsep konvolusi melingkar lebih sering terjadi daripada konvolusi linier?

vishaln
sumber
2
Anda akan melihat bahwa semua jawaban Anda termasuk menyebutkan Transformasi Fourier Diskrit yang diimplementasikan paling efisien dengan FFT. DFT secara inheren secara periodik memperpanjang urutan panjang-terbatas yang dilewatkan ke sana (yang melingkar). lilitan melingkar jarang tujuannya . biasanya konvolusi linier adalah tujuannya. tetapi ketika mengalikan DFTX[k] dan H[k]bersama-sama, yang sesuai dengan konvolusi melingkar dari dua urutan yang diperpanjang secara berkala,x[n] dan h[n]diteruskan ke DFT. masalahnya kemudian entah bagaimana membuatnya menjadi konvolusi linier.
robert bristow-johnson

Jawaban:

8

Diberikan sistem LTI waktu diskrit dengan respons impuls h[n], seseorang dapat menghitung responsnya terhadap input apa pun x[n]dengan jumlah konvolusi :

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

Tanpa apa pun yang dinyatakan lebih lanjut, definisi di atas adalah untuk konvolusi linear (konvolusi aperiodik) antarah[n] dan x[n], yang merupakan urutan waktu diskeri aperiodik dengan panjang yang mungkin tak terbatas, kecuali dinyatakan lain. Ini berbeda dari konvolusi melingkar yang berada di antara dua urutan periode periodikN, dan dihitung dalam satu periode.

Anda dapat menghitung konvolusi linear dalam domain waktu dengan Persamaan.1, atau dalam domain frekuensi menggunakan properti DTFT (diskrit-waktu Fourier transform) berikut:

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

DTFT secara alami terkait dengan konvolusi linier, karena berkaitan dengan sekuens aperiodik yang ada secara teoritis yang dapat meluas dari untuk tercermin dalam batas jumlah penjumlahannya:

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

Saat Anda ingin membuat perhitungan dengan tangan, gunakan ekspresi simbolis untuk sinyal, seperti x[n]=anu[n] dan h[n]=bnu[n], Anda dapat menghitung hasil dalam domain waktu atau frekuensi seperti diuraikan di atas.

Juga, ketika Anda ingin menghitung hasil yang sama dengan menggunakan komputer, Anda dapat menggunakan pendekatan domain waktu berdasarkan rekursi LCCDE (untuk sistem IIR) atau jumlah konvolusi terbatas langsung (untuk sistem FIR), TETAPI pendekatan domain frekuensi tidak akan t bekerja dengan DTFT; karena ini terutama alat yang digunakan untuk mengembangkan teori sinyal & sistem, dan itu tidak cocok untuk implementasi komputer digital, sebagai variabelnyaωadalah berkelanjutan nyata .

Apa yang digunakan sebagai gantinya adalah DFT (discrete Fourier transform) yang didefinisikan sebagai

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

dimana k=0,1,...,N1 dan Nadalah panjang DFT, yang kemudian disebut sebagai N-point DFT dari sinyalx[n].

Persamaan.4 menyiratkan bahwa urutan DFT X[k] diperoleh sebagai sampel seragam DTFT X(ejω), yang merupakan fungsi periodik, maka DFT X[k] juga berkala tetapi kami hanya mempertimbangkan periode pertamanya dari k=0 untuk N1.

Karena urutan DFT secara inheren periodik, maka konvolusi mereka juga akan periodik (melingkar). Oleh karena itu, sedangkan konvolusi linier antara sinyal aperiodikx[n] dan y[n] tersirat oleh ekspresi I-DTFT

y[n]=IDTFT{X(ejω)H(ejω)}
sebaliknya lilitan melingkar antara dua urutan periodik tersirat oleh ekspresi I-DFT
y~[n]=IDFT{X[k]H[k]}

Jadi, mengingat bahwa kami ingin menghitung lilitan linear antara dua urutan aperiodik x[n] dan h[n] panjangnya Lx dan Lh masing - masing, menggunakan domain frekuensi oleh N titik DFT, X[k] dan H[k], kita benar-benar harus menghitung lilitan melingkar antara ekstensi periodik dari sinyal x~[n] dan h~[n] periode N.

Kuncinya adalah dalam memilih panjang yang tepat NDFT, yang harus cukup panjang untuk menghindari domain waktu alias dari urutany~[n], dikembalikan oleh perhitungan IDFT:

(5)y~[n]=r=-y[n-rN]

dimana y[n] adalah hasil konvolusi linier yang akan dikembalikan oleh DTFT invers teoritis dan y~[n] adalah hasil periodik dari konvolusi periodik (melingkar) yang tersirat oleh DFT terbalik.

Perhatikan bahwa jika salah satu sinyal memiliki panjang tak terhingga, maka TIDAK mungkin untuk menghitung konvolusi liniernya menggunakan pendekatan DFT, karenaNakan pergi hingga tak terbatas, praktis tidak mungkin. Implementasi konvolusi linier melalui DFT kemudian memiliki langkah-langkah berikut:

  1. Pilih N sesuai dengan kriteria berikut:

    NL.x+L.h-1
    which guarantees an alias-free reconstruction of the inverse signal y[n] from its DFT Y[k] of the computed circular convolution via X[k]H[k].

  2. Compute N-point DFTs X[k] and H[k] of x[n] and h[n].

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

  4. Compute N-point inverse DFT of Y[k] to produce the output y[n]

Fat32
sumber
2

Answering to your questions:

  1. Why are we using circular convolution in DSP?

In DSP we normally deal with finite length discrete sequences (even if the signal under study is infinite we can only analyze a finite portion of it at a time). When it comes to processing a signal the way to process it must me implementable in a discrete logic device (namely a device that can't store continuous values because this values are infinite and it has a finite amount of memory, storage,etc). This explains why Discrete Time Fourier Transform (DTFT) which transforms a discrete time sequence into a continuous frequency sequence can't be implemented in hardware. Linear convolution in time is equivalent to the multiplication of 2 sequences DTFTs, but as DTFT can't be implemented in hardware this is not the way to obtain linear convolution. Discrete Fourier Transform (DFT), on the other hand, transforms a discrete time sequence into a discrete frequency sequence and this allows it to be implemented in hardware. Yet multiplying 2 sequences DFTs is equivalent to circular convolution in principle (linear convolution may also be obtained if the time sequences are previously padded with enough zeros, see explanation below). The reason why multiplying 2 sequences DFTs is equivalent to circular and not linear convolution comes from the fact that DFT for a finite time length sequence is equivalent to the Discrete Fourier Series (DFS) of that very same finite time length sequence periodically extended (concatenating the finite time length sequence infinitely in time axis) taken over one period. DFS is also periodic in frequency domain so linear convolution does not apply there (see 8.2.5 and 8.6.5 of Oppenheim's Discrete Time Signal Processing 3rd edition )

  1. What's the main solid reason for the use of it in digital processing?

It is obtained by DFT multiplication and DFT is easily implemented in hardware. Moreover very efficient algorithms such as FFT exist for computing the DFT

  1. Why does the concept of circular convolution come more often than linear convolution?

That's depending on the application. Circular convolution may also yield the linear convolution. For instance, let's say we are working with signal A of length N and signal B also of length N (it can also be done for different lengths). The circular convolution will be of length N. In order to obtain linear convolution both A and B must be padded with zeros until they achieve a length of at least 2*N - 1. Then applying the DFT on both, multiplying them and applying inverse DFT will give you the linear convolution

VMMF
sumber
1

Here's a bit of intuition:

When you deal with signals digitally, you are always dealing with a finite signal. This is because you can only process on a finite amount of data points.

The problem however is that when you perform transformations into the frequency domain using the DFT, by definition a signal cannot be finite. Therefore when doing a DFT operation, theres is an implicit alteration to your signal from being finite, to being periodic, even if your signal is not periodic.

This periodicity of the signal leads to the need of using convolution in a circular manner.

Makoto
sumber
1

The DFT/FFT is a useful computational "hammer", but all of it's transform basis vectors are circular (integer periodic) in aperture, and can be infinitely extended as periodic functions, which some users confuse with the nature of their input data.

If you zero-pad by a sufficient amount, circular convolution produces the same result as linear convolution, but at a slightly greater computational cost than circular.

hotpaw2
sumber