注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Mr.Right

不顾一切的去想,于是我们有了梦想。脚踏实地的去做,于是梦想成了现实。

 
 
 

日志

 
 
关于我

人生一年又一年,只要每年都有所积累,有所成长,都有那么一次自己认为满意的花开时刻就好。即使一时不顺,也要敞开胸怀。生命的荣枯并不是简单的重复,一时的得失不是成败的尺度。花开不是荣耀,而是一个美丽的结束,花谢也不是耻辱,而是一个低调的开始。

网易考拉推荐

采用静态方向图约束的LCMP波束形成器的阵列增益  

2012-03-16 14:22:41|  分类: 学习 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Figure 6.63
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Following methods are considered:
%
% (1)  Orthogonal Quiescent Pattern(Q: conventional beampattern)
%
%
% System configuration:
% 10 element linear array

clear all
close all

N = 10; %Array size

n = (-(N-1)/2:(N-1)/2)';
ud = 0.1;
w0 = ones(N,1)/N; %conventional beampattern pointed at broadside(u=0)
Ne = 2; %Number of principle eigenvectors chosed

signalRange = [-ud:0.01:ud];
SNRrange = [-10:1:40];
INRrange = [10:10:30];
LNRrange = [-20:1:50];

ui1 = -0.30;
ui2 = 0.30;

Vi1 = exp(j*n*pi*ui1);
Vi2 = exp(j*n*pi*ui2);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% QP2 constraints with conventional beampattern

wdBar = w0/(w0'*w0);
PcWdBar = eye(N) - wdBar*inv(wdBar'*wdBar)*wdBar';
for h1 = 1:N
    for h2 = 1:N
        Rs(h1,h2) = 2*ud*sinc( (h1-h2)*ud );
    end
end
RsBar = PcWdBar*Rs*PcWdBar;
[U,lambda,V] = svd(RsBar);
Cs = V(:,1:Ne); %select 3 eigenvectors
C = [wdBar,Cs];
f = [1;zeros(Ne,1)];

%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

k1 = 1;
for INR = 10.^(INRrange/10)
    disp(['loop ' int2str(k1) ' of 3 ...'])
    k2 = 1;
    for SNR = 10.^(SNRrange/10)
        k3 = 1;
        for LNR = 10.^(LNRrange/10)
            Gain(k1,k2,k3) = 0;
            for ua = signalRange
                Va = exp(j*n*pi*ua);
                Ss = SNR*Va*Va';
                Sn = eye(N) + INR*Vi1*Vi1' + INR*Vi2*Vi2';
                Sx = Ss + Sn + LNR*eye(N);
                W = inv(Sx)*C*inv(C'*inv(Sx)*C)*f;           %
                SINRo = (W'*Ss*W)/(W'*Sn*W);
                SINRi = SNR/(2*INR+1);
                Gain(k1,k2,k3) = Gain(k1,k2,k3) + SINRo/SINRi;
            end %end of ua
            k3 = k3 + 1;
        end %end of LNR
        k2 = k2 + 1;
    end %end of SNR
    k1 = k1 + 1;
end %end of INR

Gain = 10*log10( abs(Gain)/length(signalRange) );

for k1 = 1:length(INRrange)
    for k2 = 1:length(SNRrange)
        [A(k1,k2), I(k1,k2)] = max( Gain(k1,k2,:) );
    end
end

Load = LNRrange(I);   % optimum LNR at each SNR,INR

for h1 = 1:length(INRrange)
    [x,y] = min ( abs(    A(h1,:)-max(A(h1,:)) +3 ));
    c(h1) = SNRrange(y);
    d(h1) = A(h1, y);
end

plot(SNRrange,A(1,:),'-',SNRrange,A(2,:),'--',SNRrange,A(3,:),'-.')
hold on
plot(c,d,'-o')
axis([-10 40 0 50])
xlabel('{\itSNR} (dB)','Fontsize',14)
ylabel('Optimal {\itE}(gain) (dB)','Fontsize',14)
h=legend('{\itINR}=10 dB','{\itINR}=20 dB','{\itINR}=30 dB','3 dB points',3);
set(h,'Fontsize',12)
title('QP2, ui=+/-0.30, ua~U(-0.1, 0.1), N=10, Ne=2, Quiescent: Conv')
grid
x = [11 21 31 41];
plot(-11+x,A(1,x),'x')
plot(-11+x,A(2,x),'x')
plot(-11+x,A(3,x),'x')
hold off

SNRLNR = [0 10 20 30];
for k1 = 1:length(INRrange)
    for k2 = 1:length(SNRLNR)
        SNRind = find(SNRrange == SNRLNR(k2));
        text(SNRLNR(k2),A(k1,SNRind),['{\itLNR}=' int2str(Load(k1,SNRind)) ' dB'],'Fontsize',12,'VerticalAlignment','bottom')
    end
end

% gtext('{\itLNR}=-6 dB','Fontsize',12)
% gtext('{\itLNR}=3 dB','Fontsize',12)
% gtext('{\itLNR}=9 dB','Fontsize',12)
% gtext('{\itLNR}=32 dB','Fontsize',12)
% gtext('{\itLNR}=-1 dB','Fontsize',12)
% gtext('{\itLNR}=6 dB','Fontsize',12)
% gtext('{\itLNR}=11 dB','Fontsize',12)
% gtext('{\itLNR}=15 dB','Fontsize',12)
% gtext('{\itLNR}=3 dB','Fontsize',12)
% gtext('{\itLNR}=9 dB','Fontsize',12)
% gtext('{\itLNR}=14 dB','Fontsize',12)
% gtext('{\itLNR}=18 dB','Fontsize',12)
      
采用静态方向图约束的LCMP波束形成器的阵列增益 - 阿英 - Mr.Right
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Figure 6.64
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

clear all
close all

N = 10; %Array size

n = (-(N-1)/2:(N-1)/2)';
ud = 0.1;
Ne = 2; %Number of principle eigenvectors chosed

signalRange = [-ud:0.02:ud];
SNRrange = [-10:1:40];
INRrange = [10:10:30];
LNRrange = [-20:1:50];

SLL=20;
nBar=2;

ui1 = -0.30;
ui2 = 0.30;

Vi1 = exp(j*n*pi*ui1);
Vi2 = exp(j*n*pi*ui2);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% QP2 constraints with conventional beampattern
w0 = ones(N,1)/N; %conventional beampattern pointed at broadside(u=0)
wdBar = w0/(w0'*w0);
PcWdBar = eye(N) - wdBar*inv(wdBar'*wdBar)*wdBar';
for h1 = 1:N
    for h2 = 1:N
        Rs(h1,h2) = 2*ud*sinc( (h1-h2)*ud );
    end
end
RsBar = PcWdBar*Rs*PcWdBar;
[U,lambda,V] = svd(RsBar);
Cs = V(:,1:Ne); %select 3 eigenvectors
C = [wdBar,Cs];
f = [1;zeros(Ne,1)];

k1 = 1;
for INR = 10.^(INRrange/10)
    disp(['loop ' int2str(k1) ' of 6 ...'])
    k2 = 1;
    for SNR = 10.^(SNRrange/10)
        k3 = 1;
        for LNR = 10.^(LNRrange/10)
            Gain(k1,k2,k3) = 0;
            for ua = signalRange
                Va = exp(j*n*pi*ua);
                Ss = SNR*Va*Va';
                Sn = eye(N) + INR*Vi1*Vi1' + INR*Vi2*Vi2';
                Sx = Ss + Sn + LNR*eye(N);
                W = inv(Sx)*C*inv(C'*inv(Sx)*C)*f;           %
                SINRo = (W'*Ss*W)/(W'*Sn*W);
                SINRi = SNR/(2*INR+1);
                Gain(k1,k2,k3) = Gain(k1,k2,k3) + SINRo/SINRi;
            end %end of ua
            k3 = k3 + 1;
        end %end of LNR
        k2 = k2 + 1;
    end %end of SNR
    k1 = k1 + 1;
end %end of INR

Gain = 10*log10( abs(Gain)/length(signalRange) );   

for k1 = 1:length(INRrange)
    for k2 = 1:length(SNRrange)
        [A1(k1,k2), I(k1,k2)] = max( Gain(k1,k2,:) );
    end
end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% QP2 constraints with Taylor weighting

%%%%
% Taylor
scale = N*0.5;
A = 1/pi*acosh(10^(SLL/20));
uroot=[1:1:floor((N-1)/2)]/scale;     % (N-1)/2 for odd and N/2 - 1 for N even
for n = 1:nBar-1
    Vn = nBar*sqrt( (A^2+(n-0.5)^2)/(A^2+(nBar-0.5)^2) );
    uroot(n) = Vn/scale;
end
if rem(N,2) == 0 % even
    roots = [0 uroot -uroot 1];
else
    roots = [0 uroot -uroot];
end

n = (-(N-1)/2:(N-1)/2)';
Vr = exp(j*n*pi*roots);
w0 = inv(Vr')*[1;zeros(N-1,1)];

wdBar = w0/norm(w0)^2;
PcWdBar = eye(N) - wdBar*inv(wdBar'*wdBar)*wdBar';
for h1 = 1:N
    for h2 = 1:N
        Rs(h1,h2) = 2*ud*sinc( (h1-h2)*ud );
    end
end
RsBar = PcWdBar*Rs*PcWdBar;
[U,lambda,V] = svd(RsBar);
Cs = V(:,1:Ne); %select 3 eigenvectors
C = [wdBar,Cs];
f = [1;zeros(Ne,1)];

%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

k1 = 1;
for INR = 10.^(INRrange/10)
    disp(['loop ' int2str(k1+3) ' of 6 ...'])
    k2 = 1;
    for SNR = 10.^(SNRrange/10)
        k3 = 1;
        for LNR = 10.^(LNRrange/10)
            Gain(k1,k2,k3) = 0;
            for ua = signalRange
                Va = exp(j*n*pi*ua);
                Ss = SNR*Va*Va';
                Sn = eye(N) + INR*Vi1*Vi1' + INR*Vi2*Vi2';
                Sx = Ss + Sn + LNR*eye(N);
                W = inv(Sx)*C*inv(C'*inv(Sx)*C)*f;           %
                SINRo = (W'*Ss*W)/(W'*Sn*W);
                SINRi = SNR/(2*INR+1);
                Gain(k1,k2,k3) = Gain(k1,k2,k3) + SINRo/SINRi;
            end %end of ua
            k3 = k3 + 1;
        end %end of LNR
        k2 = k2 + 1;
    end %end of SNR
    k1 = k1 + 1;
end %end of INR

Gain = 10*log10( abs(Gain)/length(signalRange) );   

for k1 = 1:length(INRrange)
    for k2 = 1:length(SNRrange)
        [A2(k1,k2), I(k1,k2)] = max( Gain(k1,k2,:) );
    end
end

figure
plot(SNRrange,A1(1,:))
hold on
plot(SNRrange,A2(1,:),'--')
plot(SNRrange,A1(2,:),SNRrange,A1(3,:))
plot(SNRrange,A2(2,:),'--',SNRrange,A2(3,:),'--')
axis([0 40 0 50])
grid
legend('Conventional','Taylor(-20 dB,{\it n=2})')
xlabel('{\itSNR} (dB)','Fontsize',14)
ylabel('Optimal {\itE}(gain) (dB)','Fontsize',14)

for k1 = 1:length(INRrange)
    text(1,A2(k1,1),['{\itINR}=' int2str(INRrange(k1)) ' dB'],'Fontsize',12,'VerticalAlignment','bottom')
end
采用静态方向图约束的LCMP波束形成器的阵列增益 - 阿英 - Mr.Right
      
        

  评论这张
 
阅读(465)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016