zoukankan      html  css  js  c++  java
  • 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)

  • 相关阅读:
    【我所认知的BIOS】—&gt; uEFI AHCI Driver(4) — 第一个Protocol真难搞
    IOS Core Animation Advanced Techniques的学习笔记(四)
    Redhat 7改动默认执行级别方法 --RHEL7使用systemd创建符号链接指向默认执行级别
    CF1088F Ehab and a weird weight formula
    2018-2-13-win10-uwp-csdn-博客阅读器
    2018-2-13-win10-uwp-csdn-博客阅读器
    2018-2-13-win10-UWP-九幽数据分析
    2018-2-13-win10-UWP-九幽数据分析
    2019-9-2-win10-uwp-获得焦点改变
    2019-9-2-win10-uwp-获得焦点改变
  • 原文地址:https://www.cnblogs.com/hiramlee0534/p/6540569.html
Copyright © 2011-2022 走看看