📄 capon.m
字号:
%Capon spectrum.
clear all;
%参数赋值
c=3e+8; %光速
lmda=0.24; %L波段
fc=c/lmda; %载频
N=16; %阵元数
DOA_sigA=10; %信号源1来波方向与阵法线方向夹角
DOA_sigB=30; %信号源2来波方向与阵法线方向夹角
d=0.12; %阵元间距
fs=1e+7; %采样率
chirp_rate=2e+11; %调频率
%计算s(t)*exp(j*2*pi*fc*t)
t=[0:1/fs:0.0001]'; %采样时间
s1=exp(j*pi*chirp_rate*t.^2); %信源1复包络
s2=exp(j*pi*chirp_rate*t.^2); %信源2复包络
% carw=(j*2*pi*fc*t); %载波
% sc1=diag(s)*carw;
% sc2=diag(s)*carw;
%产生方向矢量1(steering vector)
sv_sigA=[];
for i=1:N
sv_sigA=[sv_sigA;exp(j*2*pi*d*(i-1)*sin(DOA_sigA*pi/180)/lmda)];
end
%产生方向矢量2(steering vector)
sv_sigB=[];
for i=1:N
sv_sigB=[sv_sigB;exp(j*2*pi*d*(i-1)*sin(DOA_sigB*pi/180)/lmda)];
end
%N元等距线阵接收信号矢量
x=sv_sigA*transpose(s1)+sv_sigB*transpose(s2)+randn(N,length(t));
%阵列输出协方差矩阵
Rx=zeros(N,N);
for i=1:length(t)
Rx=Rx+x(:,i)*x(:,i)';
end
Rx=Rx/length(t);
%产生capon谱图
CaponSpec=[];
for sita=-pi/2:1/100:pi/2;
sv_sita=[];
for i=1:N
sv_sita=[sv_sita;exp(j*2*pi*d*(i-1)*sin(sita)/lmda)];
end
CaponSpec=[CaponSpec;1/(sv_sita'*inv(Rx)*sv_sita)];
end
%绘图
sita=-pi/2:1/100:pi/2;
sita_deg=sita*180/pi;
CaponSpec_log=10*log10(abs(CaponSpec/max(CaponSpec)));
plot(sita_deg,CaponSpec_log)
grid
axis([-90,90,-10,0])
title('波束形成测向 角谱图')
xlabel('方位角(度)')
ylabel('输出功率(dB)')
hold on
stem(DOA_sigA,-10,'*')
stem(DOA_sigB,-10,':')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -