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

Mr.Right

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

 
 
 

日志

 
 
关于我

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

网易考拉推荐

MPDR-DL波束形成器:失配的信号  

2012-03-16 10:23:37|  分类: 学习 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Figure 6.38
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Example 6.6.6 , MPDR_DL
%This routine is to test the Array Gain, when there is signal mismatch
%The relation between the Loading level and output SNR is studied.

clear all
close all

N = 10;
BWNN = 4/N;
n = (-(N-1)/2:(N-1)/2)';
signalRange = 0.25*BWNN*(0:1/50:1);

ui = [-0.30, 0.30];
Vi = exp(j*n*pi*ui);

C = exp(j*n*pi*[0]);          %MPDR
f = [1];

INR = 10^(30/10);
LNRRange = 10.^([-inf, 20, 30]/10);
SNRRange = 10.^([-10:10:30]/10);

h1 = 1;
for LNR = LNRRange
   h2 = 1;
 for SNR = SNRRange
    SINRi = SNR/(1+2*INR);
    h3 = 1;
    for ua = signalRange
       Vs = exp(j*n*pi*ua);
       Ss = SNR*Vs*Vs';     % 信号谱矩阵
       Sn = eye(N) + INR*Vi*Vi';  % 噪声谱矩阵
       Sx = Ss + Sn + LNR*eye(N);     % Diagonal Loading
       W = inv(Sx)*C*inv(C'*inv(Sx)*C)*f;           %consider White Noise only
       SINR0 = (W'*Ss*W)/(W'*Sn*W);
       Gain(h1,h2,h3) = SINR0/SINRi;
       h3 = h3+1;
      end
      h2 = h2 + 1;
   end
   h1 = h1 + 1;
end

Gain = 10*log10(abs(Gain));

G = squeeze(Gain(1,:,:));
u = signalRange/BWNN;
plot(u,G(1,:),'-',u,G(2,:),'--',u,G(3,:),'-.',u,G(4,:),':',u,G(5,:),'-x');            %BWnn = 4/N

MPDR-DL波束形成器:失配的信号 - 阿英 - Mr.Right

 
grid
title('MPDR\_DL with DOA mismatch, um=0, ui=+/-0.30, INR=30dB(each), LNR=0')
xlabel('{\itu}_{\ita} /{\itBW}_{\itNN}','Fontsize',14)
ylabel('Array gain (dB)','Fontsize',14)
h=legend('{\itSNR}=-10 dB','{\itSNR}=0 dB','{\itSNR}=10 dB','{\itSNR}=20 dB','{\itSNR}=30 dB',3);
set(h,'Fontsize',12)
axis([0 0.25 -50 50])     
set(gca, 'xtick',0:0.02:0.25)

figure
G = squeeze(Gain(2,:,:));
u = signalRange/BWNN;
plot(u,G(1,:),'-',u,G(2,:),'--',u,G(3,:),'-.',u,G(4,:),':',u,G(5,:),'-x');            %BWnn = 4/N

MPDR-DL波束形成器:失配的信号 - 阿英 - Mr.Right

 
grid
title('MPDR\_DL with DOA mismatch, um=0, ui=+/-0.30, INR=30dB(each), LNR=20dB')
xlabel('{\itu}_{\ita} /{\itBW}_{\itNN}','Fontsize',14)
ylabel('Array gain (dB)','Fontsize',14)
h=legend('{\itSNR}=-10 dB','{\itSNR}=0 dB','{\itSNR}=10 dB','{\itSNR}=20 dB','{\itSNR}=30 dB',3);
set(h,'Fontsize',12)
axis([0 0.25 0 50])     
set(gca, 'xtick',0:0.02:0.25)

figure
G = squeeze(Gain(3,:,:));
u = signalRange/BWNN;
plot(u,G(1,:),'-',u,G(2,:),'--',u,G(3,:),'-.',u,G(4,:),':',u,G(5,:),'-x');            %BWnn = 4/N

MPDR-DL波束形成器:失配的信号 - 阿英 - Mr.Right

 
grid
title('MPDR\_DL with DOA mismatch, um=0, ui=+/-0.30, INR=30dB(each), LNR=30dB')
xlabel('{\itu}_{\ita} /{\itBW}_{\itNN}','Fontsize',14)
ylabel('Array gain (dB)','Fontsize',14)
h=legend('{\itSNR}=-10 dB','{\itSNR}=0 dB','{\itSNR}=10 dB','{\itSNR}=20 dB','{\itSNR}=30 dB',3);
set(h,'Fontsize',12)
axis([0 0.25 0 50])     
set(gca, 'xtick',0:0.02:0.25)


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Figure 6.39
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Example 6.6.6 , MPDR_DL
%This routine is to test the Average Array Gain, when signal direction
%is a unform r.v. in [-0.1 0.1]
%The relation between the Loading level and output SNR is studied.

clear all
close all

N = 10;
BWNN = 4/N;
n = (-(N-1)/2:(N-1)/2)';

signalRange = -0.1:1/100:0.1;
INRrange = [10 20 30];
SNRrange = [-10:1:30];
LNRrange = [-20:1:50];

ui1 = -0.30;
ui2 = 0.30;

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

C = exp(j*n*pi*[0]);
f = [1];

k1 = 1;
for INR = 10.^(INRrange/10)
    disp(['loop ' int2str(k1) ' of ' int2str(length(INRrange)) ' ...'])
    k2 = 1;
    for SNR = 10.^(SNRrange/10)
        k3 = 1;
        SINRi = SNR/(1+2*INR);
        for LNR = 10.^(LNRrange/10)
            Gain(k1,k2,k3) = 0;
            for ua = signalRange
                Vs = exp(j*n*pi*ua);
                Ss = SNR*Vs*Vs';
                Sn = eye(N) + INR*Vi1*Vi1'+ INR*Vi2*Vi2';
                Sx = Ss + Sn + LNR*eye(N);     % Diagonal Loading
                W = inv(Sx)*C*inv(C'*inv(Sx)*C)*f;           %consider White Noise only
                SINR0 = (W'*Ss*W)/(W'*Sn*W);
                Gain(k1,k2,k3) = Gain(k1,k2,k3) + SINR0/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(real(Gain)/length(signalRange) ) ;

for k1 = 1:size(Gain,1)
    for k2 = 1:size(Gain,2)
        [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')
xlabel('{\itSNR} (dB)','Fontsize',14)
ylabel('Optimal gain (dB)','Fontsize',14)
h=legend('{\itINR}=10 dB','{\itINR}=20 dB','{\itINR}=30 dB','3 dB points',3);
set(h,'Fontsize',12)
%title('MPDR\_DL, ui=+/-0.30, ua~U(-0.1, 0.1), N=10')
axis([-10 30 0 50])
grid

SNRLNR = [-10 0 10 20];
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

MPDR-DL波束形成器:失配的信号 - 阿英 - Mr.Right

 

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

历史上的今天

在LOFTER的更多文章

评论

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

页脚

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