四个子波束matlab,有大手子会看一下波束形成代码的吗

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

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=1000*randn(1);

amp1=100*randn(1);

amp2=100*randn(1);

ampn=1;

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));

end

Rx=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]'; %把三个方向都作为来波方向

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);

end

f=10*log10(abs(f)/(max(max(abs(f)))));

figure(1)

subplot(121)

plot(theta,f),grid on,hold on

plot(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 on

plot(theta0,-20:0,'.')

plot(theta1,-20:0,'.')

plot(theta2,-20:0,'.')

xlabel('theta/o');

ylabel('功率/dB');

title('Capon beamforming功率谱')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值