我的新博客

Dolph-Chebyshev综合

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)

 

posted @ 2017-03-13 01:25  Leon#0534  阅读(1330)  评论(0编辑  收藏  举报

我的新博客

专注天线学习,欢迎交流 yangli0534@gmail.com - 创建于 2010年

我永远是茫茫EE领域的一名小学生。