自适应均衡器——时域实现
自适应均衡器——时域实现
自适应均衡器是通信系统中用于补偿信道畸变、消除码间干扰的关键技术。本文将详细介绍自适应均衡器的时域实现原理,并通过Matlab仿真展示其实际效果。
一、自适应均衡原理
通信系统中,由于多径效应、信道带宽的有限性及信道特性的不完善导致数据通过信道时不可避免地产生码间串扰。均衡技术是对码间干扰进行一定的处理,达到补偿信道畸变的目的。用均衡技术来补偿码间干扰的处理器称为均衡器,均衡包括时域均衡和频域均衡,在时变无线信道中,几乎全部采用时域的实现方式。
自适应均衡器能够动态地跟踪信道的变化,及时调整均衡器自身的参数。横向滤波器是均衡器的主要实现方式,由抽头延迟线、加权系数乘法器和加法器组成。
横向滤波器
横向滤波器的冲击响应为:
h ( t ) = ∑ n = − N N W n ∗ δ ( t − n T s ) h(t) = \sum_{n=-N}^{N}W_n*\delta(t-nT_s)h(t)=n=−N∑N Wn ∗δ(t−nTs )
输入信号经过滤波器之后的输出为
y ( t ) = ∑ n = − N N W n ∗ x ( t − n T s ) y(t) = \sum_{n=-N}^{N}W_n*x(t-nTs)y(t)=n=−N∑N Wn ∗x(t−nTs)
可见,横向滤波器的输出y(t)为输入x(t)经过2N+1个不同时延单元之后的加权和。在t = k T s t=kTst=kTs时刻抽样,得到离散抽样时刻的输出为:
y ( k T s ) = ∑ n = − N N W n ∗ x ( k T s − n T s ) y(kTs) = \sum_{n = -N}^{N}W_nx(kTs-nTs)y(kTs)=n=−N∑N Wn ∗x(kTs−nTs)
y ( k ) = ∑ n = − N N W n ∗ x k − n y(k) = \sum_{n = -N}^{N}W_nx_{k-n}y(k)=n=−N∑N Wn ∗xk−n
为了消除码间干扰,应该选取合适的均衡器系数,使得以k为中心的前后2N个符号在 t = k T s 在t=kTs在t=kTs时刻的样值趋向于0。通常采用基于最小均方误差准则的均方误差算法:
假设均衡器希望的输出为d k d_kdk ,定义误差和均方误差为:
e k = d k − y k e_k = d_k -y_kek =dk −yk J = E [ e k 2 ] J = E[e_k^2]J=E[ek2 ]
均方误差算法的目标是通过调整抽头系数,使得均方误差趋向于0。
二、Matlab仿真
时域均衡器的matlab代码如下:
1.代码
%--------------Function:Adaptive Equalizatioin------------------
%--------------Remark:
%--------------Data:2024.09.11----------------------------------
%--------------Author:Clemence----------------------------------
clc;
clear all;
close all;
len = 20000;
Tlen = 2000; %Train length
step = 0.001;
N = 64; %Equalizatioin Coefficients
s = zeros(1,len);
s1 = zeros(1,len);
x = zeros(1,N);
w = zeros(1,N);
s = randsrc(1,len); %Source
s1(2:len) = s(1:len-1); %Second Path
p = 0.9; %
SNR = [0:10];
for db = 1:length(SNR)
s2 = sqrt(p)*s +sqrt(1-p)*s1;
s3 = awgn(s2,db,'measured');
for i = N:len
u(1:N) = s3(i:-1:i-N+1);
y(i) = u*w.';
e(i) = u*w'- s(i);
w = w - step * u *e(i);
% output with equalization
if y(i)>0
y1(i) = 1;
else y1(i) = -1;
end
% output without equalization
if s3(i)>0
y2(i) = 1;
else y2(i) = -1;
end
end
%Error Code Num Stats
errornum1 = sum(y1(Tlen:end)~=s(Tlen:end));
errornum2 = sum(y2(Tlen:end)~=s(Tlen:end));
ber1(db) = errornum1/(len-Tlen);
ber2(db) = errornum2/(len-Tlen);
end
semilogy(SNR,ber1,'+-');hold on;
semilogy(SNR,ber2);
legend('Output With Eq','Output Without Eq');
2.仿真结果
输入信号经过信道衰落之后,采用均衡器输出和不采用均衡输出的误码率结果如下:
均衡器误码率统计曲线
三、结果分析
二进制双极性码元经过信道衰落之后,在不同的信噪比下,统计均衡前后信号的误码率,随着信号信噪比的提升,均衡后接收端误码率明显降低。