資源簡介
功率倒置算法的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
- 上一篇:4階龍格庫塔解二階微分方程
- 下一篇:final-report-n-ppt
評論
共有 條評論