下载资源行业资源详情
doa_music_esprit.zip
大小:2.48KB
价格:20积分
下载量:0
评分:
5.0
上传者:jingbikui7876
更新日期:2025-09-22

DOA估计经典算法

资源文件列表(大概)

文件名
大小
ESPRIT.m
2.09KB
MUSIC.m
1.82KB

资源内容介绍

常规的DOA估计算法,包括MUSIC、ESPRIT,使用线性调频信号进行仿真,不使用噪声作为信号。可用于本科毕业设计
%%%%%%%%%%%%%%%基于线性调频信号的ESPRIT算法clear;close all;j=sqrt(-1);c=3e8;tao=10e-6;%采样间隔fs=100e6;%采样频率M=8;f1_l=29.9e6;f1_h=30.1e6;%信号的低频和高频f2_l=30.1e6;f2_h=29.9e6;%此种情况下,中频相同且不相关,且为窄带信号f1_c=(f1_l+f1_h)/2;%中频,且相同B1=f1_h-f1_l;%带宽kc1=B1/tao;%调制斜率kc2=-B1/tao;N_fs=fix(tao*fs);% 采样点数t0=(0:N_fs-1)/fs;snr=10;theta=[-10 20];%入射角度N_source=length(theta);lambda=c/f1_c;%波长及阵元间距d=lambda/2;dd=(0:M-1)*d;mecnt=100;F = fs/N_fs;f_xlabe = ((0:N_fs-1)-N_fs/2)*F;%%%%%%%%%%%流行矩阵delay=zeros(M,N_source);for i=1:N_source delay(:,i)=dd.'*sin(theta(i)*pi/180)/c;end% A=zeros(M,N_source);% for i2=1:N_source% A(:,i2)=exp(j*2*pi*dd.'*sin(theta(i)*pi/180)/c);% delay(:,i2)=dd.'*sin(theta(i2)*pi/180)/c% end%%%%%%%%%%%产生线性调频信号X1=zeros(M,N_fs);X2=zeros(M,N_fs);for h1=1:M; t1=t0-delay(h1,1); X1(h1,:)=exp(j*2*pi*(f1_l*t1+1/2*kc1*t1.^2));endfor h2=1:M; t2=t0-delay(h2,2); X2(h2,:)=exp(j*2*pi*(f2_l*t2+1/2*kc2*t2.^2));end% plot(f_xlabe,fftshift(abs(fft(X1(1,:),N_fs))));X_out=X1+X2;% X=awgn(X,snr,'measured');%%%%%%%%%%%ESPRIT算法for loop=1:mecnt X=awgn(X_out,snr,'measured'); Y1=X(1:M-1,:); Y2=X(2:M,:);%子阵1和2 Y=[Y1;Y2]; R=(Y*Y')/N_fs;%输出阵列 [edv d1]=eig(R); d11=diag(d1); [d_sort pre]=sort(abs(d11 ),'descend');%按照降序排列 edv_sort=edv(:,pre);%取出信号子空间 edv1=edv_sort(:,1:N_source); Ex=edv1(1:M-1,:); Ey=edv1(M:2*M-2,:);%两个子阵的信号子空间 F = pinv(Ex)*Ey; %%%%%%%%%子阵1的逆与子阵2的乘积为不变关系 [edv2,d2]=eig(F); % 对F进行特征分解得到特征值 doa(:,loop)= -asin( lambda*angle(diag(d2))/(2*pi*d))*180/pi; %角度估计% doa_sort(:,loop) = sort(doa(:,loop),'ascend');end doa_sort = sort(doa,'ascend');%------蒙特卡洛实验下对不同角度估计值进行绘图% figure;plot(doa_sort(1,:),'-b');hold on;plot(doa_sort(2,:),'-r');legend('-10°','20°');xlabel('实验次数');ylabel('doa估计');title('ESPRIT蒙特卡罗实验');

用户评论 (0)

发表评论

captcha