📄 capon_example.m
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -