资源简介
基于最小均方算法的自适应数字波束形成器matlab程序
代码片段和文件信息
clear all
close all
clc
j=sqrt(-1);
M=16;
m=0:M-1;
theta=[0-40];
theta=theta*pi/180;
us=0;
A0=exp(j*pi*m‘*sin(theta(1)));%信号源的方向矢量
Ai=exp(j*pi*m‘*sin(theta(2)));%干扰的方向矢量
SNR=20; % 信噪比(可变)
INR=1;
P0=10.^(SNR/10);
Pi=10.^(INR/10);
o=pi/180;
xxl=[-90:1:90];
xx=xxl*o;
a=exp(j*pi*m‘*sin(xx)); % 扫描矢量;
%%%%%%%%%%%最优波束形成%%%%%%%%%%%%%%%%%%%%%%%
L=10000;
Xs=A0*sqrt(P0*2)*wgn(1L1‘complex‘);%期望
Xi=Ai*sqrt(Pi*2)*wgn(1L1‘complex‘);%干扰
Xn=sqrt(2)*wgn(ML1‘complex‘);%噪声
Xx=Xs+Xi+Xn;
%Xx=Xi+Xw;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure
Rs=P0*A0*A0‘; %期望信号协方差矩阵
Ri=Pi*Ai*Ai‘; %干扰信号协方差矩阵
Rn=eye(M); %噪声信号协方差矩阵
Rx=Rs+Ri+Rn;
Pout_min=pinv(A0‘*pinv(Rx)*A0);
Wopt=Pout_min*pinv(Rx)*A0;
%Wop=pinv(Rx)*A0/(A0‘*pinv(Rx)*A0);
s1=20*log10(abs(Wopt‘*a)/max(abs(Wopt‘*a)));
plot(xxls1‘-k‘‘linewidth‘1)
ylim([-80 0])
grid on
%%%%%%%%%%%%%%%LMS算法%%%%%%%%%%%%%%%%%%
w=zeros(M1);
eta=0.01;
miu=0.0001;
e=1;
p=1;
d=Xs(1:);
while abs(e)>eta
e=d(p)-w‘*Xx(:p);
w=w+miu*conj(e)*Xx(:p);
p=p+1;
end
s2=20*log10(abs(w‘*a)/max(abs(w‘*a)));
hold on
plot(xxls2‘--r‘‘linewidth‘1);
legend(‘最优‘‘LMS算法‘2);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1419 2011-06-30 16:22 LMS.m
文件 875 2011-06-30 16:33 MMSE.rar
----------- --------- ---------- ----- ----
2294 2
评论
共有 条评论