《LMMSE算法信道均衡MATLAB仿真(共6页).doc》由会员分享,可在线阅读,更多相关《LMMSE算法信道均衡MATLAB仿真(共6页).doc(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上一信道均衡的概念实际的基带传输系统不可能完全满足无码间串扰传输条件,因而码间串扰是不可避免的。当串扰严重时,必须对系统的传输函数 进行校正,使其达到或接近无码间串扰要求的特性。理论和实践表明,在基带系统中插入一种可调滤波器就可以补偿整个系统的幅频,和相频特性从而减小码间串扰的影响这个对系统校正的过程称为均衡,实现均衡的滤波器称为均衡器。 均衡分为频域均衡和时域均衡。频域均衡是从频率响应考虑,使包括均衡器在内的整个系统的总传输函数满足无失真传输条件。而时域均衡,则是直接从时间响应考虑,使包括均衡器在内的整个系统的冲激响应满足无码间串扰条件。 频域均衡在信道特性不变,且传
2、输低速率数据时是适用的,而时域均衡可以根据信道特性的变化进行调整,能够有效地减小码间串扰,故在高速数据传输中得以广泛应用。 时域均衡的实现方法有多种,但从实现的原理上看,大致可分为预置式自动均衡和自适应式自动均衡。预置式均衡是在实际传数之前先传输预先规定的测试脉冲(如重复频率很低的周期性的单脉冲波形),然后按“迫零调整原理”自动或手动调整抽头增益;自适应式均衡是在传数过程中连续测出距最佳调整值的误差电压,并据此电压去调整各抽头增益。一般地,自适应均衡不仅可以使调整精度提高,而且当信道特性随时间变化时又能有一定的自适应性,因此很受重视。这种均衡器过去实现起来比较复杂,但随着大规模、超大规模集成电
3、路和微处理机的应用,其发展十分迅速。二信道均衡的应用1.考虑如图所示的基带等效数据传输系统,发送信号经过ISI失真信道传输,叠加高斯加性噪声。SIS信道图1基带等效数据传输模型设发送信号采用QPSK调制,即。设ISI信道的冲击响应以向量的形式表示为h。典型的ISI信道响应向量有三种:hhh为实部与虚部独立的复高斯白噪声,其均值为零,方差为。2.实现目的 设信道响应已知。采用线性模型下的线性MMSE估计方法,根据观测信号yk估计发送信号xk。3.实验原理MMSE准则下设计出的均衡器通常非常复杂,不便于实现。为便于实现,可要求满足线性关系,线性模型下的LMMSE估计如下:若x与可用线性模型来描述:
4、其中V是零均值、协方差矩阵为CV的噪声矢量,且V与不相关。则有及,于是的LMMSE估计为4.实验方案1.产生原始信号根据发送信号采用QPSK调制,调制后信号序列,将实部虚部分别作为独立的两个随机序列再加和产生原始发送信号。数据长度任定。%1. 产生原始信号len=1000;xR=randint(1, len);xI=randint(1, len);for i=1:len; if xR(i)=0; xR(i)=-1; end if xI(i)=0; xI(i)=-1; endend % 用循环可能效率低,数据量大时要用矩阵运算xk_source=(xR+1j*xI)/sqrt(2);并绘出星座图
5、。scatterplot(xk_source);title(原始QPSK信号星座图);2.描述信道特性由于条件已知信道响应,直接使用数组进行描述。%2. 信道特性hA=0.04, -0.05, 0.07, -0.21, -0.5, 0.72, 0.36, 0, 0.21, 0.03, 0.07;hB=0.407, 0.815, 0.407;hC=0.227, 0.46, 0.6888, 0.46, 0.227;h=hA;调制信号经过信道的过程即卷积,此处注意卷积为线性卷积,而输入输出的长度会发生变化,应当将输出部分截短,截短方法为取中间部分序列,仿真时直接使用MATLAB函数设置相应参数,而可
6、以进行详细数学证明,此处略去。xk=xk_source;xk=conv(xk, h, same); % 卷积取同样长度,非常重要,详情参照李教员通信原理实验教程指导书3.噪声特性描述产生实部虚部独立分布的复高斯白噪声有多种方法,并不是该算法重点,这里仍采取简化,直接使MATLAB函数进行加噪。SNR=20; % dB N0=10(-0.1*SNR);sigma=sqrt(N0); % 生成实虚部相互独立的高斯白噪本身就是可以讨论很多的问题,在此简化ykR=awgn(real(xk), SNR);ykI=awgn(imag(xk), SNR);yk=ykR+1j*ykI;描绘星座图。scatte
7、rplot(yk);title(过信道加入噪声后信号星座图);4.LMMSE估计算法根据LMMSE估计的原理,首先应将卷积表示为矩阵乘法关系,必须得到H矩阵,得到H矩阵并不困难,由于是线性卷积,因此关键仍是取对H矩阵的范围,否则会出现错误。该问题也可以进行严格的数学推导,但仅用于仿真,此处不做赘述。% H矩阵N=length(h);H1 = zeros(len, len+N-1);for k=1: len H1(k, k: k+N-1)=fliplr(h); % 需要这种转换时尽量用函数endH=H1(:, round(N/2): len+round(N/2)-1); % 这里的取H1矩阵的范
8、围很重要,1:len则出错根据算法原理,这里有两种方法,一种是按照方法流程,根据QPSK调制方式设定期望信号的一阶和二阶统计特性,带入计算。直接假设待估数据的一阶二阶统计特性,该方法速度快。% Cxx=eye(len);% Cuu=H*(Cxx+Cv)*H;另外一种方法是利用观测数据的统计特性,利用时间平均代替统计平均,此方法的缺点是计算量大,但更接近真实值。利用观测数据统计特性,计算量大Cv=sigma2*eye(len);Cxy=H(Cyy-Cv);E_yk=sum(yk)/len*ones(1, 1000);E_y=HE_yk;xk_LMMSE=E_y+Cxy/Cyy*(yk-E_yk)
9、;其中Cyy的计算需通过自相关矩阵计算,经查询MATLAB函数,有两种方法进行计算。% 方法1temp=xcorr(yk,yk)/len; temp=fliplr(temp);yk_cor_l=round(length(temp)/2);Cyy=zeros(yk_cor_l, yk_cor_l);for i=1:yk_cor_l; Cyy(i,:)=temp(yk_cor_l+1-i: length(temp)+1-i);end%自相关矩阵想到有这两种求法,但结果上有些差异,对函数的计算过程还待考究% 方法2% temp=corrmtx(uk,length(uk)-1); % Cuu=temp
10、*temp;绘制星座图。scatterplot(xk_LMMSE);title(估计恢复信号星座图);(6)为了检验恢复的结果是否正确,可以对恢复数据进行一次判决,使恢复后的信号符合标准QPSK调制,去除噪声带来的影响。判决门限可以设宽一些。xk_LMMSE=xk_LMMSE;xk_reci=zeros(1,1000);for i=1: 1000; if (real(xk_LMMSE(i)0 & imag(xk_LMMSE(i)0) xk_reci(i)=(1+1i)/sqrt(2); end if (real(xk_LMMSE(i)0 & imag(xk_LMMSE(i)0) xk_reci
11、(i)=(1-1i)/sqrt(2); end if (real(xk_LMMSE(i)0) xk_reci(i)=(-1+1i)/sqrt(2); end if (real(xk_LMMSE(i)0 & imag(xk_LMMSE(i)0) xk_reci(i)=(-1-1i)/sqrt(2); end endscatterplot(xk_reci);title(判决后信号星座图);figure;plot(xk_reci-xk_source);title(估计误差统计);5.实验结果(1)原始信号QPSK星座图(2)过信道加入噪声后信号星座图(3)估计恢复信号星座图,信噪比20dB。信噪比50dB专心-专注-专业(4)判决后信号星座图,及与原始信号比较误差。6.实验总结根据实验结果可以看到,恢复出的数据与原始数据相同,在仿真环境设置比较单纯的情况下,实验结果令人满意。实验中最应注意的是对信号过线性系统的理解,尤其是信号长度发生的变化,是否截短,截短后的信号与原始信号的一一对应关系如何,只有将信号对齐的情况下,恢复数据才完整有效。