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

📄 scb.m

📁 基本Capon波束形成的算法
💻 M
字号:
% 仿真程序,SCB、NCCB、RCB、DCRCB对比
%  Shohei Kikuchi,Hiroyuki Tsuji,Akira Sano.
% “Autocalibration Algorithm for Robust Capon Beamforming” .
% SCB
% 信号生成
clear all;
M = 7;	%阵元个数
N = 1024;
d_lambda = 1/2;    %两个传感器之间距离与波长的比值

f_sa = 10000;    % 采样频率
d_lambda = 1/2;    %两个传感器之间距离与波长的比值
% 信号频率 
f_s1 = 500;
f_s2 = 500;



s1 = zeros(1,N);
s2 = zeros(1,N);


s1 = (10^(10/20))*exp(j*2*pi*f_s1*[(0:(N-1))]/f_sa);
s2 = (10^(25/20))*exp(j*2*pi*f_s2*[(0:(N-1))]/f_sa+pi/2);
% s1 = (10^(20/20))*sin(2*pi*f_s1*[(0:(N-1))]/f_sa);
% s2 = (10^(25/20))*sin(2*pi*f_s2*[(0:(N-1))]/f_sa+pi*2);
% s1 = (10^(30/20))*randn(1,N);
% s2 = (10^(25/20))*randn(1,N);
% s3 = (10^(35/20))*randn(1,N);
u_s1 = d_lambda*sin(-40*pi/180);
u_s2 = d_lambda*sin(0*pi/180);  % set 0 as SOI


a1 = exp(j*2*pi*u_s1*[(0:(M-1))]');
a2 = exp(j*2*pi*u_s2*[(0:(M-1))]');



 n = (randn(M,N)+j*randn(M,N))/sqrt(2);
 x = a1*s1+a2*s2+n;
R = x*x'/N;


A = inv(R);
w = A*a2/(a2'*A*a2);

phi = -90:1:90;

v = zeros(M,length(phi)); % array response vector
ww = v;
for i = 1:length(phi)
    v(:,i) = exp(j*2*d_lambda*pi*sin(phi(i)*pi/180)*[(0:(M-1))])/sqrt(M);
    ww(:,i) = A*v(:,i)/(v(:,i)'*A*v(:,i));
    sigma(i) = abs(ww(:,i)'*R*ww(:,i));
end

% w = reshape(w,1,M);
% for i = 1:length(phi)
%     a = exp(j*pi*sin(phi(i)*pi/180)*[(0:(M-1))]');
% %     sigma(i) = 1/(a'*A*a);  % AOA
% end

y = abs(w'*v);
y = 10*log10(y/max(y));

y_out = w'*x;
plot(phi,y);
axis([-90 90 -50 10]);

xlabel('Angel(degrees)');
ylabel('Beam Pattern(dB)');
grid on ;
figure;
plot(phi,10*log10(abs(sigma)));
axis([-90 90 -40 50]);
xlabel('Angel(degrees)');
ylabel('Power Spectrum(dB)');
% plot(20*log10(abs(y)))
grid on

⌨️ 快捷键说明

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