0001 function rnd=randn_ft_of_real(N)
0002
0003
0004
0005
0006
0007
0008
0009 m=N-1; n=N/2-1;
0010 a=complex(randn(m,n),randn(m,n))/sqrt(2);
0011 b=complex(randn(n,1),randn(n,1))/sqrt(2);
0012 c=complex(randn(n,1),randn(n,1))/sqrt(2);
0013 d=complex(randn(1,n),randn(1,n))/sqrt(2);
0014
0015
0016
0017 rnd=zeros(N);
0018 rnd(2:N,2:N/2)=a;
0019 rnd(2:N,N/2+2:N)=rot90(conj(a),2);
0020
0021 rnd(2:N/2,1)=b;
0022 rnd(N/2+2:N,1)=flipud(conj(b));
0023
0024 rnd(2:N/2,N/2+1)=c;
0025 rnd(N/2+2:N,N/2+1)=flipud(conj(c));
0026
0027 rnd(1,2:N/2)=d;
0028 rnd(1,N/2+2:N)=fliplr(conj(d));
0029
0030 rnd(1,1)=randn; rnd(N/2+1,1)=randn;
0031 rnd(1,N/2+1)=randn; rnd(N/2+1,N/2+1)=randn;
0032 return