关注我,追更更多通信仿真代码!
文章目录
-
- 摘要
- [1 引言](#1 引言)
- [2 信号与系统模型](#2 信号与系统模型)
-
- [2.1 均匀线阵接收模型](#2.1 均匀线阵接收模型)
- [2.2 QPSK调制模型](#2.2 QPSK调制模型)
- [2.3 信干比与信噪比定义](#2.3 信干比与信噪比定义)
- [3 自适应波束成形算法](#3 自适应波束成形算法)
-
- [3.1 RLS算法原理](#3.1 RLS算法原理)
- [3.2 LMS与NLMS算法](#3.2 LMS与NLMS算法)
- [4 仿真结果与分析](#4 仿真结果与分析)
-
- [4.1 参数设置](#4.1 参数设置)
- [4.2 仿真分析](#4.2 仿真分析)
- [4.3 部分代码](#4.3 部分代码)
- [5 结论](#5 结论)
摘要
针对现代无线通信系统中中同频干扰严重影响接收性能的问题,本文实现了一种基于递归最小二乘(RLS)算法的自适应天线阵列波束成形方案。系统采用均匀线阵(ULA)结构,在期望用户方向形成主瓣的同时,自动在多个同频干扰方向形成零陷。仿真结果表明,RLS波束成形可显著降低误比特率(BER)和误差矢量幅度(EVM),有效抑制同频干扰。同时分析了阵元数量、遗忘因子等关键参数对系统性能的影响。
1 引言
在现代无线通信系统中,随着用户数量的快速增长和频谱资源的日益紧张,同频干扰已成为限制系统容量和通信质量的主要瓶颈之一。传统的全向天线接收方式无法区分期望信号与干扰信号,当干扰信号强度较大时,接收机输出信噪比会急剧恶化。
自适应天线阵列技术通过在多个阵元上施加可控的复权重,能够自动调整阵列方向图的形状------在期望信号方向形成高增益主瓣,在干扰方向自动形成深零陷,从而有效抑制同频干扰。与固定波束成形不同,自适应波束成形器能够根据接收环境的变化实时调整权向量,具有很强的环境适应能力。
在众多自适应滤波算法中,递归最小二乘(RLS)算法以其收敛速度快、跟踪能力强的特点受到广泛关注。RLS算法通过最小化加权最小二乘代价函数,利用矩阵求引理避免了直接求逆运算,每步迭代的计算复杂度为 O ( N 2 ) O(N^2) O(N2)( N N N为阵元数)。相比之下,LMS算法虽然计算简单(每步 O ( N ) O(N) O(N)),但收敛速度较慢,且收敛速度与特征值扩展密切相关。
本文基于MATLAB平台,实现了RLS、LMS和NLMS三种自适应波束成形算法,在QPSK调制链路下系统比较了三种算法的收敛性能、BER性能和方向图特性,并分析了阵元数量和遗忘因子对系统性能的影响。
2 信号与系统模型
2.1 均匀线阵接收模型
本文采用均匀线阵(Uniform Linear Array, ULA),假设有 N N N个各向同性阵元沿直线等间距排列,阵元间距为 d = λ / 2 d=\lambda/2 d=λ/2( λ \lambda λ为载波波长)。当一个远场窄带信号从角度 θ \theta θ方向入射时,相邻阵元之间产生固定的相位差,其阵列导向矢量(Steering Vector)为:
a ( θ ) = 1 e − j k d cos θ e − j 2 k d cos θ ⋯ e − j ( N − 1 ) k d cos θ T \mathbf{a}(\theta) = \begin{bmatrix} 1 & e^{-jkd\cos\theta} & e^{-j2kd\cos\theta} & \cdots & e^{-j(N-1)kd\cos\theta} \end{bmatrix}^T a(θ)=1e−jkdcosθe−j2kdcosθ⋯e−j(N−1)kdcosθT
其中 k = 2 π / λ k=2\pi/\lambda k=2π/λ为波数。当 d = λ / 2 d=\lambda/2 d=λ/2时, k d = π kd=\pi kd=π。
阵列的接收信号模型为:
x ( n ) = a ( θ 0 ) s ( n ) + a ( θ 1 ) i 1 ( n ) + a ( θ 2 ) i 2 ( n ) + n ( n ) \mathbf{x}(n) = \mathbf{a}(\theta_0)s(n) + \mathbf{a}(\theta_1)i_1(n) + \mathbf{a}(\theta_2)i_2(n) + \mathbf{n}(n) x(n)=a(θ0)s(n)+a(θ1)i1(n)+a(θ2)i2(n)+n(n)
其中:
- s ( n ) s(n) s(n)为期望用户信号,来波方向为 θ 0 \theta_0 θ0
- i 1 ( n ) i_1(n) i1(n)、 i 2 ( n ) i_2(n) i2(n)为两个同频干扰信号,来波方向分别为 θ 1 \theta_1 θ1和 θ 2 \theta_2 θ2
- n ( n ) \mathbf{n}(n) n(n)为各阵元上独立同分布的加性高斯白噪声(AWGN)
波束成形器的输出为:
y ( n ) = w H ( n ) x ( n ) y(n) = \mathbf{w}^H(n)\mathbf{x}(n) y(n)=wH(n)x(n)
其中 w ( n ) = w 1 ( n ) , w 2 ( n ) , ⋯ , w N ( n ) T \mathbf{w}(n)=w_1(n), w_2(n), \\cdots, w_N(n)^T w(n)=w1(n),w2(n),⋯,wN(n)T为复权向量。波束成形的目标就是自适应地调整 w ( n ) \mathbf{w}(n) w(n),使输出 y ( n ) y(n) y(n)尽可能接近期望信号 s ( n ) s(n) s(n),同时抑制干扰。
2.2 QPSK调制模型
系统采用正交相移键控(QPSK)调制,格雷编码。每两个比特映射为一个复符号:
s = 1 2 ( e j π / 4 , e j 3 π / 4 , e j 5 π / 4 , e j 7 π / 4 ) s = \frac{1}{\sqrt{2}} \left( e^{j\pi/4}, e^{j3\pi/4}, e^{j5\pi/4}, e^{j7\pi/4} \right) s=2 1(ejπ/4,ej3π/4,ej5π/4,ej7π/4)
符号速率与比特速率的关系为 R s = R b / 2 R_s = R_b / 2 Rs=Rb/2。接收端通过判断实部和虚部的符号来完成解调:实部大于0对应比特0,小于0对应比特1;虚部同理。
2.3 信干比与信噪比定义
两个干扰信号的功率相对于期望信号分别由信干比(SIR)控制:
SIR i = P s P i , i = 1 , 2 \text{SIR}i = \frac{P_s}{P{i}}, \quad i=1,2 SIRi=PiPs,i=1,2
噪声功率由信噪比(SNR)控制:
SNR = P s P n \text{SNR} = \frac{P_s}{P_n} SNR=PnPs
3 自适应波束成形算法
3.1 RLS算法原理
RLS算法的核心思想是在每个时间步最小化如下加权最小二乘代价函数:
J ( n ) = ∑ k = 1 n λ n − k ∣ e ( k ) ∣ 2 J(n) = \sum_{k=1}^{n} \lambda^{n-k} |e(k)|^2 J(n)=k=1∑nλn−k∣e(k)∣2
其中 e ( k ) = d ( k ) − w T ( n ) x ( k ) e(k) = d(k) - \mathbf{w}^T(n)\mathbf{x}(k) e(k)=d(k)−wT(n)x(k)为先验误差, d ( k ) d(k) d(k)为期望响应(在本文中即发射端已知的QPSK参考信号), λ ∈ ( 0 , 1 ] \lambda \in (0,1] λ∈(0,1]为遗忘因子,其作用是指数式地弱化过去的数据,使算法能够跟踪时变信道。
RLS算法的具体迭代步骤如下:
初始化:
w ( 0 ) = 0 , P ( 0 ) = δ − 1 I \mathbf{w}(0) = \mathbf{0}, \quad \mathbf{P}(0) = \delta^{-1}\mathbf{I} w(0)=0,P(0)=δ−1I
对于每个采样时刻 n = 1 , 2 , ⋯ n=1,2,\cdots n=1,2,⋯:
-
计算先验误差:
α ( n ) = d ( n ) − x T ( n ) w ( n − 1 ) \alpha(n) = d(n) - \mathbf{x}^T(n)\mathbf{w}(n-1) α(n)=d(n)−xT(n)w(n−1)
-
计算增益向量:
g ( n ) = P ( n − 1 ) x ∗ ( n ) λ + x T ( n ) P ( n − 1 ) x ∗ ( n ) \mathbf{g}(n) = \frac{\mathbf{P}(n-1)\mathbf{x}^*(n)}{\lambda + \mathbf{x}^T(n)\mathbf{P}(n-1)\mathbf{x}^*(n)} g(n)=λ+xT(n)P(n−1)x∗(n)P(n−1)x∗(n)
-
更新权向量:
w ( n ) = w ( n − 1 ) + α ( n ) g ( n ) \mathbf{w}(n) = \mathbf{w}(n-1) + \alpha(n)\mathbf{g}(n) w(n)=w(n−1)+α(n)g(n)
-
更新逆相关矩阵:
P ( n ) = 1 λ P ( n − 1 ) − g ( n ) x T ( n ) P ( n − 1 ) \mathbf{P}(n) = \frac{1}{\lambda}\left\\mathbf{P}(n-1) - \\mathbf{g}(n)\\mathbf{x}\^T(n)\\mathbf{P}(n-1)\\right P(n)=λ1P(n−1)−g(n)xT(n)P(n−1)
其中 P ( n ) = R − 1 ( n ) \mathbf{P}(n) = \mathbf{R}^{-1}(n) P(n)=R−1(n)为输入信号相关矩阵的逆矩阵。利用矩阵求引理(Woodbury恒等式),RLS避免了每步对 N × N N\times N N×N矩阵直接求逆,计算复杂度为 O ( N 2 ) O(N^2) O(N2)。
遗忘因子 λ \lambda λ的取值在收敛速度与稳态误差之间存在权衡: λ \lambda λ越接近1,算法记忆越长,稳态误差越小,但收敛速度越慢; λ \lambda λ越小,算法跟踪能力越强,但稳态波动越大。具体取值见仿真参数设置。
3.2 LMS与NLMS算法
作为对比,本文同时实现了最小均方(LMS)和归一化最小均方(NLMS)算法。
LMS算法采用最速下降思想,沿瞬时梯度的负方向更新权向量:
w ( n + 1 ) = w ( n ) + μ x ∗ ( n ) e ( n ) \mathbf{w}(n+1) = \mathbf{w}(n) + \mu \mathbf{x}^*(n)e(n) w(n+1)=w(n)+μx∗(n)e(n)
其中 μ \mu μ为步长因子。LMS算法计算简单(每步仅 O ( N ) O(N) O(N)),但收敛速度取决于输入信号相关矩阵的特征值分布,特征值扩展越大收敛越慢。步长 μ \mu μ的选取需在收敛速度与稳态失调量之间折中。
NLMS算法对LMS进行归一化改进,用输入信号能量对步长进行归一化:
w ( n + 1 ) = w ( n ) + μ ∥ x ( n ) ∥ 2 + ϵ x ∗ ( n ) e ( n ) \mathbf{w}(n+1) = \mathbf{w}(n) + \frac{\mu}{\|\mathbf{x}(n)\|^2 + \epsilon}\mathbf{x}^*(n)e(n) w(n+1)=w(n)+∥x(n)∥2+ϵμx∗(n)e(n)
其中 ϵ \epsilon ϵ为防止除零的小常数。NLMS的收敛性能对输入信号功率变化不敏感,步长 μ \mu μ的取值范围通常比LMS更宽松。
4 仿真结果与分析
4.1 参数设置
| 参数 | 取值 |
|---|---|
| 阵列结构 | 均匀线阵(ULA) |
| 阵元数 N N N | 10 |
| 阵元间距 d d d | λ / 2 \lambda/2 λ/2 |
| 调制方式 | QPSK(格雷编码) |
| 期望用户方向 | 60° |
| 干扰源1方向 / SIR | 30° / 3 dB |
| 干扰源2方向 / SIR | 120° / 3 dB |
| RLS遗忘因子 λ \lambda λ | 0.75 |
| RLS正则化参数 δ \delta δ | 10 − 2 10^{-2} 10−2 |
| LMS步长 μ \mu μ | 0.002 |
| NLMS步长 μ \mu μ | 0.1 |
4.2 仿真分析






可以看到,波束成形前由于受到两个3 dB干扰的影响,星座点严重发散,四个QPSK符号簇混叠不清,BER较高。RLS波束成形后的阵列输出,星座点明显收拢到四个理想符号位置附近,符号簇边界清晰可辨。定量来看,波束成形后EVM从百分之几十的水平降低到个位数百分比,BER也相应下降。这表明RLS波束成形器成功地在两个干扰方向形成了零陷,有效抑制了干扰能量。其余结论如图所示,
4.3 部分代码
c
function [y, e, w_time, w_final] = rls_beamformer(Rx_Sig, desired, N, lambda, delta)
% 递归最小二乘(RLS)自适应波束成形器
w = zeros(N,1);
P = (1/delta) * eye(N);
L = size(Rx_Sig,2);
y = zeros(1,L);
e = zeros(1,L);
w_time = zeros(N,L);
for n = 1:L
x = Rx_Sig(:,n);
y(n) = w.' * x;
e(n) = desired(n) - y(n);
alpha = desired(n) - x.'*w;
g1 = P * conj(x);
g2 = lambda + x.'*P*conj(x);
g = g1 / g2;
P = (1/lambda)*P - g*x.'*(1/lambda)*P;
w = w + alpha*g;
w_time(:,n) = w;
end
w_final = w_time(:,end);
end
c
function demo = run_baseline_simulation(CFG)
% 运行一次可复现的 RLS 演示仿真,返回后续绘图所需的全部中间量
rng(1); % 可复现的示例运行
bits_demo = max(CFG.BitsPerBlock*4, 20000);
[Rx_Sig, QPSK_TxSig, uncoded_bits_Tx] = generate_scenario( ...
CFG.NumofAntenna, CFG.Kd, CFG.theta_tx, CFG.theta_Int1, CFG.theta_Int2, ...
CFG.SIR1_dB, CFG.SIR2_dB, CFG.SNR_demo_dB, bits_demo, CFG.ModuRadians);
[y_bf, e_bf, w_time, w_final] = rls_beamformer(Rx_Sig, QPSK_TxSig, ...
CFG.NumofAntenna, CFG.lambda, CFG.delta);
y_ref = Rx_Sig(1,:); % 单阵元参考(无波束成形)
demo.Rx_Sig = Rx_Sig;
demo.QPSK_TxSig = QPSK_TxSig;
demo.uncoded_bits_Tx = uncoded_bits_Tx;
demo.y_bf = y_bf;
demo.e_bf = e_bf;
demo.w_time = w_time;
demo.w_final = w_final;
demo.y_ref = y_ref;
end
5 结论
本文针对同频干扰抑制问题,基于均匀线阵与QPSK调制链路,实现了RLS、LMS和NLMS三种自适应波束成形算法。仿真结果表明:RLS算法收敛速度快、稳态误差小,能在两个干扰方向形成深零陷,降低EVM与BER。阵元数增加可提升方向图分辨能力,遗忘因子 λ \lambda λ需在收敛速度与稳态误差间折中。总体而言,RLS波束成形在强同频干扰场景下具有明显优势,适合对实时性要求较高的通信系统。