⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 getamplitudes.m

📁 一维、二维阵列方向图计算
💻 M
字号:
function [ampxn,ampyn] = getamplitudes(Nx,ixdist,Ny,iydist)
% filename: getamplitudes.m  (bayliss fixed)
% Project: ARRAY2D
% Description: This program calculates the amplitude distribution.
% Author:  Prof. David C. Jenn 
% Date:   22 September 2000
% Place: NPS
 
%  Get parameters

   h_figs = get(0,'children');
	for fig = h_figs'
		if strcmp(get(fig,'Tag'),'Array2d');
         h_array2d = fig;
         figure(fig);
         break
		end
	end
   
   pedval1 = get(findobj(gcf,'Tag','PedVal1'),'Value');
    if pedval1==1, peddbx = 15; end
     if pedval1==2, peddbx = 20; end
      if pedval1==3, peddbx = 25; end
       if pedval1==4, peddbx = 30; end
        if pedval1==5, peddbx = 35; end
         if pedval1==6, peddbx = 40; end 
          if pedval1==7, peddbx = 45; end
           if pedval1==8, peddbx = 50; end
      
   expval1 = get(findobj(gcf,'Tag','ExpVal1'),'Value'); 
   nexpx = expval1;
     
   pedval2 = get(findobj(gcf,'Tag','PedVal2'),'Value');
   if pedval2==1, peddby = 15; end
    if pedval2==2, peddby = 20; end
     if pedval2==3, peddby = 25; end
      if pedval2==4, peddby = 30; end
       if pedval2==5, peddby = 35; end
        if pedval2==6, peddby = 40; end
         if pedval2==7, peddby = 45; end 
          if pedval2==8, peddby = 50; end
      
   expval2 = get(findobj(gcf,'Tag','ExpVal2'),'Value'); 
   nexpy = expval2;

% uniform array excitation coefficients (=1/nel)
if ixdist == 1 
	for i = 1:Nx
   	ampx(i) = 1/Nx;
   end
end

if iydist == 1 
	for i = 1:Ny
   	ampy(i) = 1/Ny;
   end
end

% subroutine compute taylor coefficients

if ixdist == 2      
   ampx(1:Nx) = tayl(Nx,peddbx,nexpx);
end

if iydist == 2      
   ampy(1:Ny) = tayl(Ny,peddby,nexpy);
end

% cosine-on-a-pedestal distribution

if ixdist == 3    
   ampx(1:Nx) = cosine(Nx,peddbx,nexpx);
end 

if iydist == 3   
   ampy(1:Ny) = cosine(Ny,peddby,nexpy);
end 

% bayliss distribution for difference beams -- NEL MUST BE EVEN

if ixdist == 4   
   ampx(1:Nx) = bayliss(Nx,peddbx,nexpx);
end

if iydist == 4   
   ampy(1:Ny) = bayliss(Ny,peddby,nexpy);
end


% subroutine compute triangular coefficients

if ixdist == 5   
	for i = 1:Nx
		n = (2*i - (Nx + 1))/2;
      ampx(i) = 1 - abs(2*n/Nx);
   end
end

if iydist == 5
	for i = 1:Ny
		n = (2*i -(Ny + 1))/2;
      ampy(i) = 1 - abs(2*n/Ny);
   end
end
      
% normalize all coefficients to the maximum value
amx 	= max(ampx);
ampxn = ampx/amx;
amy 	= max(ampy);
ampyn = ampy/amy;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -