capon_example.m

来自「ULA1一个天线阵的方向图,可以用来估计信号的来波方向,face_directi」· M 代码 · 共 52 行

M
52
字号
clear;close all;clc;
%=========参数初始化=========%
num=8;%阵元数
f=10e9;%信号载波频率
fs1=20;%信号频率
finF1=10;%干扰1频率
finF2=70;%干扰2频率
a1=90;%信号方向
inF1=30;%干扰1方向
inF2=150;%干扰2方向
c=3e8;%光速
lmda=c/f;%波长
d=lmda/2;%阵元间距
thita=0:1:180;
fs=500;
Ts=[0:1/fs:1];
snapshot=length(Ts);
SNR=10;%信噪比
INR1=30;%干噪比
INR2=0;%干噪比
s=10^(SNR/20)*sin(2*pi*fs1*Ts);%信号包络
s_inF1=10^(INR1/20)*sin(2*pi*finF1*Ts);%干扰1包络
s_inF2=10^(INR2/20)*sin(2*pi*finF2*Ts);%干扰1包络
athita=exp(j*2*pi*d/lmda*cos(a1*pi/180)*[0:num-1]).';%信号导向矢量
athita_inF1=exp(j*2*pi*d/lmda*cos(inF1*pi/180)*[0:num-1]).';%干扰1导向矢量
athita_inF2=exp(j*2*pi*d/lmda*cos(inF2*pi/180)*[0:num-1]).';%干扰2导向矢量
x=athita*s+athita_inF1*s_inF1+athita_inF2*s_inF2+sqrt(0.5)*(randn(num,snapshot)+j*randn(num,snapshot));%输入
%===========Capon=============%
R=x*x'/snapshot;
Wopt=inv(R)*athita/(athita'*inv(R)*athita);
for i=1:length(thita)
    y(i)=Wopt'*exp(j*2*pi*d/lmda*cos(thita(i)*pi/180).*[0:num-1]).';
end
figure(1)
plot(thita,20*log10(abs(y)/max(abs(y))));grid;hold on;
plot(a1,-50:0,'.-')
plot(inF1,-50:0,'.-')
plot(inF2,-50:0,'.-')
title('capon方向图')
xlabel('方位角(度)')
ylabel('输出功率(dB)')
%===========Capon_DOA============%
for i=1:length(thita)
    A=exp(j*2*pi*d/lmda*cos(thita(i)*pi/180).*[0:num-1]).';
    Scapon(i)=1/(A'*inv(R)*A);
end
figure(2)
plot(thita,20*log10(abs(Scapon)));grid;hold on;
title('capon测角')
xlabel('方位角(度)')
ylabel('输出功率(dB)')

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?