自适应波束形成Matlab仿真
自适应波束形成Matlab仿真
信息与通信工程学院阵列信号处理实验报告(自适应波束形成Matlab仿真)学号:XXXXXX专业:XXXXXX学生姓名:XXX任课教师:XXX2015年X月题目:自适应波束形成Matlab 仿真1. 算法简述:自适应波束形成,源于自适应天线的一个概念。
接收端的信号处理,可以通过将各阵元输出进行加权求和,将天线阵列波束“导向”到一个方向上,对期望信号得到最大输出功率的导向位置即给出波达方向估计。
波束形成算法是在一定准则下综合个输入信息来计算最优权值的数学方法,线性约束最小方差准则(LCMV )是最重要、最常用的方法之一。
LCMV 是对有用信号形式和来向完全已知,在某种约束条件下使阵列输出的方差最小。
该准则属于广义约束,缺点是需要知道期望分量的波达方向。
准则的代价函数为Rw w w J H )(=,约束条件为H ()θ=w a f ;最佳解为f c R c c R w 11H 1H ][---。
2. 波束形成原理以一维M 元等距离线阵为例,如图1所示,设空间信号为窄带信号,每个通道用一个附加权值系数来调整该通道的幅度和相位。
图1 波束形成算法结构图这时阵列的输出可以表示为:*1()()()Mi i iy t w x t θ==∑ 如果采用矢量来表示各阵元输出及加权系数,即T 12()[()()()]M x t x t x t x t = T 12()[()()()]M w w w w θθθθ=()x n()x n()x n那么,阵列的输出也可以用矢量表示为H ()()()y t t θ=w x为了在某一方向θ上补偿各阵元之间的时延以形成一个主瓣,常规波束形成器在期望方向上的加权矢量可以构成为(1)T ()[1e e ]j j M w ωτωτθ---=观察此加权矢量,发现若空间只有一个来自方向θ的信号,其方向矢量()αθ的表示形式与此权值矢量相同。
则有H H ()()()()()y t t t θαθ==w x x这时常规波束形成器的输出功率可以表示为2H H ()[()]()()()()CBF P E y t θθθαθαθ===w Rw R式中矩阵R 为阵列输出()t x 的协方差矩阵。
波束形成Matlab程序
1?均匀线阵方向图%8阵元均匀线阵方向图,来波方向为clc; clear all; close all;0度imag=sqrt(_1);element_num=8;% 阵元数为8d_lamda=1/2;%阵元间距d与波长lamda的关系theta=li nspace(-pi/2,pi/2,200);theta0=0;% 来波方向w=exp(imag*2*pi*dl_lamda*sin(theta0)*[0:eleme nt_nu m-1]');for j=1:le ngth(theta)a=exp(imag*2*pi*dd_l amda*si n(theta(j))*[0:eleme nt_nu m-1]'); p(j)=w'*a;end figure;plot(theta,abs(p)),grid on xlabel('theta/radia n')ylabel('amplitude')title('8 阵元均匀线阵方向图')°2 8阵元均匀线阵方向图7654321-15 -1 -0 5 0 06thetaradian1 158当来波方向为45度时,仿真图如下8阵元均匀线阵方向图如下,来波方向为0 度,20log (dB)8阵元均苛銭阵方向图来波方向为0度随着阵元数的增加,波束宽度变窄,分辨力提高:仿真图如下Q d pE =ro 二2. 波束宽度与波达方向及阵元数的关系clcclear allclose allima=sqrt(-1);element_num1=16; %阵元数element_num2=128;element_num3=1024;lamda=0.03; %波长为0.03 米d=1/2*lamda; % 阵元间距与波长的关系theta=0:0.5:90; forj=1:length(theta);fai(j)=theta(j)*pi/180-asin(sin(theta(j)*pi/180)-lamda/(element_n um1*d));psi(j)=theta(j)*pi/180-asin(sin(theta(j)*pi/180)-lamda/(element_n um2*d));beta(j)=theta(j)*pi/180-asin(sin(theta(j)*pi/180)-lamda/(element_ num3*d));endfigure; plot(theta,fai,'r',theta,psi,'b',theta,beta,'g'),grid on xlabel('theta'); ylabel('Width in radians')title(' 波束宽度与波达方向及阵元数的关系') 仿真图如下:。
matlab在自适应信号处理方面的应用 - 副本
1波束宽度与波达方向及阵元数的关系clcclear allclose allima=sqrt(-1);element_num1=16; %阵元数element_num2=128;element_num3=1024;lamda=0.03; %波长为0.03米d=1/2*lamda; %阵元间距与波长的关系theta=0:0.5:90;for j=1:length(theta);fai(j)=theta(j)*pi/180-asin(sin(theta(j)*pi/180)-lamda/(element_num1*d));psi(j)=theta(j)*pi/180-asin(sin(theta(j)*pi/180)-lamda/(element_num2*d));beta(j)=theta(j)*pi/180-asin(sin(theta(j)*pi/180)-lamda/(element_num3*d)); endfigure;plot(theta,fai,'r',theta,psi,'b',theta,beta,'g'),grid onxlabel('theta');ylabel('Width in radians')title('波束宽度与波达方向及阵元数的关系')仿真图如下:3. 当阵元间距 时,会出现栅瓣,导致空间模糊。
仿真图如下:4. 类似于时域滤波,天线方向图是最优权的傅立叶变换仿真程序和仿真图如下:clcclear allclose allima=sqrt(-1);element_num=32; %阵元数source_num=1; %信源数d_lamda=1/2; %阵元间距与波长的关系theta=linspace(-pi/2,pi/2,200);theta0=0; %来波方向w=exp(ima*2*pi*d_lamda*sin(theta0)*[0:element_num-1]');for j=1:length(theta);a=exp(ima*2*pi*d_lamda*sin(theta(j))*[0:element_num-1]');p(j)=w'*a;endfigure;subplot(1,2,1)plot(theta,abs(p)),grid onxlabel('theta/radian')ylabel('amplitude')/2d λ>title('按定义的方向图')pfft=fftshift(fft(w,128));subplot(1,2,2)plot(linspace(-pi/2,pi/2,128),abs(pfft)),grid onxlabel('theta/radian')ylabel('FFT_amplitude')title('最优权的傅里叶变换')5.%最大信噪比准则方向图和功率谱clc;clear all;close all;ima=sqrt(-1);element_num=8; %阵元数为8d_lamda=1/2; %间距为半波长theta=-90:0.5:90; %范围theta0=0; %来波方向theta1=20; %干扰方向L=512; %采样单元数for i=1:Lamp0=10*randn(1);amp1=200*randn(1);ampn=1;s(:,i)=amp0*exp(ima*2*pi*1/2*sin(theta0*pi/180)*[0:element_num-1]');j(:,i)=amp1*exp(ima*2*pi*1/2*sin(theta1*pi/180)*[0:element_num-1]');n(:,i)=ampn*(randn(element_num,1)+ima*randn(element_num,1));endRs=1/L*s*s'; %信号自相关矩阵Rnj=1/L*(j*j'+n*n'); %干扰+噪声的自相关矩阵[V,D]=eig(Rs,Rnj); %(Rs,Rnj)的广义特征值和特征向量[D,I]=sort(diag(D)); %排序Wopt=V(:,I(8)); %最优权矢量for j=1:length(theta)a=exp(ima*2*pi*d_lamda*sin(theta(j)*pi/180)*[0:element_num-1]');f(j)=Wopt'*a;p(j)=a'*Rs*a+a'*Rnj*a;endF=20*log10(abs(f)/max(max(abs(f))));P=20*log10(abs(p)/max(max(abs(p))));subplot(121)plot(theta,F);grid on;hold onplot(theta0,-50:0,'.');plot(theta1,-50:0,'.')xlabel('theta/0');ylabel('F in dB');title('max-SNR 方向图');axis([-90 90 -50 0]);hold onsubplot(122)plot(theta,P,'r');grid onxlabel('theta/0');ylabel('功率in dB');title('max-SNR功率谱')仿真图如下:6.%ASC旁瓣相消----MSE准则clc;close all;clear allima=sqrt(-1);M=32; %辅助天线的数目d_lamda=.5;theta0=-30; %来波方向theta1=60; %干扰方向L=512; %采样单元数s=zeros(1,512); %预划分一个区域for ii=1:L;amp0=1*randn(1); %信号的幅度随机产生,保证信号之间是不相关的amp1=200*randn(1);ampn=1;jam(:,ii)=amp1*exp(ima*2*pi*0.5*sin(theta1*pi/180)*[0:M-1]')+ampn*(randn(M,1) +ima*randn(M,1)); %干扰+噪声s(ii)=amp0*exp(ima*2*pi*0.5*sin(theta0*pi/180))+amp1*exp(ima*2*pi*0.5*sin(thet a1*pi/180))+ampn*(randn(1,1)+ima*randn(1,1));%接收信号(信号+干扰+噪声)s0(ii)=amp0*exp(ima*2*pi*0.5*sin(theta0*pi/180));endRx=1/L*jam*jam'; %噪声自相关矩阵,相当于X(t)r_xd=1/L*jam*s';Wopt=pinv(Rx)*r_xd;delta=s0-(s-Wopt'*jam);delta1=abs(mean(delta.^2)-(mean(delta)).^2) %方差theta=linspace(-pi/2,pi/2,200);for jj=1:length(theta)a=exp(ima*2*pi*.5*sin(theta(jj))*[0:M-1]');f(jj)=Wopt'*a;endF=20*log10(abs(f)/(max(max(abs(f)))));figure(1)plot(theta*180/pi,F),grid on,hold onplot(theta0,-50:0,'.')plot(theta1,-50:0,'.')xlabel('theta/o');ylabel('F/dB');title('MSE准则下的方向图')axis([-90 90 -50 0]);%可为x轴和y轴设置一个极限范围仿真图如下:7. %线性约束最小方差(LCMV)准则clc;clear all ;close all;ima=sqrt(-1);element_num=8; %阵元数d_lamda=1/2; %阵元间距与波长的关系theta=-90:0.5:90-0.3; %搜索范围theta0=0; %三个信号源的来波方向theta1=30;theta2=60;L=512; %采样单元数for i=1:L;amp0=10*randn(1);amp1=100*randn(1);amp2=10*randn(1);ampn=10;x(:,i)=amp0*exp(ima*2*pi*1/2*sin(theta0*pi/180)*[0:element_num-1]')+...amp1*exp(ima*2*pi*1/2*sin(theta1*pi/180)*[0:element_num-1]')+...amp2*exp(ima*2*pi*1/2*sin(theta2*pi/180)*[0:element_num-1]')+...ampn*(randn(element_num,1)+ima*randn(element_num,1));endRx=1/L*x* x';steer1=exp(ima*2*pi*1/2*sin(theta0*pi/180)*[0:element_num-1]')steer2=exp(ima*2*pi*1/2*sin(theta1*pi/180)*[0:element_num-1]')steer3=exp(ima*2*pi*1/2*sin(theta2*pi/180)*[0:element_num-1]')C=[steer1 steer2 steer3];F=[1 0 1]'; %把三个方向都作为来波方向w=inv(Rx)*C*(inv(C'*inv(Rx)*C))*F;for j=1:length(theta);a=exp(ima*2*pi*d_lamda*sin(theta(j)*pi/180)*[0:element_num-1]');f(j)=w'*a;p(j)=1/(a'*inv(Rx)*a);endf=10*log10(abs(f)/(max(max(abs(f)))));figure(1)subplot(121)plot(theta,f),grid on,hold onplot(theta0,-20:0,'.')plot(theta1,-20:0,'.')plot(theta2,-20:0,'.')xlabel('theta/o');ylabel('F/dB');title('Capon beamforming方向图')axis([-90 90 -20 0]);%可为x轴和y轴设置一个极限范围P=10*log10(abs(p)/(max(max(abs(p)))));subplot(122)plot(theta,P),grid on,hold onplot(theta0,-20:0,'.')plot(theta1,-20:0,'.')plot(theta2,-20:0,'.')xlabel('theta/o');ylabel('功率/dB');title('Capon beamforming功率谱')仿真图如下:8. %Capon beamformingClc;clear all ;close all;ima=sqrt(-1);element_num=8; %阵元数d_lamda=1/2; %阵元间距与波长的关系theta=-90:0.5:90; %范围theta0=0; %来波方向theta1=20; %干扰方向theta2=60; %干扰方向L=1000; %采样单元数for i=1:L;amp0=10*randn(1);%信号的幅度随机产生,保证信号之间是不相关的amp1=200*randn(1);amp2=200*randn(1);ampn=3;x(:,i)=amp0*exp(ima*2*pi*1/2*sin(theta0*pi/180)*[0:element_num-1]')+...amp1*exp(ima*2*pi*1/2*sin(theta1*pi/180)*[0:element_num-1]')+...amp2*exp(ima*2*pi*1/2*sin(theta2*pi/180)*[0:element_num-1]')+...ampn*(randn(element_num,1)+ima*randn(element_num,1));endRx=1/L*x* x';R=inv(Rx);steer=exp(ima*2*pi*1/2*sin(theta0*pi/180)*[0:element_num-1]');w=R*steer/(steer'*R*steer);%Capon最优权矢量for j=1:length(theta);a=exp(ima*2*pi*d_lamda*sin(theta(j)*pi/180)*[0:element_num-1]');f(j)=w'*a;p(j)=1/(a'*R*a);endF=20*log10(abs(f)/(max(max(abs(f)))));P=20*log10(abs(p)/(max(max(abs(p)))));%此处是功率的对数形式Figure;subplot(121)plot(theta,F),grid on,hold onplot(theta0,-50:0,'.')plot(theta1,-50:0,'.')plot(theta2,-50:0,'.')xlabel('theta/o');ylabel('F/dB');title('Capon beamforming方向图')axis([-90 90 -50 0]);subplot(122)plot(theta,P),grid onxlabel('theta/o');ylabel('功率/dB');title('Capon beamforming功率谱')仿真图如下:9.%不同方法估计协方差矩阵的Capon波束形成clc;clear all;close all;ima=sqrt(-1);element_num=8; %阵元数为8d_lamda=1/2; %间距为半波长theta=-90:0.5:90; %范围theta0=0; %来波方向theta1=50; %干扰方向L=512;%采样单元数for i=1:Lamp0=10*randn(1);amp1=50*randn(1);ampn=0.5;s(:,i)=amp0*exp(ima*2*pi*1/2*sin(theta0*pi/180)*[0:element_num-1]');j(:,i)=amp1*exp(ima*2*pi*1/2*sin(theta1*pi/180)*[0:element_num-1]');n(:,i)=ampn*exp(ima*2*pi*randn(1)*[0:element_num-1]');endRx=1/L*(s+j+n)*(s+j+n)';%接收信号自相关矩阵Rnj=1/L*(j+n)*(j+n)';%干拢+噪声的自相关矩阵e=exp(ima*2*pi*d_lamda*sin(theta0*pi/180)*[0:element_num-1]');%来波方向信号Wopt_Rx=inv(Rx)*e/(e'*inv(Rx)*e);%采用接收信号的权矢量Wopt_Rnj=inv(Rnj)*e/(e'*inv(Rnj)*e);%采用干拢+噪声信号的权矢量for j=1:length(theta)a=exp(ima*2*pi*d_lamda*sin(theta(j)*pi/180)*[0:element_num-1]');f1(j)=Wopt_Rx'*a;f2(j)=Wopt_Rnj'*a;endF1=20*log10(abs(f1)/max(max(abs(f1))));F2=20*log10(abs(f2)/max(max(abs(f2))));figure;plot(theta,F1,theta,F2,'r'),grid on;hold onplot(theta0,-50:0,'.');plot(theta1,-50:0,'.')xlabel('theta/0');ylabel('F(1,2)/dB');title('不同方法估计协方差矩阵的Capon波束形成');axis([-90 90 -50 0]);仿真图如下:10.%多点约束的Capon波束形成和方向图clc;clear all ;close all;ima=sqrt(-1);element_num=8; %阵元数d_lamda=1/2; %阵元间距与波长的关系theta=-90:0.3:90; %搜索范围theta0=0; %来波方向theta1=20; %干扰方向theta2=50; %干扰方向L=512; %采样单元数Rx=zeros(element_num,element_num);%产生协方差矩阵for i=1:L;amp0=10*randn(1);amp1=10*randn(1);amp2=50*randn(1);namp=0.5*randn(1);%噪声的幅度随机产生,保证噪声与信号之间是不相关的J(:,i)=amp1*exp(ima*2*pi*1/2*sin(theta1*pi/180)*[0:element_num-1]')+...amp2*exp(ima*2*pi*1/2*sin(theta2*pi/180)*[0:element_num-1]')+...namp*exp(ima*2*pi*randn(1)*[0:element_num-1]');x(:,i)=amp0*exp(ima*2*pi*1/2*sin(theta0*pi/180)*[0:element_num-1]')+...J(:,i);%表示接收信号endRx=Rx+1/L*x*x';R=inv(Rx);w=amp0*exp(ima*2*pi*1/2*sin(theta0*pi/180)*[0:element_num-1]')+...amp2*exp(ima*2*pi*1/2*sin(theta2*pi/180)*[0:element_num-1]')+...amp1*exp(ima*2*pi*1/2*sin(theta1*pi/180)*[0:element_num-1]');for j=1:length(theta);a=exp(ima*2*pi*d_lamda*sin(theta(j)*pi/180)*[0:element_num-1]');f(j)=w'*a;p(j)=1/(a'*R*a);endF=10*log10(abs(f)/max(max(f)));%取对数的方向图P=10*log10(abs(p)/max(max(p)));%取对数的功率谱估计figure;subplot(121)plot(theta,F),grid on,hold onplot(theta0,-50:0,'.');plot(theta1,-50:0,'.');plot(theta2,-50:0,'.');xlabel('theta/o');ylabel('F/dB');title('capon beamforming方向图')subplot(122)plot(theta,P),grid on,hold onplot(theta0,-50:0,'.');plot(theta1,-50:0,'.');plot(theta2,-50:0,'.');xlabel('theta/o');ylabel('P/dB');title('capon beamforming功率谱')仿真图如下:大作业%自适应波束形成方向图clc;clear all;close all;ima=sqrt(-1);element_num=8; %阵元数c=3e8;f=500e6;lamda=c/f;d=1/2*lamda; %阵元间距与波长的关系theta=-90:0.5:90; %范围theta0=0; %来波方向theta1=45; %干扰方向theta2=60; %干扰方向L=512; %采样单元数for i=1:L;amp0=10*randn(1);%信号的幅度随机产生,保证信号之间是不相关的amp1=100*randn(1);amp2=100*randn(1);ampn=10;x(:,i)=amp0*exp(ima*2*pi*1/2*sin(theta0*pi/180)*[0:element_num-1]')+...amp1*exp(ima*2*pi*1/2*sin(theta1*pi/180)*[0:element_num-1]')+...amp2*exp(ima*2*pi*1/2*sin(theta2*pi/180)*[0:element_num-1]')+...ampn*(randn(element_num,1)+ima*randn(element_num,1));%产生阵列信号endRx=1/L*x* x';steer1=exp(ima*2*pi*1/2*sin(theta0*pi/180)*[0:element_num-1]')steer2=exp(ima*2*pi*1/2*sin(theta1*pi/180)*[0:element_num-1]')steer3=exp(ima*2*pi*1/2*sin(theta2*pi/180)*[0:element_num-1]')C=[steer1 steer2 steer3];F=[1 0 0]';%把0度方向作为来波方向w=inv(Rx)*C*(inv(C'*inv(Rx)*C))*F;for j=1:length(theta);a=exp(ima*2*pi*1/2*sin(theta(j)*pi/180)*[0:element_num-1]');f(j)=w'*a;p(j)=1/(a'*inv(Rx)*a);endF=20*log10(abs(f)/(max(max(abs(f)))));P=20*log10(abs(p)/(max(max(abs(p)))));%此处是功率的对数形式figuresubplot(121)plot(theta,P),grid on,hold onxlabel('theta/o');ylabel('F/dB');title('阵列信号方向图')axis([-90 90 -50 0]);subplot(122)plot(theta,F),grid on,hold on;plot(theta0,-50:0,'.')plot(theta1,-50:0,'.')plot(theta2,-50:0,'.')xlabel('theta/o');ylabel('功率/dB');axis([-90 90 -50 0]);title('自适应波束形成方向图')仿真图如下:当采样数L=2048时仿真图如下:当采样数L=2048时仿真图如下:当L=5 12,幅度为amp0=10*randn(1);amp1=200*randn(1);amp2=200*randn(1);ampn=10;时仿真图如下:当L=512,幅度为amp0=100*randn(1); amp1=200*randn(1); amp2=200*randn(1); ampn=10;时仿真图如下:当L=512,幅度为amp0=100*randn(1); amp1=10*randn(1);amp2=10*randn(1); ampn=10;时仿真图如下:当L=2048,幅度为amp0=10*randn(1);amp1=50*randn(1);amp2=50*randn(1); ampn=10;时仿真图如下:当L=2048,幅度amp0=10*randn(1);amp1=500*randn(1); amp2=500*randn(1); ampn=10;时仿真图如下:。
基于MATLAB的数字波束合成算法的仿真
本 科 毕 业 论 文
1.2 国内外发展状况
智 能 天 线 技术 的 优 越 性 能 使 之 成为 未 来 移 动 通 信 的 发展 的 主 要 方 向 之 一 ,在 全 球范 围 内 都 得 到 了 广 泛 的研 究 。美 国 ,日 本 和 欧 洲 等 国 都 非 常 重 视 未 来 移 动 通信 中 智 能 天 线 的 作 用,己 经 开 展 了 大 量 的理 论 分 析 和 研 究。 欧 洲 通 信 委员 会 (CEC) 在 RACE 计 划 中 实 施 了 智 能 天 线技 术 的 第 一 阶 段 研 究 , 由 德 国、 英 国 、 丹 麦 和 西 班牙 合 作 完 成 。 该 项 目组 在 DECT 基 站
抑 制 , 其 性 能 优于 交 换 束 天 线 。 自 适 应 天 线 是 一种 控 制 反 馈 系 统 ,它 根 据 一 定 的 准 则 ,采 用 数 字 信 号 处理技术形成天线阵列的加权向量,通过对接收到的信号进行加权合并, 在 有 用 信 号 方 向上 形 成 主 波 束 ,而 在 干 扰 方 向 上 形 成 零 陷,从 而 提 高 信 号 的 输 出 信 噪 比。自 适 应 天 线 能 够 根 据信 号 环 境 自 动 形 成 最佳 阵 列 波 束 的 天 线 ,通 过 在 天 线 中 引 入 自 适 应 信 号 处理 ,实 现 噪 声 抵 消、在 干 扰 入 射 方 向 上 产 生 零 陷 以 及主 波 束 跟 踪 有 用 信 号,从 而 使 天 线 阵 具 有智 能 接 收 的 能 力。 智 能 天 线 在 天 线阵 列 技 术 的 基 础 上,为 移 动 通 信 系 统 设 计提 供 空 间 信 号 处 理 的 自 由 度,从 而 可 以 使 系 统 性能 得 到 显 著 提 高。它 利 用 阵 列 天 线 波 束的方向性, 通 过 波 束 选 择 切 换 或 自适 应 波 束 控 制 ,使 波 束 对 准 目 标 方 向, 自 动 跟 踪 用 户 目标 的 移 动 ,使 零线 陷 对 准 干 扰 方 向 ,并 可 自 适 应 电 波 传 播 环 境 的 变 化 ,优 化 天 线 阵 列 方 向 图,从 而 增 强 有 效 信 号,抑 制 同 道 干 扰 和 多 址 干 扰 , 达 到显 著 提 高 信 干 比 , 增强 通 信 系 统 容 量 的 目的 。 智 能 天 线 是 一 门综 合 性 很 强 的 技 术。它 涉 及 到 天 线 技 术、无 线 电 传 播 技 术 、信 号检 测 与 处 理 等 多 学 科 的 背景 知 识 。虽 然 天线 阵 列 和 射 频 前 段 在 智 能 天 线 中 是 很重 要 的 设 备,但 智 能 天 线 技 术 最 重 要 的 部分 在 于 基 带 处 理 部, 其 核 心 问题 就 是 信 号 的 处 理 。 而 信 号 处 理 在 现 代 通 信, 生物医学工程, 地 质 勘 探 ,射 电 天 文 ,遥 感 遥 测和 雷 达 导 航 等 科 学 技 术 领域 中 都 得 到 了 极 其 广 泛 的 应 用。信 号 处 理 所 包 含 的 内容 非 常 丰 富 ,例 如,从 被 噪 声 和 干 扰 所 污 染 的 信 号 观察 数 据 中 恢 复 出 所 需的 信 息 ;或将 混 在 信 号 中 的 噪 声 和 干 扰 ( 包 括 多径 产 生 干 扰 等 ) 剔 除 ; 或 把 现 有 的 信 号 变 换 成所 期 望 的 另 一 种 信 号形式等等。
Capon 波束形成matlab仿真(附源代码)
Capon波束形成阵列N=16,信号0-30θ︒=,干扰为160θ︒=,219θ︒=,345θ︒=,干扰功率分别为:40dB,35dB,50dB。
Capon波束形成后的方向图和功率谱如下:为了比较接收数据直接估计噪声协方差矩阵和利用干扰+噪声估计协方差矩阵的Capon 波束形成的差异,进行如下仿真:可以看出利用干扰+噪声估计协方差矩阵的方向图性能较优于接收数据直接估计噪声协方差矩阵的方向图。
代码:clc;clear all ;close all;ima=sqrt(-1);element_num=8; %阵元数d_lamda=1/2; %阵元间距与波长的关系theta=-90:0.5:90; %范围theta0=-30; %来波方向theta1=60; %干扰方向1theta2=19; %干扰方向2theta3=45; %干扰方向3L=1000; %采样单元数for i=1:L;amp0=10*randn(1);%信号的幅度随机产生,保证信号之间是不相关的amp1=100*randn(1);%输入阵列的噪声amp2=sqrt(10^3.5)*randn(1);%输入阵列的噪声amp3=sqrt(10^5)*randn(1);%输入阵列的噪声ampn=3;%噪声x(:,i)=amp0*exp(ima*2*pi*1/2*sin(theta0*pi/180)*[0:element_num-1]')+...amp1*exp(ima*2*pi*1/2*sin(theta1*pi/180)*[0:element_num-1]')+...amp2*exp(ima*2*pi*1/2*sin(theta2*pi/180)*[0:element_num-1]')+...amp3*exp(ima*2*pi*1/2*sin(theta3*pi/180)*[0:element_num-1]')+...ampn*(randn(element_num,1)+ima*randn(element_num,1));endRx=1/L*x* x';R=inv(Rx);steer=exp(ima*2*pi*1/2*sin(theta0*pi/180)*[0:element_num-1]');w=R*steer/(steer'*R*steer);%Capon最优权矢量for j=1:length(theta);a=exp(ima*2*pi*d_lamda*sin(theta(j)*pi/180)*[0:element_num-1]');f(j)=w'*a;p(j)=1/(a'*R*a);endF=20*log10(abs(f)/(max(abs(f))));P=20*log10(abs(p)/(max(abs(p))));%此处是功率的对数形式figure;% subplot(121)plot(theta,F),grid on,hold onplot(theta0,-80:0,'.')plot(theta1,-80:0,'.')plot(theta2,-80:0,'.')plot(theta3,-80:0,'.')xlabel('theta/o');ylabel('F/dB');title('Capon beamforming方向图') % axis([-90 90 -50 0]);% subplot(122)figure;plot(theta,P),grid onxlabel('theta/o');ylabel('功率/dB');title('Capon beamforming功率谱')。
mvdr算法matlab程序
MVDR(Minimum Variance Distortionless Response)算法是一种用于信号处理的自适应波束形成方法,能够在含有相关干扰的复杂环境中实现对目标信号的抑制和增强。
在无线通信、雷达、声呐等领域具有广泛的应用。
MVDR算法的核心思想是通过优化空间滤波器的权值,使得输出信号的方差最小,从而实现对指定方向上的信号增强,对其他方向上的干扰进行抑制。
其数学模型如下所示:1. 定义阵列接收信号为$x(t)$,阵列权向量为$w$,则输出信号$y(t)$可表示为$y(t) = w^Hx(t)$,其中$w^H$为权向量$w$的共轭转置。
2. 阵列接收信号$x(t)$可以表示为$x(t) = s(t) + n(t)$,其中$s(t)$为目标信号,$n(t)$为干扰噪声。
3. MVDR算法的优化目标是最小化输出信号的方差,即$w =\arg\min_w E\{|y(t)|^2\}$,其中$E\{\cdot\}$表示期望运算符。
为了实现MVDR算法,可以通过以下步骤进行:1. 阵列接收信号的空间协方差矩阵估计:根据接收到的信号数据,可以通过一定的方法估计得到阵列接收信号的空间协方差矩阵$R_x = E\{x(t)x^H(t)\}$,其中$E\{\cdot\}$表示期望运算符,$x^H(t)$表示$x(t)$的共轭转置。
2. 权向量的计算:根据空间协方差矩阵$R_x$,可以通过MVDR算法的推导得到优化的权向量$w = R_x^{-1}d$,其中$d$为期望增强的目标信号方向对应的空间谱。
下面以MATLAB程序实现MVDR算法为例,展示MVDR算法在阵列信号处理中的应用。
```matlabMVDR算法实现示例假设阵列接收信号的空间协方差矩阵为Rx,期望增强的目标信号方向对应的空间谱为d计算MVDR算法的权向量ww = inv(Rx) * d;对接收到的阵列信号进行空间滤波处理假设接收到的阵列信号为x,滤波后的输出信号为yy = w' * x;```通过以上MATLAB程序,可以实现对接收到的阵列信号进行MVDR 算法的空间滤波处理,从而实现对目标信号的增强和对干扰信号的抑制。
LMS波束形成代码
LMS波束形成代码(matlab)LMS算法的仿真程序:%lms 算法clear allclose allhold off%系统信道权数sysorder = 5 ;%抽头数N=1000;%总采样次数inp = randn(N,1);%产生高斯随机系列n = randn(N,1);[b,a] = butter(2,0.25);Gz = tf(b,a,-1);%逆变换函数h= [0.0976;0.2873;0.3360;0.2210;0.0964;];%信道特性向量y = lsim(Gz,inp);%加入噪声n = n * std(y)/(10*std(n));%噪声信号d = y + n;%期望输出信号totallength=size(d,1);%步长N=60 ; %60节点作为训练序列%算法的开始w = zeros ( sysorder , 1 ) ;%初始化for n = sysorder : Nu = inp(n:-1:n-sysorder+1) ;% u的矩阵y(n)= w' * u;%系统输出e(n) = d(n) - y(n) ;%误差if n < 20mu=0.32;elsemu=0.15;endw = w + mu * u * e(n) ;%迭代方程end%检验结果for n = N+1 : totallengthu = inp(n:-1:n-sysorder+1) ;y(n) = w' * u ;e(n) = d(n) - y(n) ;%误差endhold onplot(d)plot(y,'r');title('系统输出') ;xlabel('样本')ylabel('实际输出')figuresemilogy((abs(e))) ;% e的绝对值坐标title('误差曲线') ;xlabel('样本')ylabel('误差矢量')figure%作图plot(h, 'k+')hold onplot(w, 'r*')legend('实际权矢量','估计权矢量') title('比较实际和估计权矢量') ;axis([0 6 0.05 0.35])2.NLMS算法的仿真程序:%lms 算法clear allclose allhold off%系统信道权数sysorder = 5 ;%抽头数N=1000;%总采样次数inp = randn(N,1);%产生高斯随机系列n = randn(N,1);[b,a] = butter(2,0.25);Gz = tf(b,a,-1);%逆变换函数h= [0.0976;0.2873;0.3360;0.2210;0.0964;];%信道特性向量y = lsim(Gz,inp);%加入噪声n = n * std(y)/(10*std(n));%噪声信号d = y + n;%期望输出信号totallength=size(d,1);%步长N=60 ; %60节点作为训练序列%算法的开始w = zeros ( sysorder , 1 ) ;%初始化for n = sysorder : Nu = inp(n:-1:n-sysorder+1) ;% u的矩阵y(n)= w' * u;%系统输出r(n)=u'*u;%自相关矩阵e(n) = d(n) - y(n) ;%误差fai=.0001;%修正参数,为防止u'*u过小导致步长值太大而设置的if n < 20mu=0.32;elsemu=0.15;endw = w + mu * u * e(n)/(r(n)+fai) ;;%迭代方程end%检验结果for n = N+1 : totallengthu = inp(n:-1:n-sysorder+1) ;y(n) = w' * u ;e(n) = d(n) - y(n) ;%误差endhold onplot(d)plot(y,'r');title('系统输出') ;xlabel('样本')ylabel('实际输出')figuresemilogy((abs(e))) ;% e的绝对值坐标title('误差曲线') ;xlabel('样本')ylabel('误差矢量')figure%作图plot(h, 'k+')hold onplot(w, 'r*')legend('实际权矢量','估计权矢量') title('比较实际和估计权矢量') ;axis([0 6 0.05 0.35])3.RLS算法的仿真程序:% RLS算法randn('seed', 0) ;rand('seed', 0) ;NoOfData = 8000 ; % Set no of data points used for training Order = 32 ; % 自适应滤波权数Lambda = 0.98 ; % 遗忘因子Delta = 0.001 ; % 相关矩阵R的初始化x = randn(NoOfData, 1) ;%高斯随机系列h = rand(Order, 1) ; % 系统随机抽样d = filter(h, 1, x) ; % 期望输出% RLS算法的初始化P = Delta * eye ( Order, Order ) ;%相关矩阵w = zeros ( Order, 1 ) ;%滤波系数矢量的初始化% RLS Adaptationfor n = Order : NoOfData ;u = x(n:-1:n-Order+1) ;%延时函数pi_ = u' * P ;%互相关函数k = Lambda + pi_ * u ;K = pi_'/k;%增益矢量e(n) = d(n) - w' * u ;%误差函数w = w + K * e(n) ;%递归公式PPrime = K * pi_ ;P = ( P - PPrime ) / Lambda ;%误差相关矩阵w_err(n) = norm(h - w) ;%真实估计误差end ;% 作图表示结果figure ;plot(20*log10(abs(e))) ;%| e |的误差曲线title('学习曲线') ;xlabel('迭代次数') ;ylabel('输出误差估计') ;figure ;semilogy(w_err) ;%作实际估计误差图title('矢量估计误差') ;xlabel('迭代次数') ;ylabel('误差权矢量') ;4.自适应均衡器的仿真程序:% Illustration of the conventional RLS algorithm close all;W=2.9;Nexp=10;N=2000;Nmc=1; % Number of ensemble realizations M=11;%抽头系数lambda=0.99;%遗忘因子varv=0.001;%噪声方差h=zeros(3,1);%h的初始化er=zeros(N,Nmc);%er的初始化h(1)=0.5*(1+cos(2*pi*(1-2)/W));h(2)=0.5*(1+cos(2*pi*(2-2)/W));h(3)=0.5*(1+cos(2*pi*(3-2)/W));% 学习曲线hc=[0 h(1) h(2) h(3)]';n0=7;t=(1:N)';for i=1:Nmcy=sign(rand(N,1)-0.5);%输入信号v=sqrt(varv)*randn(N,1);%噪声信号x=filter(hc,1,y)+v;%信号混合x=[zeros(M-1,1);x];%x矩阵yd=zeros(N+M-1,1); %延迟信号初始化e=yd;yd(n0+M-1:N+M-1)=y(1:N-n0+1);% CRLS 算法% Initializationlambda=0.98;P=(10^-3)*eye(M,M);c=zeros(M,1);g=c;glambda=g;% 迭代范围for n=M:M+N-1xn=flipud(x(n-M+1:n));glambda=P*xn;alphal=lambda+conj(glambda')*xn;g=glambda/lambda;a(n)=1-conj(g')*xn; P=(P-g*conj(glambda'))/lambda;P=(P+P')/2;e(n)=yd(n)-conj(c')*xn;c=c+g*conj(e(n));endendeplot=e(M:M+N-1).^2;subplot(2,1,1), plot(t,abs(eplot)) ylabel('|e(n)|^2');xlabel('n');subplot(2,1,2), plot(t,a(M:M+N-1)); ylabel('\alpha(n)');xlabel('n');5.自适应陷波器的仿真程序:N=400; %总采样长度t=0:N-1; %时间的变化范围s=sin(2*pi*t/20); %输入信号A=0.5; %干扰信号的幅值fai=pi/3;%干扰信号的相移n=A*cos(2*pi*t/10+fai);%干扰信号x=s+n;%信号混合subplot(2,2,1);%作第一子图plot(t,s);subplot(2,2,2); %作第二子图plot(t,x);x1=cos(2*pi*t/10);x2=sin(2*pi*t/10);%初始化w1=0.1;w2=0.1;e=zeros(1,N);y=0;u=0.05;%迭代步长for i=1:Ny=w1*x1(i)+w2*x2(i);e(i)=x(i)-y;%误差信号w1=w1+u*e(i)*x1(i);%迭代方程w2=w2+u*e(i)*x2(i);%迭代方程endsubplot(2,2,3); %作第三子图plot(t,e);subplot(2,2,4); %作第四子图plot(t,s-e);。
LMS算法波束形成的基础仿真分析
LMS算法波束形成的基础仿真分析LMS (Least Mean Squares) 算法是一种自适应滤波算法,广泛应用于波束形成(Beamforming)技术中。
波束形成是一种利用多个阵元接收或发送信号,通过调整各个阵元的权重来优化信号传输的技术。
在波束形成中,LMS 算法扮演着非常重要的角色,其基础仿真分析对深入理解LMS算法的性能和优缺点具有重要意义。
本文将对LMS算法波束形成进行基础的仿真分析。
首先,我们需要了解LMS算法的基本原理。
LMS算法的目的是通过调整各个阵元的权重,使得接收到的信号在期望方向上增强,而在其他方向上抑制。
LMS算法采用梯度下降法来调整权重,使得输出信号的均方误差最小化。
其迭代更新的公式为:W(n+1)=W(n)+α*e(n)*X(n)其中,W(n)是当前时刻的权重向量,e(n)是期望输出与实际输出之间的误差,X(n)是输入信号的向量。
α是学习率,用于控制权重调整的步幅。
在进行基础仿真分析前,我们需要确定仿真参数。
首先是阵元的数量和间距。
阵元的数量决定了波束的方向性,间距决定了波束的宽度。
接下来是仿真信号的特性,包括入射角度、信号强度等。
此外,还需要确定LMS算法的参数,如学习率等。
这些参数的选择将直接影响到算法的性能。
为了进行仿真分析,我们可以使用MATLAB等工具进行实现。
首先,我们需要生成输入信号。
可以选择不同的波形(如正弦波、方波等)以及不同的入射角度和信号强度。
接下来,我们需要实现LMS算法的迭代更新公式,并利用生成的输入信号进行仿真计算。
在仿真过程中,我们可以观察到LMS算法的收敛速度以及波束形成的性能。
收敛速度是指算法达到最优解所需的迭代次数或时间。
波束形成的性能可以使用波束指向性和波束宽度来衡量。
波束指向性表示波束的主瓣在期望方向上的增益,波束宽度表示波束的主瓣在其他方向上的抑制程度。
通过调整LMS算法的参数,我们可以观察到不同参数对波束形成性能的影响。
波束成形 matlab
波束成形 matlab波束成形(Beamforming)指的是利用阵列天线(Antenna Array)对接收到的信号进行处理以达到增强信号某些方向的目的。
波束成形常用于移动通信、雷达、水声、地震勘探等领域。
本文将介绍波束成形的基本原理、常见方法以及在MATLAB中的实现。
一、基本原理当阵列天线接收到来自不同方向的信号时,不同方向的信号会产生不同的相位,因此在信号到达天线阵列时会出现不同的时间差(Time Delay)。
利用时间差及信号幅度,可以实现对来自不同方向的信号进行区分。
考虑一个二维阵列天线,阵列中每个天线的坐标为(x,y),假设接收到的信号为s(t),其中t为时间。
对于信号来自某一方向(θ,φ),可以将信号表示为:s(t) = A exp( j2πfct - j2πxsinθcosφ - j2πysinθsinφ )其中,A表示信号的幅度,fc表示信号的载频,θ、φ为信号的方向,x、y为阵列天线的坐标。
由于阵列中所有天线接收到的信号都是源信号乘以不同的时延,因此可以表示为:其中λ表示信号的波长。
将上式中的xi、yi视为修正值,令xi = xicosθ+yisinθcosφ,yi = yisinθ+xicosφ,可得到:将上式简化为向量形式:s(t) = as(t)其中a表示标准的复数天线权向量,s(t)表示源信号。
对于每个方向(θ,φ),得到一个权向量a,形成阵列天线的权矩阵A。
为了能够从阵列中提取出某个方向的信号,需要将权矩阵A与接收到的信号x相乘得到一个指向θ、φ的输出向量y:y = Axz(θ,φ) = w(θ,φ) y二、常见方法1. 空间平滑法(Spatial Smoothing)空间平滑法是一种低分辨率波束成形方法,可以使用对角线加载阵列天线,增加天线间的间隔,从而减弱多径效应。
在搜索最佳波束方向时,通常使用Max-Norm方法。
空间平滑法常用于宽带信号、并行阵列以及数字信号处理中。
波束成形matlab
1111
波束成形是指通过控制输入信号的相位和振幅来实现发射或接收方向性辐射的技术。
在MATLAB中,可以通过以下步骤实现波束成形:
1. 确定要形成的波束方向和形状。
一种常用的方法是使用线性阵列,通过调整各个阵元的相位来控制波束方向。
在MATLAB中,可以通过创建一个表示阵列的矢量,然后使用复数表示各个阵元的相位来实现。
2. 使用MATLAB的信号处理工具箱中的FFT函数对输入信号进行频谱分析,并利用其频率响应进行波束成形处理。
3. 在实现波束成形算法时,需要注意信号传播路径和损耗。
MATLAB提供了有关传播路径和损耗的模型和函数,例如通过计算信号在不同介质中的传播速度和衰减来模拟实际情况。
4. 除了传播路径和损耗外,还可以考虑到干扰信号的处理。
MATLAB提供了各种信号处理方法,如滤波、降噪和干扰抑制等,可以帮助进行波束成形时的干扰信号处理。
总体而言,MATLAB可以通过使用其信号处理工具箱和丰富的数值计算功能来实现波束成形。
在实现波束成形算法时,还可以考虑干扰信号处理等问题,以提高波束成形的效果和精度。
波束形成Matlab程序
1•均匀线阵方向图%8阵元均匀线阵方向图,来波方向为0度clc;clear all;close all;imag=sqrt(_1);element_num=8;% 阵元数为8d_lamda=1/2;%阵元间距d与波长lamda的关系theta=li nspace(-pi/2,pi/2,200);theta0=0;%来波方向w=exp(imag*2*pi*dl_lamda*si n(theta0)*[0:eleme nt_nu m-1]');for j=1:le ngth(theta)a=exp(imag*2*pi*dd_l amda*si n(theta(j))*[0:eleme nt_nu m-1]'); p(j)=w'*a;endfigure;plot(theta,abs(p)),grid onxlabel('theta/radia n')ylabel('amplitude')title('8阵元均匀线阵方向图')8阵元均匀线阵方向图当来波方向为45度时,仿真图如下:8阵元均匀线阵方向图如下,来波方向为0度,20log (dB )8阵元均苛銭阵方向图来波方向为0度 S =-s ==d E B随着阵元数的增加,波束宽度变窄,分辨力提高:仿真图如下: Qp=二 d E ro2. 波束宽度与波达方向及阵元数的关系clcclear allclose allima=sqrt(-1);element_num1=16; %阵元数element_num2=128;element_num3=1024;lamda=0.03; %波长为0.03 米d=1/2*lamda; %阵元间距与波长的关系theta=0:0.5:90;for j=1:length(theta);fai(j)=theta(j)*pi/180-asin(sin(theta(j)*pi/180)-lamda/(element_n um1*d));psi(j)=theta(j)*pi/180-asin(sin(theta(j)*pi/180)-lamda/(element_n um2*d));beta(j)=theta(j)*pi/180-asin(sin(theta(j)*pi/180)-lamda/(element_ num3*d));endfigure; plot(theta,fai,'r',theta,psi,'b',theta,beta,'g'),grid on xlabel('theta');ylabel('Width in radians')title(' 波束宽度与波达方向及阵元数的关系') 仿真图如下:。
波束形成 Matlab程序教学文稿
波束形成M a t l a b程序1.均匀线阵方向图%8阵元均匀线阵方向图,来波方向为0度clc;clear all;close all;imag=sqrt(-1);element_num=8;%阵元数为8d_lamda=1/2;%阵元间距d与波长lamda的关系theta=linspace(-pi/2,pi/2,200);theta0=0;%来波方向w=exp(imag*2*pi*d_lamda*sin(theta0)*[0:element_num-1]'); for j=1:length(theta)a=exp(imag*2*pi*d_lamda*sin(theta(j))*[0:element_num-1]'); p(j)=w'*a;endfigure;plot(theta,abs(p)),grid onxlabel('theta/radian')ylabel('amplitude')title('8阵元均匀线阵方向图')当来波方向为45度时,仿真图如下:8阵元均匀线阵方向图如下,来波方向为0度,20log(dB)随着阵元数的增加,波束宽度变窄,分辨力提高:仿真图如下:2.波束宽度与波达方向及阵元数的关系clcclear allclose allima=sqrt(-1);element_num1=16; %阵元数element_num2=128;element_num3=1024;lamda=0.03; %波长为0.03米d=1/2*lamda; %阵元间距与波长的关系theta=0:0.5:90;for j=1:length(theta);fai(j)=theta(j)*pi/180-asin(sin(theta(j)*pi/180)-lamda/(element_num1*d)); psi(j)=theta(j)*pi/180-asin(sin(theta(j)*pi/180)-lamda/(element_num2*d)); beta(j)=theta(j)*pi/180-asin(sin(theta(j)*pi/180)-lamda/(element_num3*d)); endfigure;plot(theta,fai,'r',theta,psi,'b',theta,beta,'g'),grid onxlabel('theta');ylabel('Width in radians')title('波束宽度与波达方向及阵元数的关系')仿真图如下:3. 当阵元间距 /2dλ> 时,会出现栅瓣,导致空间模糊。
Matlab波束形成程序
波束形成与智能天线1.均匀线阵方向图%8阵元均匀线阵方向图,来波方向为0度clc;clear all;close all;imag=sqrt(-1);element_num=8;%阵元数为8d_lamda=1/2;%阵元间距d与波长lamda的关系theta=linspace(-pi/2,pi/2,200);theta0=0;%来波方向w=exp(imag*2*pi*d_lamda*sin(theta0)*[0:element_num-1]');for j=1:length(theta)a=exp(imag*2*pi*d_lamda*sin(theta(j))*[0:element_num-1]');p(j)=w'*a;endfigure;plot(theta,abs(p)),grid onxlabel('theta/radian')ylabel('amplitude')title('8阵元均匀线阵方向图')当来波方向为45度时,仿真图如下:8阵元均匀线阵方向图如下,来波方向为0度,20log(dB)随着阵元数的增加,波束宽度变窄,分辨力提高:仿真图如下:2.波束宽度与波达方向及阵元数的关系clcclear allclose allima=sqrt(-1);element_num1=16; %阵元数element_num2=128;element_num3=1024;lamda=0.03; %波长为0.03米d=1/2*lamda; %阵元间距与波长的关系theta=0:0.5:90;for j=1:length(theta);fai(j)=theta(j)*pi/-asin(sin(theta(j)*pi/)-lamda/(element_num1*d));psi(j)=theta(j)*pi/-asin(sin(theta(j)*pi/)-lamda/(element_num2*d));beta(j)=theta(j)*pi/-asin(sin(theta(j)*pi/)-lamda/(element_num3*d)); endfigure;plot(theta,fai,'r',theta,psi,'b',theta,beta,'g'),grid onxlabel('theta');ylabel('Width in radians')title('波束宽度与波达方向及阵元数的关系')仿真图如下:3. 当阵元间距时,会出现栅瓣,导致空间模糊。
(完整word版)自适应波束形成与Matlab程序代码注解
1.均匀线阵方向图(1)matlab 程序clc;clear all;close all;imag=sqrt(—1);element_num=32;%阵元数为8d_lamda=1/2;%阵元间距d与波长lamda的关系theta=linspace(-pi/2,pi/2,200);theta0=0;%来波方向w=exp(imag*2*pi*d_lamda*sin(theta0)*[0:element_num-1]');for j=1:length(theta)a=exp(imag*2*pi*d_lamda*sin(theta(j))*[0:element_num-1]');p(j)=w’*a;endpatternmag=abs(p);patternmagnorm=patternmag/max(max(patternmag));patterndB=20*log10(patternmag);patterndBnorm=20*log10(patternmagnorm);figure(1)plot(theta*180/pi,patternmag);grid on;xlabel('theta/radian')ylabel('amplitude/dB')title([num2str(element_num)’阵元均匀线阵方向图’,'来波方向为’num2str(theta0*180/pi)'度’]);hold on;figure(2)plot(theta,patterndBnorm,'r’);grid on;xlabel(’theta/radian’)ylabel('amplitude/dB’)title([num2str(element_num)’阵元均匀线阵方向图’,'来波方向为’num2str(theta0*180/pi)’度']);axis([-1.5 1。
自适应波束形成仿真
课程设计(论文)任务书指导教师签字:系(教研室)主任签字:年月日前言近十年,自适应波束形成算法在通信雷达、声纳、生物医学工程等科技领域中到了极为广泛的应用。
在实际应用中,如果信号源、天线阵列出现误差,传统的自适应波束形成算法性能将会下降。
但是对于稳健的自适应波束形成算法。
环境及天线阵列的误差和不确定性是必须要考虑的关键问题。
这里对稳健的自适应波束形成算法的研究现状与发展动态进行了较为详细的评述。
传统的算法在设计波束形成器时,都是假定在其训练数据中不含有期望信号。
这时的波束形成器对于阵列响应误差和有限次快拍数据的稳健性非常好。
但是在许多情况下,干扰和噪声信号的观测数据不可避免地要被期望信号所污染。
而即使在理想情况下,这时精确的知道期望信号的方向向量,在有限次快拍训练数据中含有的响应之间的不匹配。
自适应阵列信号处理对于这类误差的反应非常敏感。
因为这时期望信号分量会被当作干扰抑制掉。
阵列校正误差及观测方向的偏差等现象在实际中经常出现。
引起自适应波束形成算法性能降低的原因除了阵列响应误差外,由于信道的不稳定、干扰和天线的移动、天线的转动等所造成的波束形成器训练数据的不稳定性也是一个主要原因。
首先,即使在训练数据中不包含期望信号,这种不稳定性也会限制自适应波束形成算法的性能;进而,当在训练数据中含有期望信号时,波束形成器性能会进一步严重降低;最后,如果出现快速移动的干扰。
波束形成器的性能将会崩亏。
因为这时自适应权向量的收敛速度跟不上干扰的变化,不能有效的对干扰形成零陷。
前言 (2)一.设计原理 (3)二.设计过程 (6)(1)使用MVDR算法 (6)(2)EC算法 (9)(3)GUI界面设计 (12)三.设计总结 (12)四.参考文献 (13)一.设计原理传统算法,波束形成器的输出可表示为()()k x w H=k y ( 1 ) ,这里复向量x( k )是在观测阵元上第 k 次快拍的采样值,它是Mx l 维的复向量;W 是波束形成器 Mx l 维的权向量设阵元数目为M ,( - ) n 代表共轭转置,其 中向量 x ( k ) 可表示为( k ) = s ( k ) + i ( k ) + n ( k )。
基于MATLAB GUI的几种数字波束形成算法设计与仿真
基于MATLAB GUI的几种数字波束形成算法设计与仿真张晓东【摘要】将多种数字波束形成算法融合到一个平台,不仅丰富了数字波束形成仿真平台的功能,而且还可以为用户二次开发提供便利.利用MATLAB GUI开发了包含线性约束最小方差(LCMV)、最小方差无失真响应(MVDR)、最大信噪比(MSNR)准则等算法的波束形成仿真平台,该设计实现了与用户交互、波束形成过程可视化,方便对波束形成算法的研究,是研究自适应波束形成的一个有力工具.【期刊名称】《舰船电子对抗》【年(卷),期】2018(041)005【总页数】5页(P27-30,40)【关键词】数字波束形成;仿真平台;MATLAB GUI【作者】张晓东【作者单位】中国船舶重工集团公司第七二三研究所,江苏扬州225101【正文语种】中文【中图分类】TN911.70 引言现代雷达技术和电子对抗领域的一个重要组成部分是阵列信号处理技术,数字多波束形成技术作为阵列信号处理领域的核心技术,已经成为研究热点。
波束形成是对多传感器阵列接收到的信号在空间上增强期望信号、抑制干扰和噪声的处理过程[1]。
数字波束形成(DBF)是一种用数字方法实现波束形成的技术。
将DBF技术应用于雷达、电子战系统中,如接收数字波束形成(DBF)就可以增强多目标分辨能力,提高目标定位精度,使电子战系统的性能大大提高[2]。
为了验证系统的普适性,测试不同阵元数及不同间距情况下的数据,可以用仿真手段代替实际应用,根据实际应用需求,改变信号的频率、功率、信噪比,改变阵元的个数及间距等参数,并且可以自主设置波达方向与干扰方向,通过仿真验证,大大降低了系统设计的成本。
为了使系统的仿真更加便利,使用人机交互图形界面程序开发了一个仿真平台,方便科研人员对算法进行验证。
本文的工作将基于MATLAB 2012a,这个仿真平台适用于均匀线阵的窄带信号波束形成算法研究,目前集成了线性约束最小方差(LCMV)、最小方差无失真响应(MVDR)、线性约束特征干扰相消器(LCEC)、最大信噪比准则(MSNR)、线性约束广义旁瓣相消器(LC_GSC)、最小均方误差(MMSE)、最大似然准则(ML)、多级维纳滤波(MWF),可以方便地设置阵元数目、阵元间距、期望信号角度、干扰角度、干扰信号类型等参数,自由切换算法得到的波束图。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信息与通信工程学院阵列信号处理实验报告(自适应波束形成Matlab仿真)学号:XXXXXX专业:XXXXXX学生姓名:XXX任课教师:XXX2015年X月题目:自适应波束形成Matlab 仿真1. 算法简述:自适应波束形成,源于自适应天线的一个概念。
接收端的信号处理,可以通过将各阵元输出进行加权求和,将天线阵列波束“导向”到一个方向上,对期望信号得到最大输出功率的导向位置即给出波达方向估计。
波束形成算法是在一定准则下综合个输入信息来计算最优权值的数学方法,线性约束最小方差准则(LCMV )是最重要、最常用的方法之一。
LCMV 是对有用信号形式和来向完全已知,在某种约束条件下使阵列输出的方差最小。
该准则属于广义约束,缺点是需要知道期望分量的波达方向。
准则的代价函数为Rw w w J H )(=,约束条件为H ()θ=w a f ;最佳解为f c R c c R w 11H 1H ][---。
2. 波束形成原理以一维M 元等距离线阵为例,如图1所示,设空间信号为窄带信号,每个通道用一个附加权值系数来调整该通道的幅度和相位。
图1 波束形成算法结构图这时阵列的输出可以表示为:*1()()()Mi i iy t w x t θ==∑ 如果采用矢量来表示各阵元输出及加权系数,即T 12()[()()()]M x t x t x t x t =T 12()[()()()]M w w w w θθθθ=()x n()x n()x n那么,阵列的输出也可以用矢量表示为H ()()()y t t θ=w x为了在某一方向θ上补偿各阵元之间的时延以形成一个主瓣,常规波束形成器在期望方向上的加权矢量可以构成为(1)T ()[1e e ]j j M w ωτωτθ---=观察此加权矢量,发现若空间只有一个来自方向θ的信号,其方向矢量()αθ的表示形式与此权值矢量相同。
则有H H ()()()()()y t t t θαθ==w x x这时常规波束形成器的输出功率可以表示为2H H ()[()]()()()()CBF P E y t θθθαθαθ===w Rw R式中矩阵R 为阵列输出()t x 的协方差矩阵。
3. 实验内容与结果:实验使用均匀线阵,阵元间距为信号波长的一半,输入信号为1个BPSK 信号,2个非相干的单频干扰,设置载波频率10MHz 、采样频率50MHz 、快拍数300、信噪比-25dB 、信干比-90dB 、信号方位角0、干扰方位角40-和50,分析阵元数分别在3、6、9和12时波束图的变化。
实验结果见图1。
图1 不同阵元数情况下的波束图4.仿真分析由上图可知,在已知实验条件下,均匀线阵阵元数不小于信号干扰总数时,应用LCMV方法得到的波束图在信噪比很低的情况下可以有效抑制非相干干扰;对于信号方向虽然波束主瓣可以较准确地指向信号来向,但阵元数为4时,主瓣波束宽度较大,旁瓣增益较大;当阵元数增加,主瓣波束逐渐变窄并且能精准地指向信号来向,同时旁瓣数目增加、增益逐渐变小。
因此,增加阵元的数目可以有效地提高波束形成精度,同时主瓣变窄,旁瓣变小,使得输出信噪比有效提高。
5.程序clear all;close all;clc;%---------------------------------%信号参数设置Signal_No = 1;Interference_No = 2;%小于五S_No = Signal_No + Interference_No; %信号总数sensor_No = 12; %阵元数azimuth = [0*pi/180 -40*pi/180 50*pi/180 30*pi/180 20*pi/180]; %方位角Fs = 50e6;Fc = 10e6;F1 = [8e6 9e6 10e6 11e6]; %干扰功率RB = 1e6;M = 2; %二进制wavelength = 3e8/Fc;d = wavelength/2;K = 300; %快拍数Ps = 0; %dBSNR = -15;SIR = -90;M_No = 40; %码速率等于信息速率Data_No = M_No*Fs/RB;t = 1/Fs:1/Fs:Data_No/Fs;%---------------------------------%功率转换Ps_l = 10^(Ps/10);Pi_l = 10^((Ps-SIR)/10);Pn_l = 10^((Ps-SNR)/10);%---------------------------------%信号生成bit = randint(1,M_No); %产生信息序列bitstream = [];for i = 1:M_Noif bit(i) == 1bitstream = [bitstream, ones(1, Fs/RB)];elsebitstream = [bitstream, -ones(1, Fs/RB)];endendCarrier_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);%---------------------------------% %产生干扰for i = 2:Interference_No +1Signal(i,:)=sqrt(2*Pi_l)*complex(sin(2*pi*F1(i-1)*t+pi/10*i),sin(2*pi*F1(i-1)*t+pi/10*i));end%---------------------------------% 模拟天线接收%----------------------------------%四次循环name = [' 3',' 6',' 9','12'];for mmm =1:4sensor_No = mmm*3;As = zeros(sensor_No,S_No);for i = 1:sensor_Nofor ii = 1:S_NoAs(i,ii) = exp(-1i*2*pi*sin(azimuth(ii))*d/wavelength*(i-1));endendx = 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;%---------------------------------%lcmv算法% Ad = [1 0 0 0 0 0 0 0 0 0 0 0 ]';Ad = (As(:,1));x1 = s(:,(1:K));Rx=x1*x1'/K;alfa=inv(Ad'*inv(Rx)*Ad);Wopt=alfa*inv(Rx)*Ad;%------------------------%---------------------------------%mvdr% Ad = (As(:,1));% x1 = s(:,(1:K));% Rx=x1*x1'/K;% QR_Wopt1 = inv(Rx)*Ad;% Wopt=QR_Wopt1./QR_Wopt1(1);%---------------------------------%波束图figure(1)whitebg('k');all_azimuth = -pi/2:pi/180:pi/2;LMS_R = zeros(1,181);for i = 1:181for m = 1:sensor_NoLMS_R(i) = LMS_R(i) + conj(Wopt(m)) * exp(-1i*2*pi*sin(all_azimuth(i))*d/wavelength*(m-1));endLMS_P(i) = (abs(LMS_R(i)))^2;endLMS_PdB = 10*log10(LMS_P/max(LMS_P));switch mmmcase 1plot(all_azimuth*180/pi,LMS_PdB,'--g','LineWidth',2);hold on;case 2plot(all_azimuth*180/pi,LMS_PdB,'.b','LineWidth',2);case 3plot(all_azimuth*180/pi,LMS_PdB,'-.w','LineWidth',2);case 4plot(all_azimuth*180/pi,LMS_PdB,':r','LineWidth',2);endgrid on;axis([-90 90 -70 10]);xlabel('方位角(度)')ylabel('阵列增益(dB)')%title(strcat('阵元数',name([2*mmm-1:2*mmm]),'个'));% figure(2);% polar ((-pi/2:pi/180:pi/2),LMS_PdB+109); figure(gcf);endhl=legend('阵元数3个','阵元数6个','阵元数9个','阵元数12个',1); set(hl,'edgecolor','w','color',[1 1 1]);title('自适应波束形成');drawnow;。