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

Mr.Right

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

 
 
 

日志

 
 
关于我

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

网易考拉推荐

具有对角加载的LCMP波束形成器  

2012-03-16 12:32:55|  分类: 学习 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Figure 6.51
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Example 6.7.8 LCMV beamformer
%This routine is to test the Array Gain, when there is signal mismatch


clear all
close all

N = 10;
BWNN = 4/N;
n = (-(N-1)/2:(N-1)/2)';
SNRrange = 0:10:30;
signalRange = 0:BWNN/2/200:BWNN/2;

detU = 0.0866;
C = exp(j*n*pi*[0 -detU detU]);
f = [1;sin(-(N/2)*pi*detU)./(N*sin(-.5*pi*detU));sin((N/2)*pi*detU)./(N*sin(.5*pi*detU))];
Vi1 = exp(j*n*pi*0.30);
Vi2 = exp(-j*n*pi*0.30);
INR = 10^(30/10);
LNR = 10^(15/10);

k1 = 1;
for SNR = 10.^(SNRrange/10)
    k2 = 1;
    for ua = 0:BWNN/2/200:BWNN/2
        Va = exp(j*n*pi*ua);    
        Ss = SNR*Va*Va';
        Sn = INR*Vi1*Vi1' + INR*Vi2*Vi2' + eye(N);       %LCMP

具有对角加载的LCMP波束形成器 - 阿英 - Mr.Right
         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/(1+2*INR);
        A(k1,k2) = SINRo/SINRi;
        k2 = k2+1;
    end  
    k1 = k1 + 1;
end


A = 10*log10(abs(A));
x = signalRange/BWNN;
plot(x,A(1,:),'-',x,A(2,:),'--',x,A(3,:),'-.',x,A(4,:),':');
%BWnn = 4/N
grid
xlabel('{\itu}_{\ita} /{\itBW}_{\itNN}','Fontsize',14)
ylabel('Array gain (dB)','Fontsize',14)
h=legend('{\itSNR}=0 dB','{\itSNR}=10 dB','{\itSNR}=20 dB','{\itSNR}=30 dB',3);
set(h,'Fontsize',12)
title('LCMP\_DL, ui=+/-0.30(10dB each), LNR=10dB, uc=[0,+/-0.0866], g=[1;Bc;Bc]')
set(gca,'xtick',0:0.02:0.25)
axis([0 0.25 20 50])     
line([0.0866/BWNN 0.0866/BWNN],[-50 45])  
text(0.0866/BWNN+0.01,45,'{\itu}_{{\itc}1}','Fontsize',12)

具有对角加载的LCMP波束形成器 - 阿英 - Mr.Right

   
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Figure 6.52
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Example 6.7.8 LCMV beamformer
%This routine is to test the Array Gain, when there is signal mismatch


clear all
close all

N = 10;
BWNN = 4/N;
n = (-(N-1)/2:(N-1)/2)';
SNRrange = 0:10:30;
signalRange = 0:BWNN/2/200:BWNN/2;

detU = 0.0866;
C = exp(j*n*pi*[0 -detU detU]);
f = [1;sin(-(N/2)*pi*detU)./(N*sin(-.5*pi*detU));sin((N/2)*pi*detU)./(N*sin(.5*pi*detU))];
Vi1 = exp(j*n*pi*0.30);
Vi2 = exp(-j*n*pi*0.30);
INR = 10^(30/10);
LNR = 10^(20/10);

k1 = 1;
for SNR = 10.^(SNRrange/10)
    k2 = 1;
    for ua = 0:BWNN/2/200:BWNN/2
        Va = exp(j*n*pi*ua);    
        Ss = SNR*Va*Va';
        Sn = INR*Vi1*Vi1' + INR*Vi2*Vi2' + eye(N);       %LCMP
        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/(1+2*INR);
        A(k1,k2) = SINRo/SINRi;
        k2 = k2+1;
    end  
    k1 = k1 + 1;
end


A = 10*log10(abs(A));
x = signalRange/BWNN;
plot(x,A(1,:),'-',x,A(2,:),'--',x,A(3,:),'-.',x,A(4,:),':');
%BWnn = 4/N
grid
xlabel('{\itu}_{\ita} /{\itBW}_{\itNN}','Fontsize',14)
ylabel('Array gain (dB)','Fontsize',14)
h=legend('{\itSNR}=0 dB','{\itSNR}=10 dB','{\itSNR}=20 dB','{\itSNR}=30 dB',3);
set(h,'Fontsize',12)
title('LCMP\_DL, ui=+/-0.30(10dB each), LNR=10dB, uc=[0,+/-0.0866], g=[1;Bc;Bc]')
set(gca,'xtick',0:0.02:0.25)
axis([0 0.25 20 50])     
line([0.0866/BWNN 0.0866/BWNN],[-50 45])  
text(0.0866/BWNN+0.01,45,'{\itu}_{{\itc}1}','Fontsize',12)
  


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Figure 6.53
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Example 6.7.8 LCMV beamformer
%This routine is to test the Array Gain, when there is signal mismatch


clear all
close all

N = 10;
BWNN = 4/N;
n = (-(N-1)/2:(N-1)/2)';
SNRrange = 0:10:30;
signalRange = 0:BWNN/2/200:BWNN/2;

detU = 0.0866;
C = exp(j*n*pi*[0 -detU detU]);
f = [1;sin(-(N/2)*pi*detU)./(N*sin(-.5*pi*detU));sin((N/2)*pi*detU)./(N*sin(.5*pi*detU))];
Vi1 = exp(j*n*pi*0.30);
Vi2 = exp(-j*n*pi*0.30);
INR = 10^(10/10);
LNR = 10^(10/10);

k1 = 1;
for SNR = 10.^(SNRrange/10)
    k2 = 1;
    for ua = 0:BWNN/2/200:BWNN/2
        Va = exp(j*n*pi*ua);    
        Ss = SNR*Va*Va';
        Sn = INR*Vi1*Vi1' + INR*Vi2*Vi2' + eye(N);       %LCMP
        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/(1+2*INR);
        A(k1,k2) = SINRo/SINRi;
        k2 = k2+1;
    end  
    k1 = k1 + 1;
end


A = 10*log10(abs(A));
x = signalRange/BWNN;
plot(x,A(1,:),'-',x,A(2,:),'--',x,A(3,:),'-.',x,A(4,:),':');
%BWnn = 4/N
grid
xlabel('{\itu}_{\ita} /{\itBW}_{\itNN}','Fontsize',14)
ylabel('Array gain (dB)','Fontsize',14)
h=legend('{\itSNR}=0 dB','{\itSNR}=10 dB','{\itSNR}=20 dB','{\itSNR}=30 dB',3);
set(h,'Fontsize',12)
title('LCMP\_DL, ui=+/-0.30(10dB each), LNR=10dB, uc=[0,+/-0.0866], g=[1;Bc;Bc]')
set(gca,'xtick',0:0.02:0.25)
axis([0 0.25 -10 30])     
line([0.0866/BWNN 0.0866/BWNN],[-50 45])  
text(0.0866/BWNN+0.002,25,'{\itu}_{{\itc}1}','Fontsize',12)
  


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Figure 6.54
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Example 6.7.8 LCMV beamformer
%This routine is to test the Array Gain, when there is signal mismatch


clear all
close all

N = 10;
BWNN = 4/N;
n = (-(N-1)/2:(N-1)/2)';
SNRrange = 0:10:30;
signalRange = 0:BWNN/2/200:BWNN/2;

detU = 0.0866;
C = exp(j*n*pi*[0 -detU detU]);
f = [1;sin(-(N/2)*pi*detU)./(N*sin(-.5*pi*detU));sin((N/2)*pi*detU)./(N*sin(.5*pi*detU))];
Vi1 = exp(j*n*pi*0.30);
Vi2 = exp(-j*n*pi*0.30);
INR = 10^(10/10);
LNR = 10^(15/10);

k1 = 1;
for SNR = 10.^(SNRrange/10)
    k2 = 1;
    for ua = 0:BWNN/2/200:BWNN/2
        Va = exp(j*n*pi*ua);    
        Ss = SNR*Va*Va';
        Sn = INR*Vi1*Vi1' + INR*Vi2*Vi2' + eye(N);       %LCMP
        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/(1+2*INR);
        A(k1,k2) = SINRo/SINRi;
        k2 = k2+1;
    end  
    k1 = k1 + 1;
end


A = 10*log10(abs(A));
x = signalRange/BWNN;
plot(x,A(1,:),'-',x,A(2,:),'--',x,A(3,:),'-.',x,A(4,:),':');
%BWnn = 4/N
grid
xlabel('{\itu}_{\ita} /{\itBW}_{\itNN}','Fontsize',14)
ylabel('Array gain (dB)','Fontsize',14)
h=legend('{\itSNR}=0 dB','{\itSNR}=10 dB','{\itSNR}=20 dB','{\itSNR}=30 dB',3);
set(h,'Fontsize',12)
%title('LCMP\_DL, ui=+/-0.30(10dB each), LNR=10dB, uc=[0,+/-0.0866], g=[1;Bc;Bc]')
set(gca,'xtick',0:0.02:0.25)
axis([0 0.25 -10 30])     
line([0.0866/BWNN 0.0866/BWNN],[-50 45])  
text(0.0866/BWNN+0.002,25,'{\itu}_{{\itc}1}','Fontsize',12)
  


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Figure 6.55
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Example 6.7.8  LCMP, optimal Loading
%This routine is to test the Array Gain, when there is signal mismatch
% Directional Constraints

clear all
close all

N = 10;
BWNN = 4/N;
n = (-(N-1)/2:(N-1)/2)';
signalRange = [-0.1:1/100:0.1];
SNRrange = [-10:1:40];
INRrange = [10 20 30];
LNRrange = [-20:2:50];

u1 = 0.0866;
uc = [0, -u1, u1];
C = exp(j*n*pi*uc);
f = [1;sin(-(N/2)*pi*u1)./(N*sin(-.5*pi*u1));sin((N/2)*pi*u1)./(N*sin(.5*pi*u1))];

Vi1 = exp(j*n*pi*0.30);
Vi2 = exp(-j*n*pi*0.30);

k1 = 1;
for INR = 10.^(INRrange/10)
    disp(['loop ' int2str(k1) ' of 3 ...'])
    k2 = 1;
    for SNR = 10.^(SNRrange/10)
        SINRi = SNR/(2*INR+1);
        k3 = 1;
        for LNR = 10.^(LNRrange/10)
            Gain(k1,k2,k3) = 0;
            for ua = signalRange
                Vs = exp(j*n*pi*ua);
                Sn = eye(N) + INR*Vi1*Vi1' + INR*Vi2*Vi2' ;
                Ss = SNR*Vs*Vs';
                Sx = Ss + Sn + LNR*eye(N);       %LCMP with loading
                W = inv(Sx)*C*inv(C'*inv(Sx)*C)*f;           %
                SINRo = (W'*Ss*W)/(W'*Sn*W);
                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,:),'-.')
axis([-10 40 0 50])
xlabel('{\itSNR} (dB)','Fontsize',14)
ylabel('Optimal gain (dB)','Fontsize',14)
title('LCMP\_DL(DIR, opt), ui=+/-0.30, ua~U(-0.1, 0.1), N=10, u_c=[-0.0866, 0, 0.0866], g=[Bc, 1, Bc]')
grid
hold on
plot(c,d,'-o')
h=legend('{\itINR}=10 dB','{\itINR}=20 dB','{\itINR}=30 dB','3 dB points',3);
set(h,'Fontsize',12)

SNRLNR = [-10 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

具有对角加载的LCMP波束形成器 - 阿英 - Mr.Right
  评论这张
 
阅读(486)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

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

页脚

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