I understand the theoretical foundations of convolution, but now that I'm trying to program it I'm having some issues conceptually.
Say I have two blocks of 64 audio samples each. I also have access to fft and inverse fft functions. I want to take these two blocks and convolve them. Is this just taking the Fourier transform of each block and multiplying the resulting elements pairwise?
Say now that I want to deconvolve these two (e.g., its a signal and its convolution). Would I just divide the elements pairwise?
For example, the output of my Fourier transform is this pair of amplitudes.
Real:
11.09 -0.2055 1.214 1.101 1.66 4.594 -3.809 -0.3608
4.198 3.572 0.3175 -0.5848 -5.129 2.26 -5.641 -1.039
0.2445 1.905 -6.607 -1.083 1.726 -6.772 2.04 5.563
-6.907 -4.122 0.276 4.894 -0.8119 1.064 -3.989 -0.1623
-1.712 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
Imaginary:
0 -3.147 0.7265 -2.434 -1.125 3.208 -3.066 -1.637
-4.558 2.981 2.04 4.246 1.041 -0.1337 -5.165 1.238
-1.223 -1.29 4.51 -4.716 -2.676 2.557 1.385 -1.173
-3.938 -5.14 2.763 -3.018 -1.727 7.329 4.278 2.936
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
for a block size of 64. If I know that other signal has a Fourier transform given by imp_real[64] and imp_imag[64], how do I practically convolve and deconvolve the signals?