Clear Filters
Clear Filters

Solving a convolution equation problem

4 views (last 30 days)
Hello,
I am trying to a solve a convolution problem of the type conv(a,b) = conv(x,c) where a,b,c has size N. I am trying to find the vector/matrix x that satisfies the given equation. I know that the linear convolution can be calculated by the convolution theorem conv(a,b) = ifft(fft(a_padded).*fft(b_padded)) = c1 where a_padded and b_padded are zero padded vectors of atleast size 2N-1. I have tried this: x_padded = ifft(fft(c1)./fft(c_padded)) but the problem i have is that i dont know exactly how to retain the vector x from x_padded so that conv(a,b) = conv(x,c). Any suggestions?
Thanks

Accepted Answer

Raunak Gupta
Raunak Gupta on 12 Aug 2020
Edited: Raunak Gupta on 12 Aug 2020
Hi Jamal,
You can use conv and deconv for solving this equation. You will be getting N length vector only as an output. Below code might be of use. This will be only valid if conv(a,b) = conv(x,c) has a valid solution x. otherwise there will be some remainder instead of ~.
% Let a,b,c be N length vector
[x,~] = deconv(conv(a,b),c);

More Answers (0)

Categories

Find more on Mathematics and Optimization in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!