当前位置:文档之家› 综合课程设计基于Matlab的自适应均衡器设计

综合课程设计基于Matlab的自适应均衡器设计

电子信息系综合课程设计基于Matlab的自适应均衡器设计专业名称通信工程班级学号学生姓名指导教师设计时间2010.12.20~2011.1.7课程设计任务书专业:学号:学生姓名(签名):设计题目:基于Matlab的自适应均衡器设计一、设计实验条件实验室,Matlab软件二、设计任务及要求1. 课题要求系统学习时域均衡原理,掌握理论知识;2. 首先进行时域均衡原理和算法设计,再在所用的仿真软件Matlab上对设计进行仿真分析,最后写实验报告;3. 对整个系统设计进行回顾,总结心得。

三、设计报告的内容1.设计题目与设计任务(设计任务书)2.前言(绪论)(设计的目的、意义等)3.设计主体(各部分设计内容、分析、结论等)4.结束语(设计的收获、体会等)5.参考资料四、设计时间与安排1、设计时间:3周2、设计时间安排:熟悉实验设备、收集资料: 4天设计图纸、实验、计算、程序编写调试: 7天编写课程设计报告: 3天答辩: 1天基于Matlab的自适应均衡器设计一、设计目的及意义:通过本学期通信原理课程的学习,主要对数字信号系统的通信原理、传输机制等有了系统深入的了解。

而实践性的课程设计能够起到提高综合运用能力,加强理论知识的学习,提高实验技术,启发创造新思想的效果。

此次课程设计是自适应均衡器设计。

我们按照查找资料、软件选择、系统设计、仿真实现、结果优化这一流程进行。

不仅使我们进一步巩固了课程知识,也提高了我们分析问题、解决问题的能力。

二、设计主体:1 、设计原理数字信号经过这样的信道传输以后,由于受到了信道的非理想特性的影响,在接收端就会产生码间干扰(ISI),使系统误码率上升,严重情况下使系统无法继续正常工作。

理论和实践证明,在接收系统中插入一种滤波器,可以校正和补偿系统特性,减少码间干扰的影响。

这种起补偿作用的滤波器称为均衡器。

时域均衡是利用均衡器产生的时间波形去直接校正已畸变的波形,使包括均衡器在内的整个系统的冲击响应满无码间串扰条件。

频域均衡是从校正系统频率特性出发,使包括均衡器的基带系统的总特性满足无失真传输条件;频域均衡在信道特性不变,且在传输低速数据时是适用的。

而时域均衡可以根据信道特性的变化进行调整,能够有效地减小码间串扰,故在高速数据传输中得以广泛应用。

图1数字基带传输系统在实际中,当数字基带传输系统(如图1)的特性()()ωωωωRTGCGH)()(=不满足奈奎斯特第一准则时,就会产生有码间串扰的响应波形。

现在我们来证明:如果在接收滤波器和抽样判决之间插入一个称之为横向滤波器的可调滤波器,其冲激响应为∑∞-∞=-=n SnT nT t C t h )()(δ其中,ωωπωππd e nTH T T C s SST jn T T iSSSn ⎰∑-+=)(2nC 完全依赖于H(ω),那么,理论上就可消除抽样时刻上的码间串扰。

由 上式可以看出,这里的()t h T 是图2所示网络的单位冲激响应。

该网络是有无限多的按横向排列的迟延单元sT 和抽头加权系数nC 组成的,因此成为横向滤波器。

它的功能是利用它产生的无限多个响应波形之和,将接收滤波器输出端抽样时刻上有码间串扰的响应波形变换成抽样时刻上无码间串扰的响应波形。

由于很想滤波器的均衡原理是建立在响应波形上的,故把这种均衡成为时域均衡。

图2横向滤波器不难看出,横向滤波器的特性将取决于各抽头系数nC 。

如果nC 是可调整的,则图3所示的滤波器是通用的;特别是当nC 可自动调整时,则它能够适应信道特性的变化,可以动态校正系统的事件响应。

图3有限长横向滤波器及其输入和输出波形理论上,无限长的横向滤波器可以完全消除抽样时刻上的码间串扰,但实际中是不可能实现的。

因为,不仅均衡器的长度受限制,并且系数nC 的调整准确度也受到限制。

如果nC 的调整准确度可不到保证,即使增加长度也不不会获得显著的效果。

因此,有必要进一步讨论有限长横向滤波器的抽头增益调整问题。

设一个具有2N+1个抽头的横向滤波器,如图3(a )所示,其单位冲激响应为()t e ,则有∑-=-=NNi SiiT t C t e )()(δ有设它的输入为)(t x ,)(t x 是被均衡的对象,并设它没有附加噪声,如图3(b )所示,则均衡后输出波形()t y 为∑-=-=*=NNi SiiT t x C t e t x t y )()()()(在抽样时刻SkT t = (设系统无延时时)上,有∑-=-=NNi ik i k xC y上式说明,均衡器在第k 个抽样时刻上的样值ky 将有2N+1个iC 与ik x -乘积之和来决定。

显然,其中除0y 以外的所有ky 都属于波形失真引起的码间串扰。

当输入波形)(t x 给定,及各种可能的ik x -确定是,通过调整iC 使指定的ky 等于零时容易办到的,但同时要求所有的ky (除k=0外)都等于零却是一件很难的事。

这也说明,利用有限长的横向滤波器减小码间串扰是可能的,但完全消除是不可能的。

为了反映这些失真的大小,我们可采用最小均方和迫零算法准则来衡量。

本实验采用最小均方误差算法(LMS )。

LMS (Least Mean Square )算法最早由Widrow 于1960年建立。

采用最小均方算法的均衡器比迫零算法均衡器要稳定一些,它所采用的准则是使均衡器的期望输出值和实际输出值之间的均方误差(MSE)最小化的准则。

由Wiener 滤波理论可知,滤波器的最优抽头系数矢量可表示为xdxx opt r R W 1-=式中xx R 是输入信号矢量()n x 的互相关函数,()n x r xd 是输入信号矢量与期望信号矢量()n d 的互相关函数。

直接求解式此式的运算量非常大,尤其当滤波器的抽头系数个数比较多时。

考虑如图4所示的自适应FIR 滤波器:)(n y 1-z 1-z 1-z1-z)1(-n y )(~n x ∑)(1n w )(2n w )(2n w L -)(1n w L -⨯⨯⨯⨯⨯)1(--L n y )(0n w ……图4 自适应FIR 滤波器令()()()()()n X W n d n y n d n e H -=-=表示滤波器在n 时刻的误差,并定义均方误差()()[]()()⎥⎦⎤⎢⎣⎡-==⎰22n x W n d E n e E n J H de为代价函数。

由梯度的定义可以得出,代价函数相对于滤波器抽头系数矢量w 梯度为()()(){}n e k n x E n J k *--=∇2()()()[]{}1,...1,0,2-=*---=M k n x W n d k n x E H ,定义梯度矢量为()()()()[]TM defn J n J n J n J 110,....,,-∇∇∇=∇以及输入矢量和抽头系数矢量:()()()()[]TM n x n x n x n x 1.....1+--=()()()()[]TM n w n w n w n w 110.....-=则此式可以写作以下矢量形式:()()()()[]{}n w X n d n x E n J H -*-=∇2()n w R r xx xd 22+-= 最广泛使用的自适应算法形式为“下降算法”:()()()()n v n n w n w μ+-=1式中()n w 是第n 步迭代的系数矢量,()n μ是第n 步迭代的更新步长,而v(n)是第n 步迭代的更新方向矢量。

最常用的下降法为梯度下降法,又称最陡下降法。

在这种算法里,更新方向矢量v(n)取作第n-1 次迭代的代价函数J (n-1)的负梯度,即最陡下降法的统一形式为()()()()1211-∇--=n J n n w n w μ 系数21为了使得到的更新公式更加简单可得抽头系数矢量的更新公式为()()()()()11--+-=n w R r n n w n w xx xd μ从上式中可以看出,滤波器抽头系数矢量的更新迭代与xd r 和xx R 有关,而实际的信号处理过程中,xd r 和xx R 都不是能够先验知道的,因此通常用梯度的估计值()1-∇∧n J 来代替()1-∇n J .()()()()()()[]n w n x n x n d n x n J H-*-=∇∧2可得()()()()()()()()[]n w n x n X n d n x n n w n w H-*+-=μ1()()()()n x n e n n w *+-=μ1 其中()()()n y n d n e -=为滤波器输出与期望信号的误差函数。

上式就是LMS 算法抽头系数的更新公式,容易验证。

()()n J n J ∇∇∧是的无偏估计,通过上面的讨论可以总结出LMS 算法的具体步骤如下: 步骤l :初始化抽头系数矢量()[]0,....0,0==n n w T;步骤2 :当n=n+1时计算滤波器输出()()n x w n y H =, 计算误差函数()()()n y n d n e -=,更新滤波器抽头系数矢量()()()()(),1n x n e n n w n w *+-=μ 关于上面的LMS 算法有以下几点注释:注释l :若取()=n μ常数,则称为基本LMS 算法。

注释2 :若取()()(),02,0(,>∈+=ββμ),其中a n x n x an H 则的到归一化LMS 算法。

注释3 :在功率归一化算法中,取()()()可由的方差表示其中,,22n x n an x xσσμ=()()n e n xx2221+-=λσσ递推计算,这里)1,0(∈λ为遗忘因子,由0<a<M2确定,而M 是滤波器阶数. 注释4 :当期望信号未知时,步骤2中的d(n)可直接用判决器的实际输出()n d ∧代替。

本实验中选取滤波器阶数order=63,调整步长u=0.02,均为经验值。

2 、Matlab 仿真过程 1.定义一个随机信道c=0.4; x1=c*rand(); x2=c*rand();x3=c*rand();%信道参数isi=[1,x1,x2,x3];snr=10; %AWGN信道信噪比2.定义滤波器各参数order=63; %滤波器阶数len=1000; %训练序列长度u=0.02; %调整步长M=(order-1)/2;N=len+length(isi)-1;e=zeros(1,N);error=e;y=zeros(1,N); %FIR滤波器输出3.信道均衡过程for i=1:100x=sign(rand(1,len)-0.5);%采用PN码作为训练序列noise=randn(1,N)/10.^(snr/10);%AWGNy=conv(isi,x)+noise;%输出wk=zeros(1,order);%横向滤波器系数for n=order:N-M+1 %LMS算法y1=y(n+M-1:-1:n-M-1);d1=wk*y1';e(n)=x(n)-d1;wk=wk+u*e(n)*y1;e(n)=10*log10(abs(e(n)));endqerror=error+e;end4.得到横向滤波器系数wk输出结果:wk =Columns 1 through 9-0.0058 0.0297 0.0283 0.0247 -0.0147 -0.0118 0.0385 -0.0348 0.0095Columns 10 through 180.0422 0.0321 0.0236 0.0126 -0.0068 -0.0310 0.0094 0.0207 -0.0136Columns 19 through 270.0354 0.0016 -0.0281 0.0181 0.0014 0.0073 -0.0104 0.0038 0.0422Columns 28 through 360.0149 0.0396 0.0150 0.9751 -0.2937 -0.2446 0.1236 0.0825 -0.0315Columns 37 through 45-0.0098 -0.0055 0.0035 -0.0426 -0.0316 0.0045 0.0007 -0.0574 0.0115Columns 46 through 540.0346 -0.0578 0.0389 -0.0503 -0.0110 0.0133 0.0500 -0.0114 -0.0143Columns 55 through 63-0.0055 -0.0214 0.0119 0.0058 -0.0181 -0.0184 -0.0392 0.0115 -0.02725.计算自适应均衡器误差收敛性error=error(order:N-M+1)/100;%误差值t=1:length(error);plot(t,error);title('误差收敛曲线');ylabel('误差dB');xlabel('n');02004006008001000-12-10-8-6-4-2误差收敛曲线误差d Bn图5误差收敛曲线6. 随机信号通过理想均衡信道M = 4;msg = randint(1500,1,M); %产生一个1500 x 1 在[0,M-1]区域内的随机整数序列modmsg = qammod(msg ,M); %进行qam 调制的映射 trainlen = 500; %定义训练序列的帧长chan = [.986; .845; .237; .123+.31i]; %定义信道参量 filtmsg = filter(chan ,1,modmsg); % 模拟信道变化 eq1 = lineareq(8, lms(0.01));%生成均衡器对象 eq1.SigConst = qammod([0:M-1],M); % 设置星座图[symbolest ,yd] = equalize(eq1,filtmsg ,modmsg(1:trainlen));h = scatterplot(filtmsg ,1,trainlen ,'bx'); hold on; %以蓝星画出未经过均衡的信号scatterplot(symbolest ,1,trainlen ,'g.',h); %在原图的基础上以绿色画出经过均衡后的信号scatterplot(eq1.SigConst ,1,0,'k*',h); %在原图的基础上以黄色标出理想星座图legend('Filtered signal','Equalized signal', 'Ideal signal constellation'); hold off; % 计算误码率demodmsg_noeq = qamdemod(filtmsg ,M); %解调未均衡的码字 demodmsg = qamdemod(yd ,M); %解调已均衡的码字[nnoeq ,rnoeq] = symerr(demodmsg_noeq(trainlen+1:end),...对比未均衡信号和样本信号的误码和误码率msg(trainlen+1:end));[neq ,req] = symerr(demodmsg(trainlen+1:end),...msg(trainlen+1:end)); %对比均衡信号和样本信号的误码和误码率 disp('Symbol error rates with and without equalizer:') disp([req rnoeq])-2-1012-2.5-2-1.5-1-0.500.511.522.5Q u a d r a t u r eIn-PhaseScatter plotFiltered signal Equalized signalIdeal signal constellation图6信号星座图输出结果: Symbol error rates with and without equalizer:0 0.32303、实验结果分析输入信号通过参数可调的数字滤波器后产生输出信号,将其与期望相应进行比较,形成误差信号,并以此通过LMS算法对滤波器参数进行逐步调整,最终使误差均方值最小,并得到自适应均衡器各阶参数。

相关主题