基于cyclicMUSIC的DOA估计Matlab仿真.docx
- 文档编号:7563603
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:11
- 大小:596.29KB
基于cyclicMUSIC的DOA估计Matlab仿真.docx
《基于cyclicMUSIC的DOA估计Matlab仿真.docx》由会员分享,可在线阅读,更多相关《基于cyclicMUSIC的DOA估计Matlab仿真.docx(11页珍藏版)》请在冰豆网上搜索。
基于cyclicMUSIC的DOA估计Matlab仿真
信息与通信工程学院
阵列信号处理实验报告
(基于cyclic-MUSIC的DOA估计Matlab仿真)
学号:
XXXXXX
专业:
XXXXXX
学生姓名:
XXX
任课教师:
XXX
2015年X月
题目:
基于cyclic-MUSIC的DOA估计Matlab仿真
1.算法简述:
DOA估计算法一般使用与平稳信号,而生活中测量的信号往往是非平稳的。
在非平稳的信号中,有一类信号属于周期平稳信号,利用周期平稳性得到的算法称循环(共轭循环)平稳算法。
循环平稳的循环自相关函数表示为
其中
为循环角频率。
共轭循环平稳的循环自相关函数表示为
基于天线阵列协方差矩阵的特征分类DOA估计算法中,MUSIC算法具有普遍的实用性。
只要已知天线阵的分布形式,无论直线阵还是圆阵,不管阵元是否等间隔分布,都可以得到高分辨率的估计结果。
2.实验内容与结果:
实验先仿真分析BPSK信号的循环平稳和共轭循环平稳性与循环频率和延时的的关系,然后使用12阵元均匀线阵,阵元间距为信号波长的一半,输入信号为1个BPSK信号、设置载波频率10MHz、采样频率50MHz、快拍数1000、信号方位角-4
、信噪比为25dB情况下,得到DOA估计结果。
图1BPSK的循环平稳性
图2BPSK共轭循环平稳性
图3DOA仿真结果
3.仿真分析
由仿真结果可知,BPSK信号具有循环平稳特性,当循环频率为
,信号具有循环平稳性,当循环频率为
,信号具有共轭循环平稳性。
由图一图二可得到合适的循环频率和延时,例如图一,循环频率为
、延时为40Ts时其循环自相关函数值最大。
实验最后针对cyclic-music算法的DOA估计,使用共轭循环平稳性设计算法,并在给定实验条件下仿真,有效估计出了信号的来向。
4.程序
1.程序1:
clearall;
closeall;
clc;
%---------------------------------
%线阵波束形成
%---------------------------------
%参数设置
S_No=1;
sensor_No=12;
azimuth=[40*pi/180];
Fs=40e6;
Fc=10e6;
%干扰功率
RB=1e6;
M=2;%二进制
wavelength=3e8/Fc;
d=wavelength/2;
K=1000;%快拍数
%---------------
%dB
Ps=-0;
SNR=20;
M_No=40;%码速率等于信息速率
Data_No=M_No*Fs/RB;
t=1/Fs:
1/Fs:
Data_No/Fs;
%---------------------------------
%功率转换
Ps_l=10^(Ps/10);
Pn_l=10^((Ps-SNR)/10);
%---------------------------------
%信号生成
bit=randint(1,M_No);%产生信息序列
bitstream=[];
fori=1:
M_No
ifbit(i)==1
bitstream=[bitstream,ones(1,Fs/RB)];
else
bitstream=[bitstream,-ones(1,Fs/RB)];
end
end
Carrier_R=cos(2*pi*Fc*t);
S_R=Carrier_R.*bitstream;
Carrier_I=sin(2*pi*Fc*t);
S_I=Carrier_I.*bitstream;
Signal_R=sqrt(Ps_l)*S_R/sqrt((S_R*S_R'/length(S_R)));
Signal_I=sqrt(Ps_l)*S_I/sqrt((S_I*S_I'/length(S_I)));%生成BPSK复信号
Signal(1,:
)=complex(Signal_R,Signal_I);
%---------------------------------
%{
%---------------------------------
%模拟天线接收
As=zeros(sensor_No,S_No);
fori=1:
sensor_No
forii=1:
S_No
As(i,ii)=exp(-1i*2*pi*sin(azimuth(ii))*d/wavelength*(i-1));
end
end
x=As*Signal;
%---------------------------------
%加噪声
noise_R=randn(sensor_No,Data_No)*sqrt(Pn_l);
noise_I=randn(sensor_No,Data_No)*sqrt(Pn_l);
noise=complex(noise_R,noise_I);
s=x+noise;%}
X=Signal(1,(1:
K));
Nm=length(X(1,:
));
%产生共轭循环矩阵
flagg=1;
Num1=100;
Num2=5;
forn=1:
Num1
forKm=0:
39
Fcj=(n-Num1/2)/Num2*1e6;%选择循环频率
x1=X(1:
Nm-Km)-mean(X(1:
Nm-Km));
x2=(X(1+Km:
Nm)-mean(X(1+Km:
Nm))).*exp(-1i*2*pi*Fcj/Fs*(1:
Nm-Km));
ifflagg==1
xx=x1*x2';%循环平稳算法
xn=xx/(Nm-Km);
elseifflagg==2
xx=x1*conj(x2)';%共轭循环平算法
xn=xx/(Nm-Km);
end
phas=exp(1i*2*pi*Fcj/Fs*Km);
R(n,Km+1)=xn*phas;
end
end
%Max=0;
%form1=1:
Num1
%form2=1:
50
%ifR(m1,m2)>=Max;
%m3=m1;m4=m2;
%Max=R(m1,m2);
%end
%end
%end
%m3=m3-Num1/2
%m4
aaa=-(Num1/2-1)/Num2:
1/Num2:
Num1/2/Num2;
bbb=1:
2:
80;
Rr=abs(R);
meshc(bbb,aaa,Rr);ylabel('循环频率');
xlabel('延时');
zlabel('循环频率模');
2.程序2:
clearall;
closeall;
clc;
%---------------------------------
%线阵musicDOA
%---------------------------------
%参数设置
Signal_No=1;
Interference_No=1;
S_No=Signal_No+Interference_No;
sensor_No=8;
azimuth=[0*pi/1805*pi/180];
Fs=30e6;
Fc=10e6;
F1=[8e6];%干扰功率
theta=[1045529343]*pi/180;
RB=2e6;
M=2;%二进制
wavelength=3e8/Fc;
d=wavelength/2;
K=300;%快拍数
%---------------
%dB
Ps=-30;
SNR=10;
SIR=00;
M_No=40;%码速率等于信息速率
Data_No=M_No*Fs/RB;
t=1/Fs:
1/Fs:
Data_No/Fs;
%---------------------------------
%forxunhuan=1:
1
%mean1=0;
%mean2=0;
%forSNR=1:
20
%---------------------------------
%功率转换
Ps_l=10^(Ps/10);
Pi_l=10^((Ps-SIR)/10);
Pn_l=10^((Ps-SNR)/10);
%---------------------------------
%信号生成
bit=randint(1,M_No);%产生信息序列
bitstream=[];
fori=1:
M_No
ifbit(i)==1
bitstream=[bitstream,ones(1,Fs/RB)];
else
bitstream=[bitstream,-ones(1,Fs/RB)];
end
end
Carrier_R=cos(2*pi*Fc*t);
S_R=Carrier_R.*bitstream;
Carrier_I=sin(2*pi*Fc*t);
S_I=Carrier_I.*bitstream;
Signal_R=sqrt(Ps_l)*S_R/sqrt((S_R*S_R'/length(S_R)));
Signal_I=sqrt(Ps_l)*S_I/sqrt((S_I*S_I'/length(S_I)));%生成BPSK复信号
Signal(1,:
)=complex(Signal_R,Signal_I);
%---------------------------------
%产生干扰
%I_R=sqrt(2*Pi_l)*cos(2*pi*F1*t);
%I_I=sqrt(2*Pi_l)*sin(2*pi*F1*t);
fori=2:
Interference_No+1
Signal(i,:
)=sqrt(2*Pi_l)*complex(sin(2*pi*F1(i-1)*t+theta(i)),sin(2*pi*F1(i-1)*t+theta(i)));
end
%---------------------------------
%模拟天线接收
As=zeros(sensor_No,S_No);
fori=1:
sensor_No
forii=1:
S_No
As(i,ii)=exp(-1i*2*pi*sin(azimuth(ii))*d/wavelength*(i-1));
end
end
x=As*Signal;
%---------------------------------
%加噪声
noise_R=randn(sensor_No,Data_No)*sqrt(Pn_l);
noise_I=randn(sensor_No,Data_No)*sqrt(Pn_l);
noise=complex(noise_R,noise_I);
s=x+noise;
x1=s(:
(1:
K));
R=x1*x1'/K;
[V,D]=eig(R);
D1=diag(D);
Un=V(:
1:
sensor_No-S_No);
Gn=Un*Un';
searching_doa=-90:
0.1:
90;%线阵的搜索范围为-90~90度
fori=1:
length(searching_doa)
a_theta=exp(-j*(0:
sensor_No-1)'*2*pi*d*sin(pi*searching_doa(i)/180)/wavelength);
Pmusic(i)=1./abs((a_theta)'*Gn*a_theta);
end
plot(searching_doa,10*log(Pmusic),'r');
xlabel('入射角/degree');
ylabel('空间谱/dB');
legend('MusicSpectrum');
title('经典MUSIC估计');gridon;
%
%---------------------------------------------%
%查最大值%
%---------------------------------------------%
%Pmax_db1=0;
%fori=1:
909
%ifPmusic(i)>Pmax_db1
%Pmax_db1=Pmusic(i);
%Pmax_pitching1=i;
%end
%end
%Pmax_db2=0;
%fori=910:
1801
%ifPmusic(i)>Pmax_db2
%Pmax_db2=Pmusic(i);
%Pmax_pitching2=i;
%end
%end
%err1(SNR)=((Pmax_pitching1-1)/10-90)^2;
%err2(SNR)=((Pmax_pitching2-1)/10-90-5)^2;
%end
%mean1=mean1+err1;
%mean2=mean2+err2;
%end
%mse1=mean1/1000;
%mse2=mean2/1000;
%subplot(211);plot(mse1);xlabel('SNR(dB)')
%ylabel('均方误差')
%subplot(212);plot(mse2);xlabel('SNR(dB)')
%ylabel('均方误差')
%figure
(2);
%polar((-pi/2:
pi/1800:
pi/2),10*log(Pmusic)+33);figure(gcf);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 cyclicMUSIC DOA 估计 Matlab 仿真
![提示](https://static.bdocx.com/images/bang_tan.gif)