music.m
来自「这是一个Matlab开发的数字波束形成源代码」· M 代码 · 共 34 行
M
34 行
close all;clear all;
M=8;d=10;f=[14.8e6 15e6 15.2e6];d=10;fs=30e6;Ts=1/fs;c=3e8;beta=[5 0 40];
L=100;
Ns=3;%信号源个数
u=-1:0.001:1;
SNR=30:-1:-10;
P=zeros(length(SNR),length(u));
for t=1:length(SNR)
m=1:M;
n=1:L;
for i=1:3
A(:,i)=exp(j*2*pi*f(i)*(m-1)*d*sind(beta(i))/c);
S(i,:)=exp(j*2*pi*f(i)*(n*Ts));
end
v=sqrt(1/(10^(SNR(t)/10)));
N=v*randn(8,L);
X=(A*S)+N;
R=zeros(M,M);
for n=1:L
r=X(:,n)*X(:,n)';
R=R+r;
end
R=R/L;
[D V]=eig(R);
UN=D(:,1:M-Ns);
for n=1:length(u)
a(:,1)=exp(j*2*pi*f(2)*(m-1)*d*u(n)/c);
p(n)=a'*UN*UN'*a;
p(n)=1/p(n);
end
p=10*log10(abs(p)/max(abs(p)));
P(t,:)=p;
end
createfigure(asind(u),SNR,P)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?