• 大小: 5KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-08
  • 语言: Matlab
  • 标签: 波束形成  

资源简介

自适应波束形成的MATLAB仿真代码,麦克风阵列、人工智能领域的人员参考

资源截图

代码片段和文件信息

% 宽带信号频域处理 

 
clear all 
clc 
% f0 = 1.3*10^9;                  % 信号中心频率 
% fr=1.3*10^9;  
% B = 50*10^6;                    % 信号带宽 
f0 = 2.2*10^3;                  % 信号中心频率 
fr=2.2*10^3;  
B = 3.6*10^3; 
fl = f0-B/2;                    % 信号起始频率 
fh = f0+B/2; 
Tr = 50*10^(-6);                % 工作周期 
T = 10*10^(-6);                 % 信号持续时间,要求大于孔径渡越时间 
% Tr = 5;                % 工作周期 
% T = 1;                 % 信号持续时间,要求大于孔径渡越时间 
fs = 100*10^6;                  % 采样频率 
snr = [40;0];                   % 信噪比 
w0 = 40/180*pi;                  % 指向角 
M =8;                          % 阵元数为M 
Kr=1; 
Ks = 2;                         % 信号数目 
seta =[0/180*pi40/180*pi];     % 干扰信号方向 
Nm = 6;                        % 驻留周期个数 
Nr = Tr*fs;                     % 采样点数 
N = T*fs; 
J = 1000;                       % FFT的点数 
NN = Nm*Nr/J;                   % 频域快拍数  为么? 
c= 340;                     % 光速 
d = 0.5*c/f0;                   % 阵元间距 
x = zeros(M1);                 % 数据矢量 
R = zeros(MM);                 % 接收数据协方差矩阵 
 
tic 
% 产生阵列接收的宽带数据 
x2 = LFMsource(Mf0flBfsTsetasnr2); % 期望信号的脉冲宽度为T,出现时间不定 
 
% 产生干扰信号 
x1 = LFMsource(Mf0flBfsTrsetasnr1); 
% u = 1:Nr; 
% for k=1:Kr 
% for n=1:Nr 
%     fai(kn) = rand; 
%  s(kn) = exp(i*2*pi*(fr*u(n)/fs+fai(kn)));       % 源信号 
% end 
% end 
% for k=1:Kr 
% for m=1:M 
%         A(mk)=exp(-i*2*pi*d*fr*(m-1)*sin(seta(k))/c); 
%     end 
% end 
% % 阵列接收信号 
% x1 = 10.^(snr(1)/20).*A*s;  
% 阵列接收的和信号 
t1 = 1000;                                 % 任意选择的期望信号出现位置 
x1(:(t1+1):(t1+N)) = x1(:(t1+1):(t1+N)) + x2; 
for nm=1:Nm 
    x(:((nm-1)*Nr+1):(nm*Nr)) = x1; 
end 
noise = randn(MNm*Nr)+i*randn(MNm*Nr);   % 噪声 
x = x + noise; 
 
% 时域信号变换为频域信号 
fft_8_1; 
toc 
tic 
% 构造方向矢量 
w = -90*pi/180:0.01:90*pi/180; 
WW = length(w); 
P = zeros(1WW); 
Wav=zeros(M1); 
% 计算不同子频点的加权向量                                                               
F = fl:B/(J/2-1):fh; 
for k = 1:250                      %为么是250? 
    for m = 1:M                     % 估计子频点对应的协方差矩阵 
        for n = 1:NN 
            xf(nm) = X(knm); 
        end 
    end 
    R = xf.‘*conj(xf)./NN;%   xf.‘?? 
    Ri = inv(R); 
    for m=1:M 
        a0(m1) = exp(-i*2*pi*d*F(k+250)*(m-1)*sin(w0)/c);% 指向向量  
    end  
    W = Ri*a0/(a0‘*Ri*a0);    

评论

共有 条评论