📄 doa.m
字号:
这是某硕士论文中的doa估计源码,但实现的是非相干信号的doa估计
Pd=2000;
Fd=1;
Fs=4*Fd;
R=0.5;
Delay=5;
No=1;
M=4;
x1=randint(Pd,1,M);
x2=randint(Pd,1,M);
x3=randint(Pd,1,M);
y1=modmap(x1,Fd,Fs,'qask',M);
y2=modmap(x2,Fd,Fs,'qask',M);
y3=modmap(x3,Fd,Fs,'qask',M);
[rcv_a1,ti]=rcosflt(y1,Fd,Fs,'fir/sqrt/Fs',R,Delay)
[rcv_a2,ti]=rcosflt(y2,Fd,Fs,'fir/sqrt/Fs',R,Delay)
[rcv_a3,ti]=rcosflt(y3,Fd,Fs,'fir/sqrt/Fs',R,Delay)
s1=amodce(rcv_a1,10,'qam');
s2=amodce(rcv_a2,10,'qam');
s3=amodce(rcv_a3,10,'qam');
save sig3 s1 s2 s3
clear
i=sqrt(-1);
j=1;
m=8;
p=3;
angle1=30;
angle2=-60;
angle3=45;
th=[angle1;angle2;angle3];
nn=1024;
SN1=12;
SN2=10;
SN3=9;
sn=[SN1;SN2;SN3];
degrad=pi/180;
load sig3
tt=1:nn;
S=[s1(tt).';s2(tt).';s3(tt).'];
nr=randn(m,nn);
ni=randn(m,nn);
U=nr+j*ni;
Ps=S*S'/nn;
ps=diag(Ps);
refp=2*10.^(sn/10);
tmp=sqrt(refp./ps);
S2=diag(tmp)*S;
tmp=-i*pi*sin(th'*degrad);
tmp2=[0:m-1]';
a2=tmp2*tmp;
A=exp(a2);
X=A*S2+U;
Rxx=X*X'/nn;
[U,S,V]=svd(Rxx);
Vs=U(:,1:p);
Vu=U(:,p+1:m);
th2=[-90:90]'
tmp=-i*pi*sin(th2'*degrad);
tmp2=[0:m-1]';
a2=tmp2*tmp;
A2=exp(a2);
num=diag(A2'*A2);
Ena=Vu'*A2;
den=diag(Ena'*Ena);
doa=num./den;
semilogy(th2,doa);
title('MUSIC Spectyum');
xlabel('Angle(deg)');
ylabel('Spectrum');
axis([-90 90 0.1 1e5]);
grid;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -