1. 单元数量N 选择切比雪夫多项式TN-1(x)
2. 由副瓣电平,计算最大值R0对就的x0值
3. 由总经的公式计算激励幅度
计算的matlab 程序如下
1 %% 2 %dolph_chebyshev array 3 4 %% 5 % Author : Leon 6 % Email: yangli0534@gmail.com 7 % blog: www.cnblogs.com/hiramlee0534 8 % dolph-chebyshev 天线综合 9 % 给出单元数量 和副瓣电平 ,计算激励幅度和方向图 10 11 clc; 12 clear all; 13 close all; 14 %format long; 15 16 %% 17 %输入 18 N = 20; %阵元数量 19 SLL = -30;%副瓣电平 20 21 %% 22 % 计算激励幅度 23 R0 = 10^(-SLL/20); 24 x = zeros(1,N-1); 25 u = zeros(1,N-1); 26 s = zeros(1,N); 27 I = zeros(1,N); 28 x0 = 1/2*(power(R0+sqrt(R0^2-1),1/(N-1))+power(R0-sqrt(R0^2-1),1/(N-1))); 29 % for i = 1:1:round((N-1)/2) 30 % x(i) = cos((2*i-1)*pi/(2*(N-1))); 31 % x(N-i) = cos((2*i-1)*pi/(2*(N-1))); 32 % end 33 % u = 2*acos(x/x0); 34 % for i = 1:1:round((N-1)/2) 35 % %x(i) = cos((2*i-1)*pi/(2*(N-1))); 36 % u(N-i) = -u(i) 37 % end 38 % theta = linspace(0,pi,M); 39 % S = zeros(1,M); 40 % S = abs(exp(1i*pi*cos(theta))-exp(1i*u(1))).*abs(exp(1i*pi*cos(theta))-exp(1i*u(2))).* ... 41 % abs(exp(1i*pi*cos(theta))-exp(1i*u(3))).*abs(exp(1i*pi*cos(theta))-exp(1i*u(4))); 42 % % for i = 1:1:N 43 % % s = s+exp(j*(i-1)*u(i)) 44 % % end 45 % plot(theta,10*log10(S/max(S))) 46 if mod(N,2) == 1 47 K = round((N-1)/2); 48 49 for n =2:1:K + 1 50 for p = n:1:K+1 51 I(n) = I(n)+(-1)^(K-p+1)*K*factorial(p+K-2)/factorial(p-n)/factorial(p+n-2)/factorial(K-p+1)*power(x0,2*(p-1)) ; 52 end 53 54 end 55 for p = 1:1:K+1 56 I(1) = I(1)+(-1)^(K-p+1)*K*factorial(p+K-2)/factorial(p-1)/factorial(p-1)/factorial(K-p+1)*power(x0,2*(p-1)) ; 57 end 58 59 60 %x(1) = 1; 61 %x(N) = 1; 62 for i = 1:1:K+1 63 x(i) = I(K+2-i)/I(K+1); 64 x(N+1-i) = x(i); 65 end 66 67 else 68 K = round(N/2); 69 70 for n =1:1:K 71 for p = n:1:K 72 I(n) = I(n)+(-1)^(K-p)*(2*K-1)*factorial(p+K-2)/2/factorial(p-n)/factorial(p+n-1)/factorial(K-p)*power(x0,2*p-1); 73 end 74 I(N+1-n) = I(n); 75 end 76 77 for i = 1:1:K 78 x(i) = I(K+1-i)/I(K); 79 x(N+1-i) = x(i); 80 end 81 end 82 x= x/max(x); 83 figure; 84 plot(x); 85 title('归一化的激励幅度'); 86 87 %% 88 % AF 89 M = 2000; % theta sample points 90 E0 = zeros(1,M);% 91 H0 = zeros(1,M);% 92 U0= zeros(1,M);% 93 f0 = 1e9; 94 lambda = 3e8/f0; 95 d = lambda/2;% elements spacing 96 k =2*pi/lambda;% wave constant 97 imp = 120*pi;%wave impdance 98 I0= 1; 99 r = 100; 100 l = 0.01; 101 102 af = zeros(1,M);% array factor buffer 103 104 theta = linspace(0,pi,M)+pi/10e10; 105 phi = linspace(0,2*pi,M); 106 af = zeros(1,M); 107 a = 0; 108 b = 0; 109 for j = 1:1:N 110 a= a+x(j); 111 b = b + power(x(j),2); 112 af = af+ exp(1i*(j-1)*k*d*cos(theta))*x(j); 113 end 114 af = abs(af/N ); 115 E0 = af *imp; 116 Wav = real(E0 .* E0 )/2/imp; 117 Prad = imp*pi*3*(I0*l/lambda)^2; 118 theta = theta/pi*180; 119 af= 10*log10(af/max(af)); 120 U= real(E0 .*E0)*r^2/2/imp; 121 U= 10*log10(U/max(U)); 122 123 error = 0.01; 124 af=U; 125 pos1_3dB = []; 126 pos_max = find(max(af)==af); 127 while(isempty(pos1_3dB)) 128 pos1_3dB = find(abs(((af(1:pos_max)-af(pos_max)))+3) < error); 129 error = error + 0.005; 130 end 131 error = 0.01; 132 pos2_3dB = []; 133 while(isempty(pos2_3dB)) 134 pos2_3dB = find(abs(((af(pos_max:end)-af(pos_max)))+3) < error); 135 error = error + 0.005; 136 end 137 BeamWidth= (theta(pos2_3dB(1)+pos_max)-theta(pos1_3dB(end))); 138 D = 10*log10(a^2/b); 139 tau = a^2/b/N; 140 figure; 141 plot(theta,U); 142 hold on; 143 axis([0 180 -120 0]); 144 str = strcat('N=', num2str(N),', SLL = ',num2str(SLL) ,'dB 时Dolph-Chebyshev综合得到的方向图'); 145 bw = strcat('主瓣宽度是',num2str(BeamWidth),'度。 增益为 ',num2str(D),'dB') 146 title(str) 147 text(60,-10,bw,'fontsize',10)