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

📄 dolph.m

📁 matlab 天线和电磁分析工具箱 matlab electromagnetic and anntena
💻 M
字号:
% dolph.m - Dolph-Chebyshev array weights
% 
% Usage: [a, dph] = dolph(d, ph0, N, R)
% 
% d   = element spacing in units of lambda
% ph0 = beam angle in degrees (broadside ph0=90)
% N   = number of array elements (even or odd)
% R   = relative sidelobe level in dB, (e.g. R = 30) 
%
% a   = row vector of array weights (steered towards ph0)
% dph = 3-dB beamwidth in degrees
%
% note: array factor is Chebyshev A(psi) = T_{N-1}(x), x = x0 * cos(psi/2),
%
% see also UNIFORM, BINOMIAL, TAYLOR, SECTOR, DOLPH2, DOLPH3

% S. J. Orfanidis - 1997 - www.ece.rutgers.edu/~orfanidi/ewa

function [a, dph] = dolph(d, ph0, N, R)

if nargin==0, help dolph; return; end

N1 = N - 1;                         % number of pattern zeros
Ra = 10^(R/20);                     % sidelobe level in absolute units
x0 = cosh(acosh(Ra)/N1);            % scaling factor

dmax = acos(-1/x0)/pi;              % maximum element spacing

if d>dmax, 
   fprintf('maximum allowed spacing is dmax = %.4f\n', dmax);
   return;
end

i = 1:N1;  
x = cos(pi*(i-0.5)/N1);             % N1 zeros of Chebyshev polynomial T_N1(x)
psi = 2 * acos(x/x0);               % N1 array pattern zeros in psi-space
z = exp(j*psi);                     % N1 zeros of array polynomial

a = real(poly2(z));                  % zeros-to-polynomial form, N1+1 = N coefficients

a = steer(d, a, ph0);               % steer towards ph0

x3 = cosh(acosh(Ra/sqrt(2))/N1);    % 3-dB Chebyshev variable x
psi3 = 2*acos(x3/x0);               % exact 3-dB frequency
dps = 2*psi3;                       % 3-dB width

dph = bwidth(d, ph0, dps);          % 3-dB width in phi-space

⌨️ 快捷键说明

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