⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 demo6_6_doamis.m

📁 本文提出在数字移动通信中子带滤波器组处理可以提高不同阵元信号的相关性
💻 M
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% demo6_6_DOAmis.m
% K. Bell 12/2/99
% updated by K. Bell 11/20/00
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% DOA Mismatch 
% 
%************************
% Array
%************************
clear all

N = 10;                                 % Elements in array
d = 0.5;                                % sensor spacing half wavelength wrt wc
D = [-(N-1)/2:1:(N-1)/2].';
BWNN = 2/(N*d);
u=[-1:0.001:1];
us = [0 [0.001:0.001:0.01] [0.015:0.005:0.2]];
ns = length(us);
nu=length(u);
vv = exp(j*pi*D*u);
uI = 0.3;
vI = exp(j*2*pi*d*D*uI);

sigma_i = 10^(10/10);

%************************
% Source
%************************
AS = exp(j*2*pi*d*D*us);


sigma_n = 1;
sigma_s = 10^(20/10);
DL = 10^(20/10);
%DL=0;
SINRin = sigma_s/(sigma_i+sigma_n);


T = zeros(1,ns);
Tc = zeros(1,ns);
Tn = zeros(1,ns);
I = zeros(1,ns);
Ic = zeros(1,ns);
In = zeros(1,ns);
A = zeros(1,ns);
An = zeros(1,ns);
Ac = zeros(1,ns);
O = zeros(1,ns);
On = zeros(1,ns);
Oc = zeros(1,ns);

figure(1)
clf
whitebg('k')
figure(2)
clf
whitebg('k')
for n=1:ns
   Rs = sigma_s*AS(:,n)*AS(:,n)';
   wc = AS(:,1)/N;
   Bc = 10*log10(abs(wc'*vv).^2);
   
   Snc = sigma_i*vI*vI';
   Sn = Snc+sigma_n*eye(N);
   Sx = Rs+Sn;
   Sxinv = inv(Sx+DL*eye(N));
   Sninv = inv(Sn+DL*eye(N));
   w = Sninv*AS(:,1)/real(AS(:,1)'*Sninv*AS(:,1));
   wn = Sxinv*AS(:,1)/real(AS(:,1)'*Sxinv*AS(:,1));
   
   T(n) = 10*log10(real(w'*w));
   Tc(n) = 10*log10(real(wc'*wc));
   Tn(n) = 10*log10(real(wn'*wn));
   O(n) = 10*log10(real(w'*Rs*w));
   Oc(n) = 10*log10(real(wc'*Rs*wc));
   On(n) = 10*log10(real(wn'*Rs*wn));
   I(n) = 10*log10(real(w'*Snc*w));
   Ic(n) = 10*log10(real(wc'*Snc*wc));
   In(n) = 10*log10(real(wn'*Snc*wn));
   A(n) = 10*log10(real((w'*Rs*w)/(w'*Sn*w))/SINRin);
   Ac(n) = 10*log10(real((wc'*Rs*wc)/(wc'*Sn*wc))/SINRin);
   An(n) = 10*log10(real((wn'*Rs*wn)/(wn'*Sn*wn))/SINRin);
   B = 10*log10(abs(w'*vv).^2);
   Bn = 10*log10(abs(wn'*vv).^2);
   
   figure(1)
   h=plot(u,B);
   hold on
   hc=plot(u,Bc,'g');
   set(hc,'Linewidth',1.0)
   
   hp=plot(u,Bn,'m');
   set(hp,'Linewidth',1.0)
   hh=plot(us(:,n)*[1 1],[-60 30],'c');
   set(hh,'Linewidth',1.0)
   
   hh=plot(uI*[1 1],[-60 30],'r');
   set(hh,'Linewidth',1.0)
   
   xlabel('u')
   ylabel('Beampattern (dB)')
   title(['Signal Power ' num2str(10*log10(sigma_s)) ' dB, DL = ' num2str(10*log10(DL)) ' dB'])
   grid on
   hold off
   axis([-1 1 -50 20])
   legend([hc h hp],'Conventional','MVDR','MPDR')
   
   
   figure(2)
   subplot(4,1,1)
   h1=plot(us(1:n),A([1:n]),'y');
   set(h1,'Linewidth',1.0)
   hold on
   h2=plot(us(1:n),Ac([1:n]),'g');
   set(h2,'Linewidth',1.0)
   h3=plot(us(1:n),An([1:n]),'m');
   set(h3,'Linewidth',1.0)
   
   hold off
   axis([0 0.2 -30 30])
   grid on
   xlabel('u_a')
   ylabel('Array gain (dB)')
   legend([h2 h1 h3],'Conventional','MVDR','MPDR',3)
   
   subplot(4,1,2)
   h=plot(us(1:n),O([1:n]),'y');
   set(h,'Linewidth',1.0)
   hold on
   h=plot(us(1:n),Oc([1:n]),'g');
   set(h,'Linewidth',1.0)
   h=plot(us(1:n),On([1:n]),'m');
   set(h,'Linewidth',1.0)
   hold off
   SDB = 10*log10(sigma_s);
   v=[0 0.2 SDB-50 SDB+10];
   axis(v)
   grid on
   xlabel('u_a')
   ylabel('Signal Pwr. (dB)')
   
   subplot(4,1,3)
   h=plot(us(1:n),T([1:n]),'y');
   set(h,'Linewidth',1.0)
   hold on
   h=plot(us(1:n),Tc([1:n]),'g');
   set(h,'Linewidth',1.0)
   h=plot(us(1:n),Tn([1:n]),'m');
   set(h,'Linewidth',1.0)
   hold off
   axis([0 0.2 -20 20])
   grid on
   xlabel('u_a')
   ylabel('Sensit. (Noise Pwr.)(dB)')
   subplot(4,1,4)
   h=plot(us(1:n),I([1:n]),'y');
   set(h,'Linewidth',1.0)
   hold on;
   h=plot(us(1:n),Ic([1:n]),'g');
   set(h,'Linewidth',1.0)
   h=plot(us(1:n),In([1:n]),'m');
   set(h,'Linewidth',1.0)
   hold off
   axis([0 0.2 -80 20])
   grid on
   xlabel('u_a')
   ylabel('Interference Pwr. (dB)')
   drawnow
   %pause
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -