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 + -
显示快捷键?