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

📄 doa估计的rbf是实现.txt

📁 在阵列中进行DOA估计的matlab程序
💻 TXT
字号:
% ==== ==== 取协方差矩阵的上三角的数据进行学习
% ==== ==== 同时输出结果直接为角度值
% ==== ==== 不带多径的条件下,测角性能随着信噪比的变化

clc
close all
clear all

% ==== 阵列参数
M=12;          % 阵元数目
theta=[0:.2:5];
c=3.0e+8;    % 光速
f0=500e6;
lamda=c/f0;  % 波长
d=lamda/2;  % 阵元间距
snap=1;       % 快拍数目

% ====== 以下是产生线性调频信号 ====== %
fs=1.0e+6;        % 采样率
a=[0:1:M-1]';     % 阵列向量
t=[0:snap-1]/fs; % 采样时间

% ==== ==== ==== 训练过程
% ====== 产生线性调频信号的包络
s=exp(j*2*pi*f0*t);
% ====== 阵列流型矢量
a_theta=exp(j*pi*2*d/lamda*a*sin(theta*pi/180));
X=a_theta*s;
x=[];
for ii=1:length(theta)
      Rx=X(:,ii)*X(:,ii)';
      for i1=1:M
            for i2=i1:M
                  if i2==i1 x=[x Rx(i1,i2)];else x=[x real(Rx(i1,i2)) imag(Rx(i1,i2))];end
            end
      end
      xi(ii,=x/norm(x);x=[];
end

%初始化数据
tt=theta;

err_goal=1.0e-6;sc=5;
net=newrb(xi.',tt,err_goal,sc,200,1);
%测试
ty=sim(net,xi.');tE=tt-ty;
tSSE=sse(tE);tMSE=mse(tE);
%预测(测试)曲线
figure(1);plot(theta,'-+');hold on;plot(ty,'r:*');legend('实际值','预测值');title('RBF网络模型输出预测曲线');
xlabel('输入样本点');ylabel('角度 (\circ)');
figure(2);plot(ty-theta,'mo-');title('RBF网络模型预测误差曲线');
xlabel('输入样本点');ylabel('预测误差 (\circ)');

% ==== ==== ==== ==== 估计
snap0=10;t0=[0:snap0-1]/fs;
s0=exp(j*2*pi*f0*t0);

theta0=2.5;a_theta0=exp(j*pi*2*d/lamda*a*sin(theta0*pi/180));
SNR=[0:2:30];snr=10.^(-SNR./20);

for kl=1:100
      kl
      noise0=(randn(M,snap0)+j*randn(M,snap0))/sqrt(2);
      for ks=1:length(SNR)
            noise=snr(ks)*noise0;
            X0=a_theta0*s0+noise; % 加噪声
            x0=zeros(1,M^2);
            Rx0=X0*X0'/snap0;
            x0=[];
            for i1=1:M
                  for i2=i1:M
                        if i2==i1 x0=[x0 Rx0(i1,i2)];else x0=[x0 real(Rx0(i1,i2)) imag(Rx0(i1,i2))];end
                  end
            end
            x0=x0./norm(x0);
            cita(ks,kl)=sim(net,x0.');
      end
end

for ks=1:length(SNR)
      std_cita(ks)=sqrt(mean((cita(ks,-theta0).^2));
end

figure(3);plot(SNR,std_cita,'m+-');xlabel('信噪比  (dB)');ylabel('测角误差 (\circ)');
title('测角误差随信噪比的变化');axis tight;

⌨️ 快捷键说明

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