資源簡介
基于LS準則和LST準則的ESPRIT算法,這樣采用的是非相干信號,能識別角度。

代碼片段和文件信息
%%?LS-ESPRIT算法
%%非相干輸入信號
%%四信號輸入八陣元的線陣
clc;
close?all;
clear?all;
i=sqrt(-1);
j=i;
M=8;?????????????????????????????????????????????????????%陣元數
K=4;?????????????????????????????????????????????????????%信源數
lamda=2;?????????????????????????????????????????????????%信號中心波長
d=lamda/2;?????????????????????????????????????????????????%天線陣元間距
angle1=-40;??????????????????????????????????????????????%四個輸入信號的入射角
angle2=10;?
angle3=40;?
angle4=80;?
th=[angle1;angle2;angle3;angle4];
degrad=pi/180;
SNR=[10;10;10;10];
%%============================構造信號并加入高斯白噪聲=============================
n=1024;
nn=1:n;
v1=0.015;?????????????????????????????????????????????????%四個輸入信號的頻率
v2=0.05;
v3=0.02;
v4=0.035;
A=exp(-2*pi*d*j*[0:M-1]‘*sin(th‘*degrad)/lamda);????????????%陣列因子
S=[1*sin(v1*nn);1*sin(v2*nn);1*sin(v3*nn);1*sin(v4*nn)];??%輸入信號
U=randn(Mn)+j*randn(Mn);????????????????????????????????%構造噪聲源
Ps=diag(S*S‘/n);??????????????????????????????????????????%輸入信號功率
Pref=2*10.^(SNR/10);??????????????????????????????????????%參考信號功率
S1=diag(sqrt(Pref./Ps))*S;
X=A*S1+U;?????????????????????????????????????????????????%陣列接收信號
Rxx=X*X‘/n;???????????????????????????????????????????????%陣列接收信號協方差矩陣
[linerow]=size(Rxx);?????????????????????????????????????%協方差矩陣的行數、列數
[V1lamda1]=eig(Rxx);?????????????????????????????????????%協方差矩陣的特征向量、特征值
[lamda11I]=sort((diag(lamda1)‘));????????????????????????%特征值從小到大排列
lamda11=fliplr(lamda11);??????????????????????????????????%左右翻轉,特征值從大到小排序
EV=fliplr(V1(:I));???????????????????????????????????????%對應特征矢量排序
%%============================構造信號子空間,并分解成Ex和Ey========================
Exy=[EV(1:line-11:K)?EV(2:line1:K)];????????????????????%構造Exy,分解成Ex,Ey
F=EV(1:line-11:K)‘*EV(2:line1:K);
[V2lamda2]=eig(F);???????????????????????????????????????%對F進行特征值分解
[lamda22I]=sort((diag(lamda2)‘));????????????????????????%特征值從小到大排列
lamda22=fliplr(lamda22);??????????????????????????????????%左右翻轉,從大到小排序
V2=fliplr(V2(:I));???????????????????????????????????????%對應特征矢量排序
%%==================================計算DOA=======================================
phi=atan2(imag(lamda22)real(lamda22));
theta=asin(lamda*phi/(2*pi*d))*180/pi;????????????????????%DOA估計??w=2*pi*f???c=lamda*f
DOA(1:)=sort(theta);
T=inv(V2);
power=T*diag(lamda1(1:K)-lamda1(M))*T‘;
power=abs(diag(power).‘)/M;???????????????????????????????%功率計算
DOA(2:)=power;
DOA
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????2652??2018-09-09?18:37??LS_ESPRIT.m
?????文件????????3407??2018-09-09?18:27??TLS_ESPRIT.m
- 上一篇:手眼反應計數器
- 下一篇:基于8051單片機的電機智能軟啟動器
評論
共有 條評論