Solving a convolution equation problem
4 ビュー (過去 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!