CIRCONV N-point circular convolution
C = CIRCONV(A,B,N) performs the N-point circular convolution of vectors A and B. C is returned as a row vector. A and B must be vectors, but may be of different lengths. N must be a positive, non-zero integer. The results of CIRCONV will match that of CONV if N>=( length(A) + length(B) - 1). This is also the alias-free criterion for the circular convolution.
See also CONV
how can this related to the 3D sound ??
There is a much cleaner more intuitive implementation located at: http://www.mathworks.com/matlabcentral/fileexchange/13030
it says i have to use vectors only
Z = [ 2 -1 0 -3; -3 2 -1 0; 0 -3 2 -1; -1 0 -3 2]
B = [ 1 -3-2*i 4 -3+2*i].' with N =4
it doesnt work?
helped me...in lab..hehe
Works perfectly! Very useful.
you can do this directly using:
in exactly one line.
that is good
Very impoortante for me this script.
It is handy.
very needed one
A very handy function, but I believe the ctranspose ' needs to be changed to transpose .' throughout, otherwise you don't get what you expect when convolving complex vectors.
Wont have to do my homework :)
Why not just multiple the DFT's of the time-aliased signals? It would be MUCH faster...
function xo = talias(x,N)
%% function xo=talias(x,N)
%% time alias data vector x to length N for an N-point DFT.
xo = sum( reshape(x,N,nrows)' );
then Y = ifft(fft(talias(a,n)).*fft(talias(b,n)))