Solving a convolution equation problem
3 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Raunak Gupta
2020-8-12
编辑:Raunak Gupta
2020-8-12
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 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Mathematics and Optimization 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!