clear all;
close all;
clc;
warning off;
M=32;%麦克风数
N=100;%快拍数设置
d=0.5;%麦克风间距
theta=[-90:1:90];%角度范围
thetas=[5 15];%期望信号入射角度
i=[1:M]';
vs=exp(-j*pi*(i-1)*sin(thetas*pi/180));%期望信号的导向矢量
v=exp(-j*pi*(i-1)*sin(theta*pi/180));%传感矩阵
t=1:N;%时间长度设置
f1=1000;%频率设置
snr=20;%信噪比设置
st=(sqrt(10^(snr/10))/(length(thetas))^2)*exp(2*j*pi*f1*t);%期望信号
rt=vs*ones(length(thetas),1)*st;%阵列实际接收的期望信号
noise=[randn(M,N)+j*randn(M,N)]/sqrt(2);%噪声信号
x=rt+noise;%阵列的接收信号
R=x*x'/N;%阵列接收信号的协方差矩阵
[U D]=eig(R);%对协方差矩阵进行特征分解
noise_subspace=U(:,1:M-length(thetas));%噪声子空间(噪声对应的特征向量)
b=noise_subspace;
for c=1:length(theta)
P(c)=1/(v(:,c)'*b*b'*v(:,c));%空间谱函数
end
P=20*log10(P/max(abs(P)));
plot(theta,P,'k-');
xlabel('angle');
ylabel('power spectrum');
axis([-90 90 -80 0])