Graphics Programs Reference
In-Depth Information
[m,n] = size(w) ;
NC = max(m,n); % Use Allens algorithm
if Nx == Ny
temp_array = w;
else
midpoint = (NC-1)/2 +1 ;
midwm = (m-1)/2 ;
midwn = (n-1)/2 ;
temp_array = zeros(NC,NC);
temp_array(midpoint-midwm:midpoint+midwm, midpoint-midwn:mid-
point+midwn) = w ;
end
amn = rec_to_circ(NC); % must be rectangular array (Nx=Ny)
amn = temp_array .* amn ;
% Compute array pattern
arrayfft = abs(fftshift(fft2(amn,nfftx,nffty))).^2 ;
%compute [su,sv] matrix
U = [-nfftx/2:(nfftx/2)-1] ./(dolx*nfftx);
indexx = find(abs(U) <= 1);
U = U(indexx);
V = [-nffty/2:(nffty/2)-1] ./(doly*nffty);
indexy = find(abs(V) <= 1);
V = V(indexy);
[SU,SV] = meshgrid(V,U);
indx = find((SU.^2 + SV.^2) >1);
arrayfft(indx) = eps/10;
%Normalize to generate gain pattern
rbar=sum(sum(arrayfft(indexx,indexy))) / dolx/doly/4./nfftx/nffty;
arrayfft = arrayfft(indexx,indexy) ./rbar;
[SU,SV] = meshgrid(V,U);
indx = find((SU.^2 + SV.^2) >1);
arrayfft(indx) = eps/10;
pattern = 10*log10(arrayfft +eps);
figure(1)
mesh(V,U,pattern);
xlabel('V')
ylabel('U');
zlabel('Gain pattern - dB')
figure(2)
contour(V,U,pattern)
axis image
grid
xlabel('V')
Search WWH ::




Custom Search