annotate dsp/fouriermat.m @ 61:eff6bddf82e3 tip

Finally implemented perceptual brightness thing.
author samer
date Sun, 11 Oct 2015 10:20:42 +0100
parents c3b0cd708782
children
rev   line source
samer@32 1 function A=fouriermat(N)
samer@32 2 % fouriermat(N): return N*N real fourier basis
samer@32 3 %
samer@32 4 % fouriermat :: N:natural -> [[N,N]].
samer@32 5
samer@32 6 if rem(N,2)
samer@32 7 % for odd N
samer@32 8 A=ones(n,1);
samer@32 9
samer@32 10 t=(0:n-1)';
samer@32 11 for k=1:floor((n-1)/2)
samer@32 12 a=exp(2*i*pi*k*t/n);
samer@32 13 A=[A real(a) imag(a)];
samer@32 14 end
samer@32 15 if mod(n,2)==0,
samer@32 16 A=[A repmat([1; -1],[n/2 1])];
samer@32 17 end
samer@32 18
samer@32 19 A=A*diag(1./sqrt(sum(A.^2)));
samer@32 20 else
samer@32 21 % for even N. ought to fix this for odd N
samer@32 22 A=zeros(N,N);
samer@32 23 A(1,1)=1;
samer@32 24 A(N/2+1,N)=1;
samer@32 25 sq2=sqrt(2)/2;
samer@32 26 for j=2:N/2
samer@32 27 A(j,2*j-2)=sq2;
samer@32 28 A(2+N-j,2*j-2)=sq2;
samer@32 29 A(j,2*j-1)=sq2*i;
samer@32 30 A(2+N-j,2*j-1)=-sq2*i;
samer@32 31 end
samer@32 32 A=real(fft(A)/sqrt(N));
samer@32 33 end
samer@32 34
samer@32 35