Suppose I want to generate a vector
y which when circularly convoluted with a vector
h gives me a vector
x. I can find such a vector through the division of FFT as below:
y = ifft(fft(x)./fft(h)) // (1)
x = [2,4,8]; h = [1,0.5,0];
y comes out to be:
y = [-0.8889, 4.4444, 5.7778]
I can take this
y and compute
x either through cyclic convolution or FFT method and both methods give me
z = ifft(fft(y).*fft(h)) // (2)
z = cconv(y,h,3) // (3)
z comes out to be
My question is that, similar to how (3) implements (2) as a linear operation (cyclic conv), is there a linear method which can implement (1) without using FFT. I would think such a method would be called cyclic deconvolution, but I can not understand how to do it.
I understand how to implement linear/cyclic convolution and linear deconvolution - but not cyclic convolution.