Mengapa kita menggunakan konvolusi melingkar dalam DSP?
Apa alasan kuat utama untuk menggunakannya dalam pemrosesan digital?
Mengapa konsep konvolusi melingkar lebih sering terjadi daripada konvolusi linier?
Mengapa kita menggunakan konvolusi melingkar dalam DSP?
Apa alasan kuat utama untuk menggunakannya dalam pemrosesan digital?
Mengapa konsep konvolusi melingkar lebih sering terjadi daripada konvolusi linier?
Jawaban:
Diberikan sistem LTI waktu diskrit dengan respons impuls , seseorang dapat menghitung responsnya terhadap input apa pun dengan jumlah konvolusi :
Tanpa apa pun yang dinyatakan lebih lanjut, definisi di atas adalah untuk konvolusi linear (konvolusi aperiodik) antara dan , 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 periodik, 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:
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:
Saat Anda ingin membuat perhitungan dengan tangan, gunakan ekspresi simbolis untuk sinyal, seperti dan , 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 variabelnyaadalah berkelanjutan nyata .
Apa yang digunakan sebagai gantinya adalah DFT (discrete Fourier transform) yang didefinisikan sebagai
dimana dan adalah panjang DFT, yang kemudian disebut sebagai N-point DFT dari sinyal.
Persamaan.4 menyiratkan bahwa urutan DFT diperoleh sebagai sampel seragam DTFT , yang merupakan fungsi periodik, maka DFT juga berkala tetapi kami hanya mempertimbangkan periode pertamanya dari untuk .
Karena urutan DFT secara inheren periodik, maka konvolusi mereka juga akan periodik (melingkar). Oleh karena itu, sedangkan konvolusi linier antara sinyal aperiodik dan tersirat oleh ekspresi I-DTFT
Jadi, mengingat bahwa kami ingin menghitung lilitan linear antara dua urutan aperiodik dan panjangnya dan masing - masing, menggunakan domain frekuensi oleh titik DFT, dan , kita benar-benar harus menghitung lilitan melingkar antara ekstensi periodik dari sinyal dan periode .
Kuncinya adalah dalam memilih panjang yang tepat DFT, yang harus cukup panjang untuk menghindari domain waktu alias dari urutan, dikembalikan oleh perhitungan IDFT:
dimana adalah hasil konvolusi linier yang akan dikembalikan oleh DTFT invers teoritis dan 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, karenaakan pergi hingga tak terbatas, praktis tidak mungkin. Implementasi konvolusi linier melalui DFT kemudian memiliki langkah-langkah berikut:
Pilih N sesuai dengan kriteria berikut:
Compute N-point DFTs and of and .
Compute
Compute N-point inverse DFT of to produce the output
Answering to your questions:
- 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 )
- 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
- 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
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.
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.