clear all
close all
clc
SD_rate = zeros(1,11);
aaa = zeros(1,300);
cal = zeros(1,11);
for kk=1:11
% snr=[-2 0 2 4 6 8 10 12 14 16 18];%信噪比(dB)
snapshot_number=[100 200 300 400 500 600 700 800 900 1000 1100];%采样频率
for k=1:300
derad = pi/180; %角度变弧度
radeg = 180/pi; %弧度变角度
twpi = 2*pi;
kelm = 8; %阵元数
dd = 0.5; %阵元间距
d = 0:dd:(kelm-1)*dd;
iwave = 2; %信源数
theta = [30 30.5]; %波达方向
snr = 10; %信噪比
n = 500; %采样数
A=exp(-j*twpi*d.'*sin(theta*derad)); %方向矢量
S=randn(iwave,n); %信源信号
X=A*S; %接收信号
X1=awgn(X,snr,'measured'); %添加噪声
Rxx=X1*X1'/n; %计算协方差矩阵
InvS=inv(Rxx);
[EV,D]=eig(Rxx); %特征值分解
EVA=diag(D);
[EVA,I]=sort(EVA); %特征值排序从小到大
EVA=fliplr(EVA); %特征值从大到小排序
EV=fliplr(EV(:,I)); %对应特征矢量排序
interval = 0.001;
iang = 1:interval:361;
LL=length(iang);
%构造MUSIC谱函数
for l = 1:LL
angle(l)=(iang(l)-181)/2;
phim=derad*angle(l);
a=exp(-j*twpi*d*sin(phim)).';
L=iwave;
En=EV(:,L+1:kelm); %得到噪声子空间
SP(l)=(a'*a)/(a'*En*En'*a);
end
% % MUSIC
SP=abs(SP);
SPmax=max(SP);
SP=10*log10(SP/SPmax);
% % iMUSIC
% SP=abs(SP);
% SPmax=max(SP);
% SP=10*log10(SP/SPmax);
% for iang = 1:361
% if iang==1||iang==2||iang==3||iang==360||iang==361||iang==359
% SP_2def(iang)=0;
% else
% SP_2def(iang)=(SP(iang+2)+SP(iang-2)-2*SP(iang))/8;
% end
% end
% SP_2def=abs(SP_2def);
% SP_2defmax=max(SP_2def);
% SP_2def=10*log10(SP_2def/SP_2defmax);
% for iang1 = theta(1)-0.5:0.1:theta(2)+0.5
% % if SP(iang1)<SP(iang1+0.1)
% % max = SP(iang1);
% % else
% %
% % end
%
% end
% SP1[2] = 0;
% % MUSIC时候用
mid=diff(sign(diff(SP)));
IndMax=find(mid<0)+1;
SP1 = SP(IndMax)
% % iMUSIC时候用
% mid=diff(sign(diff(SP_2def)));
% IndMax=find(mid<0)+1;
% SP1 = SP_2def(IndMax);
% if length(IndMax)>=10
% cal(kk)=cal(kk)+1;
% end
SP2 = fliplr(sort(SP1));
% % MUSIC时候用
theta_1 = find(SP == SP2(1));
theta_2 = find(SP == SP2(2));
% % iMUSIC时候用
% theta_1 = find(SP_2def == SP2(1));
% theta_2 = find(SP_2def == SP2(2));
theta_1 = (theta_1*interval-181)/2
theta_2 = (theta_2*interval-181)/2
% %绘图
% % % MUSIC时候用
% plot(angle,SP);
% % % iMUSIC时候用
% % plot(angle,SP_2def);
% xlabel('角度(°)')
% ylabel('幅度(分贝)')
% % axis([-90 90 -60 0])
% grid on
% set(h,'Linewith',2)
% axis([-90 90 -60 0])
% set(gca,'XTick',[-90:30:90])
% SP_2def=abs(SP_2def);
% SPmax=max(SP);
% SP=10*log10(SP/SPmax);
% SP_2def=abs(SP_2def);
% SP_2defmax=max(SP_2def);
% SP_2def=10*log10(SP_2def/SP_2defmax);
% subplot(1,2,2),plot(angle,SP_2def);
% xlabel('angle(degree)')
% ylabel('magnitude(dB)')
% grid on
% set(h,'Linewith',2)
% axis([-90 90 -60 0])
% set(gca,'XTick',[-90:30:90])
ESPRIT和多种改进的MUSIC算法的对比.rar_-baijiahao_MUSIC算法 改进MUSIC算法 对比_espri
版权申诉
5星 · 超过95%的资源 193 浏览量
2022-07-13
21:17:02
上传
评论 9
收藏 3KB RAR 举报
weixin_42653672
- 粉丝: 93
- 资源: 1万+
最新资源
- 3122080306 邹子轩 实验报告二.docx
- 基于STM32 NUCLEO板设计彩色LED照明灯(纯cubeMX开发)(大赛作品,文档完整,可直接运行)
- 发那科工业机器人保养大全
- Sphere.h
- REMD固有时间尺度分解信号分量可视化(Matlab完整源码和数据)
- 嵌入式系统双单片机STC89C52+STC15W104多功能学习板电路图可扩展 适用于单片机初学者和教学
- 基于STM32蓝牙控制小车系统设计(硬件+源代码+论文)大赛作品
- XILINXFPGA源码基于Spartan3火龙刀系列FPGA开发板VGA测试例程
- Java聊天室的设计与实现【尚学堂·百战程序员】
- python中matplotlib教程
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论5