均匀面阵抗干扰算法原理及MATLAB仿真
仿真方向图,频谱图,计算输出SNR、INR、SINR
文章目录
- 前言
- 一、抗干扰算法原理
- 二、抗干扰算法仿真
- 三、MATLAB源代码
- 总结
前言
\;\;\;\;\; 在阵列信号处理中,信号的抗干扰处理是重中之重,传输期望信号的时候总是会伴随有人为的或者非人为的干扰,那么就需要经过信号处理算法将干扰抑制掉。在之前的文章中已经介绍过MVDR算法应用于线阵的情况,本文介绍均匀面阵抗干扰算法的原理和MATLAB仿真,通过绘制方向图,频谱图,计算阵列输出信号的SNR、INR、SINR来验证成功抑制掉了干扰。
提示:以下是本篇文章正文内容,尊重版权,引用请附上链接。
一、抗干扰算法原理
下图为面阵入射信号模型,
整个均匀矩形阵列的阵元数为M*N ,阵列接收信号可以表示为:
z ( t ) = A s ( t ) + n ( t ) \boldsymbol{z}(t)=\boldsymbol A \boldsymbol s(t)+\boldsymbol n(t) z(t)=As(t)+n(t)其中 A \boldsymbol A A是维度为(MN×K)的均匀矩形阵列的阵列流形,可以表示为如下所示的式子:
A = [ a ( θ k , φ 1 ) , a ( θ 2 , φ 2 ) , ⋯ , a ( θ K , φ K ) ] T \mathbf{A}=\begin{bmatrix}\boldsymbol{a}(\theta_k,\varphi_1),\boldsymbol{a}(\theta_2,\varphi_2),\cdots,\boldsymbol{a}(\theta_K,\varphi_K)\end{bmatrix}^T A=[a(θk,φ1),a(θ2,φ2),⋯,a(θK,φK)]T a ( θ k , φ k ) \boldsymbol{a}(\theta_k,\varphi_k) a(θk,φk)为第k个入射信号的导向矢量,仅仅由阵列的阵元排布和参考阵元的选择所决定,用公式可以表示为:
a ( θ k , φ k ) = a x ( θ k , φ k ) ⊗ a y ( θ k , φ k ) ∈ C M N × 1 \boldsymbol{a}(\theta_k,\varphi_k)=\boldsymbol{a}_x(\theta_k,\varphi_k)\otimes\boldsymbol{a}_y(\theta_k,\varphi_k)\in C^{MN\times1} a(θk,φk)=ax(θk,φk)⊗ay(θk,φk)∈CMN×1 其中 ⊗ \otimes ⊗表示的是克罗内克内积(Kronecker Product), a x ( θ k , φ k ) \boldsymbol{a}_x(\theta_k,\varphi_k) ax(θk,φk)表示x轴方向上均匀线阵接收信号的方向矢量, a y ( θ k , φ k ) \boldsymbol{a}_y(\theta_k,\varphi_k) ay(θk,φk)表示y轴方向上均匀线阵接收信号的方向矢量,可分别写为如下数学表达式:
a x ( θ k , φ k ) = [ a x , 0 ( θ k , φ k ) , a x , 1 ( θ k , φ k ) , ⋯ , a x , M − 1 ( θ k , φ k ) ] T \boldsymbol{a}_x(\theta_k,\varphi_k)=\begin{bmatrix}a_{x,0}(\theta_k,\varphi_k),a_{x,1}(\theta_k,\varphi_k),\cdots,a_{x,M-1}(\theta_k,\varphi_k)\end{bmatrix}^T ax(θk,φk)=[ax,0(θk,φk),ax,1(θk,φk),⋯,ax,M−1(θk,φk)]T a y ( θ k , φ k ) = [ a y , 0 ( θ k , φ k ) , a y , 1 ( θ k , φ k ) , ⋯ , a y , N − 1 ( θ k , φ k ) ] T \boldsymbol{a}_y(\theta_k,\varphi_k)=\begin{bmatrix}a_{y,0}(\theta_k,\varphi_k),a_{y,1}(\theta_k,\varphi_k),\cdots,a_{y,N-1}(\theta_k,\varphi_k)\end{bmatrix}^T ay(θk,φk)=[ay,0(θk,φk),ay,1(θk,φk),⋯,ay,N−1(θk,φk)]T 在实际算法运算中,通常会根据多次数据采样来获得阵列接收数据协方差矩阵的估计,可以表示为如下式子:
R ^ = 1 K ∑ k = 1 K Z ( k ) Z H ( k ) \hat{\mathbf{R}}=\frac{1}{K}\sum_{k=1}^{K}\boldsymbol{Z}(k)\boldsymbol{Z}^{H}(k) R^=K1k=1∑KZ(k)ZH(k) 与线阵一样,从而就可以求得最优权矢量 w \boldsymbol w w的表达式为:
w = R − 1 a ( θ 0 , φ 0 ) a H ( θ 0 , φ 0 ) R − 1 a ( θ 0 , φ 0 ) \boldsymbol w=\frac{\mathbf{R}^{-1}\boldsymbol{a}\left(\theta_0,\varphi_0\right)}{\boldsymbol{a}^H\left(\theta_0,\varphi_0\right)\mathbf{R}^{-1}\boldsymbol{a}\left(\theta_0,\varphi_0\right)} w=aH(θ0,φ0)R−1a(θ0,φ0)R−1a(θ0,φ0) 那么,阵列输出信号为:
y ( k ) = w H Z ( k ) y(k) = \boldsymbol w^{H}\boldsymbol Z(k) y(k)=wHZ(k) 部分符号的维度如下图所示:
二、抗干扰算法仿真
\;\;\;\;\; 仿真参数设置为如下,每个参数都可以修改,修改后仿真结果跟着变,可以观察不同参数下的仿真结果。
M=4; % x轴阵元个数
N=4; % y轴阵元个数
K=10240; % 快拍数
fc=100e+6; % 载波
fs=300e+6; % 采样频率
Pn=1; % 噪声功率fines=120; % 期望信号指向方位角
thetas=30; % 期望信号指向俯仰角
signal_f=15e6; % 期望信号频率
SNR=-30; % 期望信号信噪比finei=45; % 干扰信号指向方位角
thetai=45; % 干扰信号指向俯仰角
fi=30e6; % 干扰信号频率
INR=30; % 干扰信号信噪比m=(0:M-1)'; % x轴坐标
n=(0:N-1)'; % y轴坐标
c=3e+8; % 光速
lamda=c/fc; % 波长
dx=1/2*lamda; % x轴阵元间距
dy=1/2*lamda; % y轴阵元间距
\;\;\;\;\; 定好参数后,仿真结果如下面所示,观察方向图,可见干扰信号入射方向处产生了零陷:
从方向图来看,保证了(30°,120°)有用信号接收的同时抑制了(45°,45°)的干扰信号。下面是抗干扰前后干扰信号与期望信号频谱图的结果:
从频谱图来看,也成功抑制掉了干扰,下面是计算的结果:
从这些结果来看,也保证了有用信号的接收,抑制掉了干扰。
综上,成功抑制掉了干扰。
三、MATLAB源代码
均匀面阵抗干扰算法MATLAB仿真源代码
总结
\;\;\;\;\; 以上就是今天要分享的内容,本文介绍了均匀面阵抗干扰算法的原理和MATLAB仿真。