• 大小: 2KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-04-19
  • 语言: Matlab
  • 标签: 功率倒置  LMS  

资源简介

功率倒置算法的LMS实现,因为自己遇到了点问题,本人一直在找这个程序,没找到,故自己重新检查把问题发现了,相信如果你要实现的话可能会遇到这个问题祝你好运!

资源截图

代码片段和文件信息

clear;
clc;
close all;


%-------------<<<<参数设置>>>>-------------%
M=10;               %%阵元数目
L=1024*2*2*2;             
N=3;                %%信源数目
ima=sqrt(-1);
thetaa=[-30 -10 -40 ];
snr=10;
C=3e8;
fs=4e8;             %%采样率
Ts=1/fs;     

%--------------<<<<信号构造>>>--------------%
t=(0:L-1)*Ts;
f=[1e6;1.5e6;2e6;]; %%五个信号频点2.5e6;3e6
%S=randn(3L);                      %%五个信号
S=exp(j*2*pi*f*t);        
% S=ones(3L); 
f0=100e6;                            %%中心频率
lamda=C/f0;
d=0.5*lamda;

%%%导向矢量
a=[0:M-1]‘;
A=exp(j*2*pi*a*d*sin((thetaa)/180*pi)/lamda);
%%%信号产生
X0=A*S;
X=awgn(real(X0)snr)+j*awgn(imag(X0)snr);     %%加噪声
Rx=X*X‘; 
S0=[1zeros(19)]‘;
wopt=inv(Rx)*S0*inv(S0‘*inv(Rx)*S0);
X_out=wopt‘*X;

figure(1)
plot(((0:L-1)-L/2)*fs/L20*log10(fftshift(abs(fft(X_out)))));
hold on;
plot(((0:L-1)-L/2)*fs/L20*log10(fftshift(abs(fft(X(1:)))))‘r‘);
[VD]=eig(Rx);    %求矩阵的特征值
E=diag(D);
u=0.0002;

w=zeros(91);
w_1=[];

for i=1:L
    d0=X(1i);
    xn=X(2:10i);
    e=d0-w‘*xn;
    w=w+u*xn*e‘;
%     w=w-2*u*(eye(10)-S0*S0‘/(S0‘*S0))*X*X‘*w;
    w_1=[w_1w];
end
w_opt=[1;-w];
%w_opt=w;
X_out2=w_opt‘*X;
plot(((0:L-1)-L/2)*fs/L20*log10(fftshift(abs(fft(X_out2))))‘g‘);

figure(2)
subplot(411)
plot(real(w_1(1:)))
subplot(412)
plot(imag(w_1(1:)))

subplot(413)
plot(real(w_1(2:)))
subplot(414)
plot(imag(w_1(2:)))




F_mvdr=zeros(1181);
theta=-90:90;
for i=1:length(theta)
     a_theta=exp(1i*2*pi*d/lamda*a*sin((theta(i))/180*pi)); %%
    F_mvdr(i)=wopt‘*a_theta;
    F_mvdr1(i)=w_opt‘*a_theta;
end
F_mvdr=20*log10(abs(F_mvdr)/max(F_mvdr));
F_mvdr1=20*log10(abs(F_mvdr1)/max(F_mvdr1));

figure(6)
subplot(211)
plot(thetaF_mvdr);
subplot(212)
plot(thetaF_mvdr1);

% [V1D1]=eig(Rx1);    %求矩阵的特征值
%         %提取D矩阵的对角线构成一个一列矩阵
% E1=diag(D1);
% Un=V(:1:M-N);   %噪声子空间
% Un1=V1(:1:M-N);  
% %--------------<<<<谱峰搜索>>>-------------%
% theta=-90:0.2:90;   
%  for ff=1:length(theta) 
%        a_theta=exp(1i*2*pi*d/lamda*a*sin((theta(ff)-20)/180*pi)); %%
%        Pmusic(ff)=10*log10(1/abs((a_theta‘*Un*Un‘*a_theta))); %%Music搜索
%        Pmusic1(ff)=10*log10(1/abs((a_theta‘*Un1*Un1‘*a_theta)));
%        Capon(ff)=10*log10(1/abs(a_theta‘*inv(Rx)*a_theta)); %%Capon算法搜索
%  end

% figure(1);
% plot(thetaPmusic);
% xlabel(‘DOA(°)‘)ylabel(‘Pmmusic(db)‘);title(‘经典MUSIC算法‘);
% grid on
% hold on;
% plot(thetaPmusic1‘r‘);
% xlabel(‘DOA(°)‘)ylabel(‘Pmmusic1(db)‘);title(‘经典MUSIC算法‘);







% figure(2);
% plot(thetaCapon);
% xlabel(‘DOA(°)‘)ylabel(‘谱峰(db)‘);title(‘Capon算法‘)
% grid on

% thetab=[60 55 80 82 110 76];

% A1=exp(j*2*pi*a*d*sin((90-thetab)/180*pi)/lamda);
% S1=randn(2*NL);
% %%%信号产生
% X00=A1*S1;
% X11=awgn(real(X00)snr)+j*awgn(imag(X00)snr);     %%加噪声



% r=X11*X11‘/L; 
% R=pinv(r); 


% c=A1; 
% f=[1 0 0 0 0 0]‘;   
% % c=[a1theta a4theta a5theta a6theta]; 
% % f=[1 0 0 0]‘;   
% Wopt=R*c*inv(

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       5167  2013-06-20 10:29  LMS_PI.m

----------- ---------  ---------- -----  ----

                 5167                    1


评论

共有 条评论