资源简介
dbf中的lcmv算法,对应于《一种低旁瓣数字波束形成方法》中的面阵仿真
代码片段和文件信息
clear all;
%阵元大小
N=8;
M=8;
T=512;%快拍数
c=3*10^8;%光速
f=3*10^8;%频率
d=c/f/2;
wave=c/f;%波长
fs1=0.5*10^6; %信号频率
f1=0.7*10^6; %干扰1频率
f2=0.8*10^6;%干扰2频率
fs=4*10^6;
SNR=-10;%信噪比,信号功率为单位1
SIR=0;%信干比
pn= 1/10^(SNR/10); %噪声功率
noise=wgn(N*MTpn); %噪声信号
t=0:1:T-1
phi=45*pi/180; %俯仰角
theta_s =200*pi/180; %信号方向
theta_i1=60*pi/180; %干扰方向1
theta_i2=230*pi/180; %干扰方向2
for n=0:1:N-1
for m=0:1:M-1
a_theta_s(m+n*M+11) = exp(j*2*pi*n*sin(phi).*cos(theta_s)*d/wave+j*2*pi*m*sin(phi).*sin(theta_s)*d/wave); %信号导向矢量 N*M * 1
a_theta_i1(m+n*M+11) = exp(j*2*pi*n*sin(phi).*cos(theta_i1)*d/wave+j*2*pi*m*sin(phi).*sin(theta_i1)*d/wave);%干扰导向矢量 N*M * 1
a_theta_i2(m+n*M+11) = exp(j*2*pi*n*sin(phi).*cos(theta_i2)*d/wave+j*2*pi*m*sin(phi).*sin(theta_i2)*d/wave);%干扰导向矢量 N*M * 1
end
end
%信干比为0时是单位增益
S0=exp(j*2*pi*fs1*t/fs); %信号
%J1=exp(j*2*pi*f1*t/fs); %干扰信号1
J1=8*exp(j*2*pi*f1*t/fs); %改变干扰功率进行对比
%J2=exp(j*2*pi*f2*t/fs); %干扰信号2
J2=8*exp(j*2*pi*f2*t/fs); %改变干扰功率进行对比
A=[a_theta_sa_theta_i1a_theta_i2];
f=[100]‘;%约束条件
Rxx(N*MN*M)=0;
S=a_theta_s*S0; % N*M * T
I1=a_theta_i1*J1; % N*M * T
I2=a_theta_i2*J2; % N*M * T
%X=S+I1+noise; %当只有一个干扰信号时的阵列接收信号
X=S+I1+I2+noise; %当有两个干扰信号时的阵列接收信号
for i=1:T
Rxx=Rxx+X(:i)*X(:i)‘/T; %生成信号(包括干扰)的自相关矩阵(平均)
end
invRxx=inv(Rxx);
Wopt=invRxx*A*inv(A‘*invRxx*A)*f;
theta_angle=0:1:360;
theta_angle_=theta_angle*pi/180;
Theta_angle_N=length(theta_angle);
for n=0:1:N-1
for m=0:1:M-1
a(m+n*M+1:)=exp(j*2*pi*n*sin(phi).*cos(theta_angle_)*d/wave+j*2*pi*m*sin(phi).*sin(theta_angle_)*d/wave);
end;
end;
F(1:)=Wopt‘*a;
H(1:)=abs(F(1:));
G(1:)=H(1:)./max(H(1:));
Fa(1:)=20*log10(G(1:));
%%%%%%%%%%%%%重复5次%%%%%%%%%%%%%%%%
for k=1:5
% 求出旁瓣的平均值(包含栅瓣)
G_d=zeros(Theta_angle_N1);
for i=2:1:(Theta_angle_N-1)
if ((G(ki)>G(ki-1))&&(G(ki)>G(ki+1)))
G_d(i)=G(ki);
end
end
[aabb]=max(G_d);
G_d(bb)=0;
[aabb]=max(G_d)
theta_q(k)=((bb-1)*1)*pi/180
%%%%%%%%%%%增加约束%%%%%%%%%%%%%%%
for n=0:1:N-1
for m=0:1:M-1
a_theta_q(m+n*M+1k)=exp(j*2*pi*n*sin(phi).*cos(theta_q(k))*d/wave+j*2*pi*m*sin(phi).*sin(theta_q(k))*d/wave);%旁瓣方向导向矢量 N*M * 1
end;
end;
A(:k+3)=a_theta_q(:k);
f(k+3)=0.0001%约束条件
Wopt=invRxx*A*inv(A‘*invRxx*A)*f;%得到最优权值
F(k+1:)=Wopt‘*a;
H(k+1:)=abs(F(k+1:));
G(k+1:)=H(k+1:)./max(H(k+1:));
Fa(k+1:)=20*log10(G(k+1:));
end
%%%%%%%%%画图%%%%%%%%%%%%%%%%
%plot(theta_angleFa(1:));
hold on
plot(theta_angleFa(5:));
xlabel(‘角度(deg)‘);
ylabel(‘增益(dB)‘);
axis([0 360 -90 0]);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2898 2012-07-05 22:00 lcmv.m
----------- --------- ---------- ----- ----
2898 1
相关资源
- 采用FFT方法实现数字接收多波束
- 雷达数字配相法多波束形成仿真程序
- 波束形成Matlab程序218509
- 波束形成matlab代码及方程图
- 很多种波束形成算法 一定有用
- 自适应波束形成程序集合
- CBF MVDR LMS波束形成的Matlab算法
- 智能天线MATLAB版中文
- 自己写的几个常用自适应波束形成程
- 聚焦多波束成像matlab
- 阵列扫描matlab
- MVDR波束形成
- 波束形成算法
- SINR自适应波束形成器matlab代码
- uuu222223241414.m
- MVDRCapon波束形成DO估计.zip
- DBF的matlab仿真程序
- 自适应波束形成
- 均匀线阵波束形成
- 近场聚焦波束形成
- 波束形成程序
- MATLAB常规均匀圆阵波束形成
- LMS自适应波束形成matlab代码
- 数字多波束形成 matlab
- 窄带波束形成.txt
- LMS自适应波束形成MATLAB程序
- LMS自适应波束形成算法
- 任意阵列的常规波束形成matlab程序
- 麦克风阵列语音增强源程序
- 子阵均匀波束形成
评论
共有 条评论