%%%%%%%%%%%%%%%基于线性调频信号的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));
end
for 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蒙特卡罗实验');
没有合适的资源?快使用搜索试试~ 我知道了~
DOA估计基于matlab esprit算法宽带信号(线性调频信号)DOA估计【含Matlab源码 2676期】.zip
共2个文件
m:1个
jpg:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 12 浏览量
2023-06-07
10:28:51
上传
评论
收藏 17KB ZIP 举报
温馨提示
CSDN海神之光上传的代码均可运行,亲测可用,直接替换数据即可,适合小白; 1、代码压缩包内容 主函数:ESPRI.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,可私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开ESPRI.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主或扫描博主博客文章底部QQ名片; 4.1 CSDN博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作 功率谱估计: 故障诊断分析: 雷达通信:雷达LFM、MIMO、通信、成像、定位、干扰、检测、信号分析、脉冲压缩 滤波估计:SOC估计 目标定位:WSN定位、滤波跟踪、目标定位 生物电信号:肌电信号EMG、脑电信号EEG、心电信号ECG 通信系统:DOA估计、编码译码、变分模态分解、管道泄漏、滤波器、数字信号处理+传输+分析+去噪、数字信号调制、误码率、信号估计、信号检测信号识别融合
资源推荐
资源详情
资源评论
收起资源包目录
【DOA估计】基于matlab esprit算法宽带信号(线性调频信号)DOA估计【含Matlab源码 2676期】.zip (2个子文件)
【DOA估计】基于matlab esprit算法宽带信号(线性调频信号)DOA估计【含Matlab源码 2676期】
运行结果.jpg 22KB
ESPRIT.m 2KB
共 2 条
- 1
资源评论
海神之光
- 粉丝: 3w+
- 资源: 2091
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功