基本信息
源码名称:优化阵列信号处理下册—模态处理与方位估计参考程序
源码大小:5.18KB
文件格式:.zip
开发语言:MATLAB
更新时间:2024-09-10
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
:书中第十一章中的圆谐波域波束形成的各个例子
Lk=length(kr);
M=16;%阵元数为16
m=1:1:M;%各阵元序号
theta=2*pi/M*(m-1);%各阵元方位
Nmax=20;
N=-Nmax:1:Nmax;
LN=length(N);
thetas=(-180:180)/180*pi;%观察方向
Lt=length(thetas);
for q=1:Lk
for p=1:Lt
P1=0;
P2=0;
for n=1:LN
Pn_open=Cn_open(N(n),kr(q))*exp(-1i*N(n)*thetas(p));
Pn_baff=Cn_baff(N(n),kr(q))*exp(-1i*N(n)*thetas(p));
P1=Pn_open*exp(1i*N(n)*theta) P1;
P2=Pn_baff*exp(1i*N(n)*theta) P2;
end
p_open(p,:)=P1;
p_baff(p,:)=P2;
end
p_ref_baff=p_baff((Lt-1)/2 1,:);
p_ref_open=p_open((Lt-1)/2 1,:);
for u=1:Lt
B_open(u,q)=conj(p_open(u,:)/(p_open(u,:)*(p_open(u,:)')))*(p_ref_open.');
B_baff(u,q)=conj(p_baff(u,:)/(p_baff(u,:)*(p_baff(u,:)')))*(p_ref_baff.');
G_open(u,q)=p_open(u,:)*(p_open(u,:)');
G_baff(u,q)=p_baff(u,:)*(p_baff(u,:)');
end
end
figure;
[THETA,Z]=meshgrid(thetas,kr);
[X,Y,Z]=pol2cart(THETA,abs(B_open).',Z);
mesh(X,Y,Z);zlabel('kr');title('open')
figure;
[THETA,Z]=meshgrid(thetas,kr);
[X,Y,Z]=pol2cart(THETA,abs(B_baff).',Z);
mesh(X,Y,Z);zlabel('kr');title('baff')
figure;
imagesc(kr,thetas*180/pi,20*log10(abs(B_open)));
xlabel('kr');ylabel('θ/°');title('open');
figure;
imagesc(kr,theta*180/pi,20*log10(abs(B_baff)));
xlabel('kr');ylabel('θ/°');title('baff');
figure;
plot(kr,10*log10(G_open(180,:)),'--');hold on;
plot(kr,10*log10(G_baff(180,:)))
grid on
axis([0.1 8 10 15.2]);
xlabel('kr');ylabel('10logG');legend('open','baff');
:书中第十一章中的圆谐波域波束形成的各个例子
:其中部分图像
:其中一个例子的代码
clear all;
kr=0.1:.1:8;Lk=length(kr);
M=16;%阵元数为16
m=1:1:M;%各阵元序号
theta=2*pi/M*(m-1);%各阵元方位
Nmax=20;
N=-Nmax:1:Nmax;
LN=length(N);
thetas=(-180:180)/180*pi;%观察方向
Lt=length(thetas);
for q=1:Lk
for p=1:Lt
P1=0;
P2=0;
for n=1:LN
Pn_open=Cn_open(N(n),kr(q))*exp(-1i*N(n)*thetas(p));
Pn_baff=Cn_baff(N(n),kr(q))*exp(-1i*N(n)*thetas(p));
P1=Pn_open*exp(1i*N(n)*theta) P1;
P2=Pn_baff*exp(1i*N(n)*theta) P2;
end
p_open(p,:)=P1;
p_baff(p,:)=P2;
end
p_ref_baff=p_baff((Lt-1)/2 1,:);
p_ref_open=p_open((Lt-1)/2 1,:);
for u=1:Lt
B_open(u,q)=conj(p_open(u,:)/(p_open(u,:)*(p_open(u,:)')))*(p_ref_open.');
B_baff(u,q)=conj(p_baff(u,:)/(p_baff(u,:)*(p_baff(u,:)')))*(p_ref_baff.');
G_open(u,q)=p_open(u,:)*(p_open(u,:)');
G_baff(u,q)=p_baff(u,:)*(p_baff(u,:)');
end
end
figure;
[THETA,Z]=meshgrid(thetas,kr);
[X,Y,Z]=pol2cart(THETA,abs(B_open).',Z);
mesh(X,Y,Z);zlabel('kr');title('open')
figure;
[THETA,Z]=meshgrid(thetas,kr);
[X,Y,Z]=pol2cart(THETA,abs(B_baff).',Z);
mesh(X,Y,Z);zlabel('kr');title('baff')
figure;
imagesc(kr,thetas*180/pi,20*log10(abs(B_open)));
xlabel('kr');ylabel('θ/°');title('open');
figure;
imagesc(kr,theta*180/pi,20*log10(abs(B_baff)));
xlabel('kr');ylabel('θ/°');title('baff');
figure;
plot(kr,10*log10(G_open(180,:)),'--');hold on;
plot(kr,10*log10(G_baff(180,:)))
grid on
axis([0.1 8 10 15.2]);
xlabel('kr');ylabel('10logG');legend('open','baff');