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

📄 twocircle.m

📁 现今阵列应用中
💻 M
字号:
%两圈均匀阵元的方向图(点频)
%内圈采用Mnei个阵元,外圈采用SelectM个阵元
clear all
M=40;                             %外圈均匀圆阵总数M
SelectM=8;                        %外圈所选阵元数目
Mnei=8;                           %内圈阵元数目

f=30*10^6;                        %接收信号频率
r=50;                             %外圈圆阵半径
Rnei=6.3;                         %内圈圆阵半径
c=3*10^8;                         %光速

ElementFai=(0:(M-1))*9*pi/180+4.5*pi/180;%外圈各阵元位置向量
SelectElement=[ElementFai(1) ElementFai(6) ElementFai(11) ElementFai(16) ElementFai(21) ElementFai(26) ElementFai(31) ElementFai(36)];

seta1=130*pi/180;                           %信号到来方位角
fai1=40*pi/180;                            %信号到来仰角

temp1=cos(seta1-SelectElement);      
tempNei=cos(seta1-SelectElement);  
a1=[exp(j*2*pi*Rnei*f/c*sin(fai1)*tempNei) exp(j*2*pi*r*f/c*sin(fai1)*temp1)*0.3];     %阵元位置因数 [内圈 外圈]

w=a1.';    %指定主瓣位置 均匀布阵

%扫描矢量
NcurveAzi=180;                         %空间扫描角度采样数
seta=linspace(0,2*pi,NcurveAzi);   %阵元空间扫描指向角度
NcurveEle=180;                       %空间仰角采样数
fai=linspace(0,pi/2,NcurveEle);     %仰角方向采样

for ne=1:NcurveEle
    for na=1:NcurveAzi
        temp=cos(seta(na)-SelectElement); 
        a=[exp(j*2*pi*Rnei*f/c*sin(fai(ne))*temp) exp(j*2*pi*r*f/c*sin(fai(ne))*temp)];%扫描时方向矢量
        %f=(1+temp)/2;        %扫描时的阵元方向图
        %F(na,ne)=abs(sum(f.*a.*w'));
        F(na,ne)=abs(sum(a.*w'));
    end
end

figure           %三维立体图
[X,Y]=meshgrid((fai*180/pi),(seta*180/pi));

Z=20*log(F/max(max(F)));
for ne=1:NcurveEle
%    NcurveBigFai=2*nf-1;
    for na=1:NcurveAzi
       
       if Z(na,ne)<=(-35)
            ZZ(na,ne)=(-35);
        else ZZ(na,ne)=Z(na,ne);
        end
    end  
end

mesh(X,Y,ZZ)
xlabel('\theta俯仰角(度)')
ylabel('\phi方位角(度)')
zlabel('阵列增益(dB)')
view([-37.5 30])
axis([0 90 0 360 -35 0])
colorbar
figure
[X,Y,Z]=peaks((fai*180/pi),(seta*180/pi));
contour(X,Y,ZZ)
xlabel('\theta俯仰角(度)')
ylabel('\phi方位角(度)')


figure            %方位角方向上的扫描图
temp1=ZZ(:,round(NcurveEle*fai1/(pi/2)));
%plot(fai*180/pi,20*log10(temp1/max(temp1)))
plot(seta*180/pi,temp1)
xlabel('\phi方位角(度)')
ylabel('阵列增益(dB)')
axis([0 360 -35 0])
grid

figure             %仰角方向上的扫描图
temp2=ZZ(round(NcurveAzi*seta1/(pi*2)),:);
%plot(seta*180/pi,20*log10(temp2/max(temp2)))
plot(fai*180/pi,temp2)
xlabel('\theta俯仰角(度)')
ylabel('阵列增益(dB)')
axis([0 90 -35 0])
grid

⌨️ 快捷键说明

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