📄 bs.m
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 空间谱估计中 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear
close all
clc
%%%%%%%%%%%%%%%%%%%%%%% generate signal %%%%%%%%%%%%%%%%%
f0=5000; %入射信号频率
fs=1000; %采样频率
ts=1/fs; %采样间隔
M=8; %阵元数
L=100; %快拍数
SNR=15; %信噪比 %%%%%%
the0=[10 40 60];
Q=length(the0); %信号源数
c=1500;
lamda=c/f0;
d=lamda/2; %c为水下声速,d为阵元间距
t=(1:L)*ts; % 采样时刻序列
K=sqrt(2*10^(SNR/10)); %信号的幅度,Pn=1,the load impedance is 1 ohm.
u1=10;
s1=K*exp(j*(2*pi*u1*(t-1)+2*pi*rand(1,L)));
s2=K*exp(j*(2*pi*u1*(t-1)+2*pi*rand(1,L)));
s3=K*exp(j*(2*pi*u1*(t-1)+2*pi*rand(1,L))); %独立信源
ss=[s1;s2;s3]; %相干信号源矩阵 基带信号
%%%%%%%%%%%%%%%%%%%%% 生成导向矢量矩阵 %%%%%%%%%%%%%%%%%%%
m=0:M-1;
A=exp(-j*2*pi*m'*d/lamda*sin(the0*pi/180));
%%%%%%%%%%%%%%%%%%%%% 数据协方差矩阵%%%%%%%%%%%
Nn = wgn(M,L,0,'complex');% M columns vector of length 100 containing complex white Gaussian noise, each component of which has a noise power of 0 dBW
X=A*ss+Nn; %阵列接收的相干信号, 情况2
R=X*X'/L; %阵列采样数据协方差矩阵
B=4;
r=0:B-1;
WA=exp(-j*pi*m'*sin(r*2/M));
T1=WA/sqrt(M);
R1=T1'*R*T1;
[V1 D1]=eig(R1);
Un1=V1(:,1:B-Q); %BS1
v1=ones(M-B+1,1);
T=zeros(M,B);
for r=0:B-1
T(:,r+1)=[zeros(r,1);v1;zeros(B-1-r,1)];
end
TT=T/sqrt(M-B+1);
T2=orth(TT);
R2=T2'*R*T2;
[V2 D2]=eig(R2);
Un2=V2(:,1:B-Q); %BS2
v2=ones(M/B,1);
for r=0:B-1
T(:,r+1)=[zeros(r*M/B,1);v2;zeros((B-1-r)*M/B,1)];
end
T3=T/sqrt(M/B);
R3=T3'*R*T3;
[V3 D3]=eig(R3);
Un3=V3(:,1:B-Q); %BS3
y1=0;y2=pi/6;y3=pi/3;y4=pi/2;
y=[y1 y2 y3 y4];
C=exp(-j*pi*m'*sin(y));
T5=C*(C'*C)^-0.5;
R5=T5'*R*T5;
[V5 D5]=eig(R5);
Un5=V5(:,2); %BS5
u=0:0.5:90; %搜索范围
for ii=1:length(u)
Au=exp(-j*2*pi*m'*d/lamda*sin(u(ii)*pi/180)); %搜索范围的导向矢量阵
P_BS1(ii)=1/abs(Au'*T1*Un1*Un1'*T1'*Au);
P_BS2(ii)=1/abs(Au'*T2*Un2*Un2'*T2'*Au);
P_BS3(ii)=1/abs(Au'*T3*Un3*Un3'*T3'*Au);
P_BS5(ii)=1/abs(Au'*T5*Un5*Un5'*T5'*Au);
%P(ii)=1/abs(Au'*Un*Un'*Au);
end
plot(u,10*log10(P_BS1),'-r',u,10*log10(P_BS2),'-g',u,10*log10(P_BS3),'--b',u,10*log10(P_BS5),'-k');
legend('BS1','BS2','BS3','BS5'),xlabel('入射角度'),ylabel('空间方位谱(dB)'),
title('波束空间MUSIC'),grid on;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -