信号在不同的传输路径上会产生不同的时延,同一时刻多径信号在通信系统接收端会进行叠加,造成码间串扰ISI。通信设备在移动过程中传输环境也随时间变化,多径效应造成的码间串扰也随时间而变化。为了解决该问题,提出了均衡技术。
均衡在通信领域的解释为对信道特性的均衡,即在接收端加上均衡器后,产生与原信道特性相逆的关系式,因此减弱了由于信道的多径传输效应造成的码间串扰。
自适应均衡器是最早的均衡装置,能够根据具体的信道特性来调整自身的系数,以适应变化的信道。自适应均衡器有两种工作状态:训练模式和跟踪模式。信息传输过程中,先在训练模式下发送端发送一个定长已知训练序列,接收端的均衡器根据该序列调整均衡器的系数,随后再传输有用的数据。
奈奎斯特在1928年就消除码间串扰原理和基本方法归纳出了三个准则:峰值失真准则(迫零准则)、最小均方准则(Least Mean Square, LMS)、最小二乘准则(Least Square),其中LMS应用较为广泛。
LMS算法
LMS算法是基于最小均方准则的算法,通过调节滤波器的权系数使得输出信号 y ( n ) y(n) y(n)与期望信号 d ( n ) d(n) d(n)的均方误差 E [ e 2 ( n ) ] E[e^2(n)] E[e2(n)]最小,LMS算法的原理图如下:
数学表达式如下:
y ( n ) = X T ( n ) W ( n ) e ( n ) = d ( n ) − y ( n ) W ( n + 1 ) = W ( n ) + 2 μ e ( n ) X ( n ) \begin{aligned}y(n)&=X^T(n)W(n)\\e\left(n\right)&=d\left(n\right)-y(n)\\W(n+1)&=W(n)+2\mu e(n)X(n)\end{aligned} y(n)e(n)W(n+1)=XT(n)W(n)=d(n)−y(n)=W(n)+2μe(n)X(n)
W ( n ) W(n) W(n)为自适应滤波器的权向量, X ( n ) X(n) X(n)为输入信号向量, e ( n ) e(n) e(n)为系统输出误差, d ( n ) d(n) d(n)为期望信号, v ( n ) v(n) v(n)为系统噪声, μ \mu μ为控制收敛速度和稳定性的增益常数,即步长因子
步长因子越大,收敛速度明显加快,但是稳态误差就要更大一些
Matlab算法仿真
M=2; %%BPSK
data=randi([0 1],1000,1); %%产生一千个数据点
modData=pskmod(data,M); %%BPSK调制
rxSig=conv(modData,[0.02+0.5i 0.05]); %%经过一个滤波器模拟信号经过了一个LTI系统
rxSig=awgn(rxSig,30); %%加噪
line_equ=comm.LinearEqualizer( ...
NumTaps=8, ... %%均衡器阶数
StepSize=0.1, ... %%步长因子
Constellation=complex([-1 1]), ...%%信号星座
ReferenceTap=4);
tr_seq=modData(1:200); %%将前200个点作为训练序列
[eq_sig,err]=line_equ(rxSig,tr_seq);
err_abs=abs(err);
plot(err_abs);
constdiag=comm.ConstellationDiagram(NumInputPorts=2, ...
ChannelNames={'Before equ','After equ'}, ...
ReferenceConstellation=pskmod([0 1],2));
constdiag(rxSig(400:end),eq_sig(400:end))
星座图如下: