linearmulbeamdirectm3.m

来自「DBF 数字波束多波束形成多波束 MATLAB 程序」· M 代码 · 共 52 行

M
52
字号
%**********M阵元-L波数-线阵波束*********矩阵法
%********邓益群写于2008年11月4日******

clear all;

M=16;                      % 阵元数
L=4;                       % 波数
c=3e8;                     % 光速
fc=6e9;                    % 工作频率(hz)
nunda=c/fc;                % 波长
d=nunda/2;                 % 阵元间距
r=-90:1:90               % 入射角(rad)
r0=0                       % 波束方向
W=zeros(M,1);              % 加权矢量 
A=zeros(M,1);              % 控制矢量
Wl=zeros(M,1);             % [1,exp(jul),...,exp(j(M-1)ul)]
%y=zeros(1,L);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
k=(2*pi)/nunda             % 波数
%u=0.5*k*d*(sin(r*pi/180)-sin(r0*pi/180))                % 空间角频

%计算方向图
y=0
figure
for l=1:L
    rl=l*90/L;
    for m=1:M
        A(m,1)=exp(j*(m-1)*k*d*sin(rl*pi/180));        % 控制矢量 
    end
    for i=1:length(r);
        for m=1:M
            W(m,1)=exp(j*(m-1)*k*d*l*sin(r(i)*pi/180));  % 加权矢量
        end      
            yl(i)=abs(W'*A);             % 方向图函数
    end
  subplot(2,2,l);plot(r,yl);xlabel('theta-度');ylabel('yl');title('阵列输出');axis([-90 90 -5 20]);
end
hold off

s=abs(yl);
S=s/max(s);                % 归一化
Gain=10*log10(S);
 
%%%%%%%%%%%%%%% 多波束 %%%%%%%%%%%%%%%%%%%%%%%%%%%
figure 
subplot(2,2,1);plot(r,yl);xlabel('theta-度');ylabel('y');title('阵列输出');axis([-90 90 -5 20]);
subplot(2,2,2);plot(r,s);xlabel('theta-度');ylabel('s=abs(y)/dB');title('波束图');axis([-90 90 0 20]);
subplot(2,2,3);plot(r,S);xlabel('theta-度');ylabel('S/dB');title('归一化波束图');axis([-90 90 0 1]);
subplot(2,2,4);plot(r,Gain);xlabel('theta-度');ylabel('Gain/dB');title('增益波束图');axis([-90 90 -60 0]);
hold off

⌨️ 快捷键说明

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