【DOA】一维长短基线干涉仪测向算法

目录

前言

一、数字式相位干涉仪

二、一维长短基线干涉仪测向算法

三、代码实现


前言

本节介绍一种采用一维长短基线法测DOA的算法,供大家参考学习。

一、数字式相位干涉仪

首先介绍数字式相位干涉仪,两部天线接收信号,会产生相位差,由相位差可得到入射角\theta,即可完成测向。

其中,两天线接收信号为

x_{1}(n)=k_{1}s(n)+v_{1}(n)

x_{2}(n)=k_{2}s(n-\tau )+v_{2}(n)

其中:

\tau =\tfrac{dsin\theta }{c}

n=0,1,2,...N-1

则两天线接收信号的相位差为

\phi =2\pi f\frac{dsin\theta }{c}

二、一维长短基线干涉仪测向算法

假设一维长短基线干涉仪的天线阵列结构如图所示。其中基线长度分别为d_{1}d_{2}。图中辐射源的方位角\theta定义为辐射源与参考原点的连线与 横轴正向的夹角,即取值范围为(0,\pi)

如果假设辐射源的波长为\lambda,则根据以上阵列结构和辐射源空间位置,可得天线 2、3与参考阵元1的接收信号相位差分别为

\Delta \psi _{21}= \frac{ 2\pi d_{1}cos\theta}{\lambda }

\Delta \psi _{31}= \frac{ 2\pi d_{2}cos\theta}{\lambda }

为了解相位模糊,对短基线d_{1}的选择准则是:由该基线构成的相位干涉仪能够对辐射源在半空间范围内无模糊的单值测向。也就是说,选择d_{1}使得

-\pi < \Delta\psi _{21}\> \leqslant \pi

d_{1}\leqslant \frac{\lambda }{2}

对于长基线d_{2},由于其长度大于\frac{\lambda }{2},因此该基线所对应天线接收信号的相位差\Delta\psi _{31}将超出(-\pi ,\pi )的范围,无法实现目标方位角的准确求解,此时就需要短基线来求解长基线的相位模糊。

因此,对于长短基线干涉仪测向,短基线主要用于解模糊,而长基线主要用于提高测向精度。

假设各天线接收的复信号为

s_{i}(t)=A_{i}(t)e^{​{j\varphi _{i}(t)}},i=1,2,3

为了简化分析,忽略时间t,仅考虑相位为\varphi_{i},则各基线对应的相位差为

\Delta \varphi _{21}=\varphi _{2}-\varphi _{1}

\Delta \varphi _{31}=\varphi _{3}-\varphi _{1}

由于信号相位\varphi _{i}\in [-\pi ,\pi ],故当短基线小于半波长,而长基线大于半波长时\Delta \varphi _{i1}\Delta \psi _{i1}(i=2,3)有如下关系:

\Delta \psi _{21}=\Delta \varphi _{21}

\Delta \psi _{31}=\Delta \varphi _{31}+k_{1}\cdot 2\pi

因此,对于长短基线法,其核心就在于求取k_{1}

由于

\frac{ 2\pi d_{1}cos\theta}{\lambda }=\Delta \psi _{21}=\Delta \varphi _{21}

可以得到,

cos\theta=\frac{\lambda \Delta \varphi _{21}}{2\pi d_{1}}

再由

 \frac{ 2\pi d_{2}cos\theta}{\lambda }=\Delta \varphi _{31}+k_{1}\cdot 2\pi

k_{1}=\frac{\tfrac{d2}{d1}\Delta\varphi _{21}-\Delta\varphi _{31}}{2\pi }

最后利用

\Delta \psi _{31}= \frac{ 2\pi d_{2}cos\theta}{\lambda }=\Delta \varphi _{31}+k_{1}\cdot 2\pi

可得 

cos\theta=\frac{\lambda }{2\pi d_{2}}(\Delta \varphi _{31}+k_{1}\cdot 2\pi )\doteq C_{1}

由于

\theta \in (0,\pi)

因此方位角\theta可从下式求得:

\theta=arccosC_{1}=arccos(\frac{\lambda }{2\pi d_{2}}(\Delta \varphi _{31}+k_{1}\cdot 2\pi ))

三、代码实现

%%线阵测DOA
clc;
clear all;
close all;
%% 雷达信号参数
c= 3e8;
radar_f = 50e6;%频率
lamda = c/radar_f;%波长
radar_theta = 60*2*pi/360;%入射角
pw = 0.5e-6;%脉宽
%% 干涉仪参数
d1= 2;
d2=30;
fs=500e6;
t=0:1/fs:pw-1/fs;
%% 距离差求取时延差
tau1=d1*sin(radar_theta)/c;
tau2=d2*sin(radar_theta)/c;
%% 到达三个天线的信号
x1=exp(1i*2*pi*radar_f*t);
x2=exp(1i*2*pi*radar_f*(t-tau1));
x3=exp(1i*2*pi*radar_f*(t-tau2));
% %% 天线间的相位差
diffPhase1 = mean(angle(x1.*conj(x2)));%%获取1,2号天线的相位差,保证无模糊
diffPhase2 = mean(angle(x1.*conj(x3)));%%获取1,3号天线的相位差,保证精确估计DOA
%% DOA估计
%求取k
k = (d2*diffPhase1/d1 -diffPhase2)/(2*pi);
C1 = lamda*(diffPhase2+k*2*pi)/(2*pi*d2);
theta = asin(C1)*360/(2*pi);

  • 11
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
基线干涉仪测向仿真可以使用Matlab进行实现。你可以使用Matlab中的信号处理工具箱来实现双基线干涉仪测向仿真,包括产生仿真信号、仿真干涉仪的输出和测向算法的实现。以下是一个简单的例子: 1. 产生仿真信号 可以使用Matlab中的sinc函数产生一个宽度为0.1的矩形脉冲信号,然后在该信号上添加高斯白噪声来模拟真实信号的复杂性。代码示例: ```matlab fs = 1000; % 采样率 t = 0:1/fs:1; % 时间向量 f0 = 50; % 信号频率 s = sinc(2*pi*f0*t); % 产生矩形脉冲信号 s = s + 0.1*randn(size(s)); % 添加高斯白噪声 ``` 2. 仿真干涉仪输出 可以使用Matlab中的fft函数对产生的信号进行FFT,然后模拟双基线干涉仪的输出。代码示例: ```matlab f = linspace(-fs/2,fs/2,length(t)); % 频率向量 c = 3e8; % 光速 L = 1; % 干涉仪臂长 lambda = c/f0; % 光波长 ph1 = 2*pi*L/lambda*sin(0); % 干涉仪臂1相位 ph2 = 2*pi*L/lambda*sin(pi/2); % 干涉仪臂2相位 s1 = s.*exp(1i*(2*pi*f*t*ph1)); % 干涉仪臂1输出 s2 = s.*exp(1i*(2*pi*f*t*ph2)); % 干涉仪臂2输出 I = abs(fftshift(fft(s1-s2))); % 干涉仪输出 ``` 3. 测向算法实现 双基线干涉仪测向算法通常包括相位差测量和三角函数计算。可以使用Matlab中的angle函数计算信号的相位,然后使用三角函数计算信号源的方向。代码示例: ```matlab phi = angle(s1) - angle(s2); % 相位差 theta = asin(phi/(2*pi*L/lambda)); % 信号源方向 ``` 以上是一个简单的双基线干涉仪测向仿真的Matlab实现。当然,具体实现应该根据实际需要进行调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旺旺碎冰冰!!!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值