Im trying to implement this equation in matlab

1 回表示 (過去 30 日間)
shadi
shadi 2023 年 12 月 8 日
編集済み: Matt J 2023 年 12 月 8 日
i have a matrix x[k,l] and vector k'=[-1 -5 3 4 2] and l'= [0 1 5 3 10 15 ] h'= [ 5 4 2 5 4]
how can i shift the matrix circularly by k' and l' and do the convluation with h[k' , l' ]= h' e^2*pi*k' * l' like the equation below
this is the equation that i want to implement it
y[k, l] = ∑k'=-kv to kv ∑l=0 to l' = h[k' , l' ] x[[k − k' ]N , [l − l' ]M] and and [·]N , [·]M denote modulo N and M operations
  1 件のコメント
Matt J
Matt J 2023 年 12 月 8 日
Why not just implement the circulant convolution with FFTs?

サインインしてコメントする。

回答 (1 件)

Matt J
Matt J 2023 年 12 月 8 日
It's normally better to use FFTs for cyclic convolution, but if you insist on doing it on the non-Fourier domain, then you can use this:
function z=cyconv(x,y)
%Non-Fourier domain cyclic convolution
%
% z=cyconv(x,y)
siz=num2cell(size(x));
subs=cellfun(@(n)[2:n,1:n],siz,'uni',0);
x=x(subs{:});
z=convn(x,y,'valid');
end
  2 件のコメント
shadi
shadi 2023 年 12 月 8 日
yes sir, i want to do by ffts how it can be please
Matt J
Matt J 2023 年 12 月 8 日
編集済み: Matt J 2023 年 12 月 8 日
convolutionResult=ifft(fft(x).*fft(y));

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeDirection of Arrival Estimation についてさらに検索

製品


リリース

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by