This is my code:
function Y=FCOS(win) N=size(win,2)-1; teta=2*pi/N; d=2*pi/N; win1=win(:,1:N); win2=win(:,2:N+1); C1=0; C2=0; for j=1:N C1=C1+(2/N)*win1(:,j)*cos(j*teta); C2=C2+(2/N)*win2(:,j)*cos(j*teta); end Yc=C1; Ys=(C1*cos(d)-C2)/sin(d);Y=complex(Yc,Ys);
My idea was to do the following:
C1=2/N*sum(win1.*cos((1:N)*teta),2);C2=2/N*sum(win2.*cos((1:N)*teta),2);
But it will only work if my variable 'win' has only 1 line. For this to work, I would have to use, instead of (1:N), [1:N; 1:N; 1:N … ;1:N], where this matrix should have the same number of lines as 'win'. But I can only think of a way of doing this with a for.
Anyone have a better solution?
Best Answer