Solving a convolution equation problem
4 views (last 30 days)
Show older comments
Jamal Choudhry
on 22 Jul 2020
Edited: Raunak Gupta
on 12 Aug 2020
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
0 Comments
Accepted Answer
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);
0 Comments
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!