MATLAB环境下ISI信道仿真及自适应均衡器设计程序说明

合集下载

自适应均衡论述与仿真

自适应均衡论述与仿真

权值数不同时,均衡后眼图对比:
6 结语
仿真结果表明,随着均衡器权值 数的增加, 输出眼图汇聚程度也越高; 而且信道切换的瞬间均衡器的权值也 随之自适应调整并逐渐自适应调整。 从图中可以看出,均衡器输入信号由于 信道和噪声的影响,产生了严重的码间 干扰,接收机已经不能正常工作,而均 衡后信号眼图已经完全张开。可见使用 LMS 算法,均衡器能够正常收敛到最优 解并且能够跟踪住信道的变化。仿真源
图 12 权值数为3时,低通信道均衡器输出 Fig.12 The eye pattern of signal through low pass channel and 3-order adaptive filter
图 13 权值数为7时,低通信道均衡器输出 Fig.13 The eye pattern of signal through low pass channel and 7-order adaptive filter
如图2所示, 自适应滤波器其实是 FIR滤波器,且FIR滤波器的各权值由 LMS算法进行实时调整,最终使FIR滤 波器 的输出信号收敛到所需的信号 上。
3 LMS算法简述
从图2可以看出, 自适应均衡器的输 出为:
(9) 其中 为滤波器输出与期望信号的误 差函数。上式就是LMS 算法权值的更新 公式。 e( n ) 通过上面的讨论可以总结出LMS 算法的 具体步骤如下: 步骤l :初始化权值 步骤 2:当 n n 1 时,计算滤波器 的输出 y ( n) wHx ( n) , 计算误差函数 e ( n ) d ( n ) y ( n ), 更新滤波器的权值
J(n) 2X(n)D(n) 2X(n)X(n)TW(n) W(n 1) W(n) X(n)[D(n) XT (n) W(n)]

综合课程设计基于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),使系统误码率上升,严重情况下使系统无法继续正常工作。

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

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

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

MATLAB环境下ISI信道仿真及自适应均衡器设计程序说明书

MATLAB环境下ISI信道仿真及自适应均衡器设计程序说明书

MATLAB 环境下ISI 信道仿真及自适应均衡器设计程序说明一、系统模型二、ISI 信道仿真及LSM 算法自适应均衡器原理1、发送端和接收端滤波器的级联和在采样瞬间时的信道可用等效的离散时间FIR 信道滤波器来表示,Xn={0.05 -0.063 0.088 -0.126 -0.25 0.9047 0.25 0 0.126 0.038 0.088},n={-5,-4,…,5}。

2、基于MSE 准则的均衡器抽头系数的自适应算法为:^^1k k k k c c e y +=+∆其中^k c 代表抽头系数向量的估值,∆为迭代过程中的步长参数,k e 为误差信号,k y 代表在瞬时k 包含均衡器中2k+1接收信号值的行向量。

误差信号k e 表示为:k k k e a z =-;k z 为均衡器输出,k a 为已知信号序列。

最初用一已知伪随机序列{k a }在信道上将这个自适应均衡器进行训练。

在解调器端,均衡器用这个已知序列去调整它的系数,一旦初始调节完成,自适应均衡器就从一个训练模式切换到直接判决模式,这时:^k k k e a z =-,式中^k a 是检测器的输出。

为了确保收敛和在慢变化信道中好的跟踪能力,选择步长参数的一种经验公式是15(21)R k P ∆=+ 式中R P 代表接收到的信号加噪声的功率,它可以从接收信号中估计出。

三、仿真结果图四、结论分析从结果图中我们可以看出,在信噪比逐渐增大的过程中,未经均衡器均衡的差错率没有明显改善,可知系统中始终存在码间干扰造成的误码;经均衡器均衡后的差错率则有明显改善。

但我们同时也可以看到在信噪比较低情况下,均衡器均衡之后的误码率并没有明显改善,甚至没有未均衡的差错率低,这主要是因为噪声为随机信号,功率大时对源信号影响较大,而且均衡器不易跟踪;当我们把均衡器的步长调低后,跟踪能力增强,差错率降低。

附源程序代码:main_plot.mclear;clc;echo off;close all;N=10000; %指定信号序列长度info=random_binary(N); %产生二进制信号序列SNR_in_dB=8:1:18; %AWGN信道信噪比for j=1:length(SNR_in_dB)[y,len]=channel(info,SNR_in_dB(j)); %通过既有码间干扰又有白噪声信道numoferr=0; %初始误码统计数for i=len+1:N+len, %从第len个码元开始为真实信号码元if (y(i)<0), %判决译码elsedecis=1;end;if (decis~=info(i-5)), %判断是否误码,统计误码码元个数numoferr=numoferr+1;end;end;Pe(j)=numoferr/N; % 未经均衡器均衡,得到的误码率end;semilogy(SNR_in_dB,Pe,'red*-'); %未经均衡器,误码率结果图hold on;delta_1=0.11; %指定自适应均衡器的步长delta_2=0.09; %指定自适应均衡器的步长for j=1:length(SNR_in_dB)y=channel(info,SNR_in_dB(j)); %通过信道z=lms_equalizer(y,info,delta_1); %通过自适应均衡器,并设置步长为0.11 numoferr=0;for i=1:N,if (z(i)<0),decis=-1;elsedecis=1;end;if (decis~=info(i)),numoferr=numoferr+1;end;end;Pe(j)=numoferr/N; % 经自适应均衡器均衡后,得到的误码率end;semilogy(SNR_in_dB,Pe,'blacko-'); %自适应均衡器均衡之后,误码率结果图hold on;for j=1:length(SNR_in_dB)y=channel(info,SNR_in_dB(j)); %通过信道z=lms_equalizer(y,info,delta_2); %通过自适应均衡器,并设置步长为0.09 numoferr=0;for i=1:N,if (z(i)<0),decis=-1;elsedecis=1;end;numoferr=numoferr+1;end;end;Pe(j)=numoferr/N; % 经自适应均衡器均衡后,得到的误码率end;semilogy(SNR_in_dB,Pe,'blue.-'); %自适应均衡器均衡之后,误码率结果图hold on;xlabel('SNR in dB');ylabel('Pe');title('ISI信道自适应均衡系统仿真');legend('未经均衡器均衡','经自适应均衡器均衡,步长detla=0.11',...'经自适应均衡器均衡,步长detla=0.09');random_binary.m%产生二进制信源随机序列function [info]=random_binary(N)if nargin == 0, %如果没有输入参数,则指定信息序列为10000个码元N=10000;end;for i=1:N,temp=rand;if (temp<0.5),info(i)=-1; % 1/2的概率输出为-1elseinfo(i)=1; % 1/2的概率输出为1endend;channel.m%模拟既有码间干扰又有高斯白噪声的信道function [y,len]=channel(x,snr_in_dB)SNR=exp(snr_in_dB*log(10)/10); %信噪比真值转换sigma=1/sqrt(2*SNR); %高斯白噪声的标准差%指定信道的ISI参数,可以看出此信道质量还是比较差的actual_isi=[0.05 -0.063 0.088 -0.126 -0.25 0.9047 0.25 0 0.126 0.038 0.088];len_actual_isi=(length(actual_isi)-1)/2;len=len_actual_isi;y=conv(actual_isi,x); %信号通过信道,相当于信号序列与信道模型序列作卷积%需要指出,此时码元序列长度变为N+len-1,译码时我们从第len个码元开始到N+len个结束for i=1:2:size(y,2),[noise(i) noise(i+1)]=gngauss(sigma); %产生噪声end;y=y+noise; %叠加噪声gngauss.m%产生高斯白噪声function [gsrv1,gsrv2]=gngauss(m,sgma)if nargin == 0, %如果没有输入实参,则均方为0,标准差为1m=0; sgma=1;elseif nargin == 1, %如果输入实参为1个参数,则标准差为输入实参,均值为0 sgma=m; m=0;end;u=rand;z=sgma*(sqrt(2*log(1/(1-u))));u=rand;gsrv1=m+z*cos(2*pi*u);gsrv2=m+z*sin(2*pi*u);lms_equalizer.m%LSM算法自适应滤波器实现function [z]=lms_equalizer(y,info,delta)estimated_c=[0 0 0 0 0 1 0 0 0 0 0]; %初始抽头系数K=5;for k=1:size(y,2)-2*K,y_k=y(k:k+2*K); %获取码元,一次11个z_k=estimated_c*y_k'; %各抽头系数与码元相乘后求和e_k=info(k)-z_k; %误差估计estimated_c=estimated_c+delta*e_k*y_k; %计算校正抽头系数z(k)=z_k; %均衡后输出的码元序列end;。

《信号与系统》课程设计-数字通信系统中ISI信道均衡器的设计和性能仿真

《信号与系统》课程设计-数字通信系统中ISI信道均衡器的设计和性能仿真

《信号与系统》课程设计——数字通信系统中ISI 信道均衡器的设计和性能仿真【设计题目】数字通信系统中ISI 信道均衡器的设计和性能仿真【设计要求】(1) 实现数字通信系统的误码率测试程序。

(2) 仿真码间串扰ISI 的影响。

(3) 讨论均衡器的性能。

【设计工具】MATLAB【设计原理】1、一个简单的二进制数字通信系统假设一个简单的二进制数字通信系统,接收机接收到的第n 个时间的信号Y n 可以描述为n n n N b Y +-=)12( (1)其中b n 是发射机发送的第n 个比特信息,b=0或b=1;N n 是接收机接收到信号的同时接收到的噪声,通常描述成均值为0,方差为2σ的高斯分布的随机噪声。

;1 ,0N Y b +-==.1 ,1N Y b ++==如果没有噪声存在,可以很容易地从接收到的信号Y 恢复出信息比特b 。

噪声较小时,若b=0,Y 更接近-1;若b=1,则Y 更接近+1,因此可以通过Y 的正负号恢复信息比特,即0~ ,0 if ;1~ ,0 if =<=>b Y b Y这个过程称为判决,b ~是恢复的比特信息。

但是由于噪声N 的随机性,总有一定的可能会出现较大的N 值,一旦噪声N 大到改变了接收信号Y 的正负号,就会出现判决的错误,导致误码的出现。

实际上,对于这种简单的系统,误码率(即误码出现的概率,Bit Error Rate ,BER )只与2/1σ有关。

定义信噪比(Signal-to-noise ratio ,SNR )2/1σ=SNR ,分子为信号功率,从(1)可知不考虑噪声时信号部分的功率恒等于1;分母为噪声的功率2σ。

下面的MATLAB 例程可以很容易仿真得到SNRdB=5dB()(log 1010SNR SNRdB ⨯=)时的BER 值。

MATLAB 例程:clear all; close all; % 将MATLAB 的变量清空SNRdB = 10; % 定义SNRdBSNR = 10^(SNRdB/10); % 获得SNRNoise_sigma = sqrt(1/SNR); % 从SNR 求出噪声的方差根NN = 1000000; % 仿真的比特总个数B_in = randint(1, NN); % randint()随机产生NN 个比特信号作为输入Y = (2*B_in - 1) + Noise_sigma*randn(1, NN); % randn()是产生高斯随机数的函数B_out = (Y > 0); % 判决N_error = sum(B_in ~= B_out) % 统计误码个数BER = N_error/NN % 计算BER对MATLAB 例程进行必要的修改,仿真SNRdB 从0dB 到10dB 时的BER ,MATLAB 的semilogy()绘图函数,请自己查阅MATLAB 帮助了解该函数的使用说明。

基于MATLAB的通信系统传输信道性能仿真研究毕业设计说明书

基于MATLAB的通信系统传输信道性能仿真研究毕业设计说明书

1 绪论通信就是把信息从一地有效地传递到另一地,及消息传递的全过程。

通信是由通信系统来实现的,通信系统是只完成信息传递的传输介质和全部设备的总称。

现代通信系统主要借助电磁波在自由空间的传播或在导引媒体中的传输机理来实现,前者称为无线通信系统,后者称为有线通信系统。

1.1 课题的研究背景及意义1.1.1 通信系统研究背景实际的通信系统是一个功能结构相当复杂的系统,对这个系统作出的任何改变(如改变某个参数的设置、改变系统的结构等)都可能影响到整个系统的性能和稳定。

因此,在对原有的通信系统作出改进或建立一个新系统之前,通常需要对这个系统进行建模和仿真,通过仿真结果衡量方案的可行性,从中选择最合理的系统配置和参数设置,然后再应用于实际系统中,这个过程就是通信系统仿真[1]。

在通信技术快速发展的今天,人们对通信系统的性能以及造价都提出了比较高的要求,于是通信仿真便应运而生。

仿真是衡量系统性能的工具,它通过仿真模型的仿真结果来推断原系统的性能,从而为新系统的建立或原系统的改造提供可靠的参考。

现代计算机科学技术快速发展,已经研发出了新一代的可视化的仿真软件。

这些功能强大的仿真软件,使得通信系统仿真的设计和分析过程变得相对直观和便捷,由此也使得通信系统仿真技术得到了更快的发展[2]。

通过仿真.可以降低新系统失败的可能性,消除系统中潜在的弊端,防止对系统中某些功能部件造成过量的负载,优化系统的整体性能,因此,仿真是科学研究和工程建设中不可缺少的方法。

计算机辅助分析和设计技术发展十分迅速,出现了大量实用仿真软件与工具,并应用于通信系统建模、分析和设计,使得通信系统仿真发展很快。

计算机辅助技术基本上有两大类,一是基于公式的方法,用计算机计算复杂的公式;二是用计算机仿真系统的信号波形,即波形级仿真。

现代计算机软硬件技术的快速发展,新一代的可视化的仿真软件的使用使得通信系统仿真的设计和分析过程变得相对直观和便捷,推动了通信系统仿真的快速发展。

MATLAB环境下ISI信道仿真及自适应均衡器设计程序说明书

MATLAB环境下ISI信道仿真及自适应均衡器设计程序说明书

MATLAB 环境下ISI 信道仿真及自适应均衡器设计程序说明一、系统模型二、ISI 信道仿真及LSM 算法自适应均衡器原理1、发送端和接收端滤波器的级联和在采样瞬间时的信道可用等效的离散时间FIR 信道滤波器来表示,Xn={0.05 -0.063 0.088 -0.126 -0.25 0.9047 0.25 0 0.126 0.038 0.088},n={-5,-4,…,5}。

2、基于MSE 准则的均衡器抽头系数的自适应算法为:^^1k k k k c c e y +=+∆其中^k c 代表抽头系数向量的估值,∆为迭代过程中的步长参数,k e 为误差信号,k y 代表在瞬时k 包含均衡器中2k+1接收信号值的行向量。

误差信号k e 表示为:k k k e a z =-;k z 为均衡器输出,k a 为已知信号序列。

最初用一已知伪随机序列{k a }在信道上将这个自适应均衡器进行训练。

在解调器端,均衡器用这个已知序列去调整它的系数,一旦初始调节完成,自适应均衡器就从一个训练模式切换到直接判决模式,这时:^k k k e a z =-,式中^k a 是检测器的输出。

为了确保收敛和在慢变化信道中好的跟踪能力,选择步长参数的一种经验公式是15(21)R k P ∆=+ 式中R P 代表接收到的信号加噪声的功率,它可以从接收信号中估计出。

三、仿真结果图四、结论分析从结果图中我们可以看出,在信噪比逐渐增大的过程中,未经均衡器均衡的差错率没有明显改善,可知系统中始终存在码间干扰造成的误码;经均衡器均衡后的差错率则有明显改善。

但我们同时也可以看到在信噪比较低情况下,均衡器均衡之后的误码率并没有明显改善,甚至没有未均衡的差错率低,这主要是因为噪声为随机信号,功率大时对源信号影响较大,而且均衡器不易跟踪;当我们把均衡器的步长调低后,跟踪能力增强,差错率降低。

附源程序代码:main_plot.mclear;clc;echo off;close all;N=10000; %指定信号序列长度info=random_binary(N); %产生二进制信号序列SNR_in_dB=8:1:18; %AWGN信道信噪比for j=1:length(SNR_in_dB)[y,len]=channel(info,SNR_in_dB(j)); %通过既有码间干扰又有白噪声信道numoferr=0; %初始误码统计数for i=len+1:N+len, %从第len个码元开始为真实信号码元if (y(i)<0), %判决译码elsedecis=1;end;if (decis~=info(i-5)), %判断是否误码,统计误码码元个数numoferr=numoferr+1;end;end;Pe(j)=numoferr/N; % 未经均衡器均衡,得到的误码率end;semilogy(SNR_in_dB,Pe,'red*-'); %未经均衡器,误码率结果图hold on;delta_1=0.11; %指定自适应均衡器的步长delta_2=0.09; %指定自适应均衡器的步长for j=1:length(SNR_in_dB)y=channel(info,SNR_in_dB(j)); %通过信道z=lms_equalizer(y,info,delta_1); %通过自适应均衡器,并设置步长为0.11 numoferr=0;for i=1:N,if (z(i)<0),decis=-1;elsedecis=1;end;if (decis~=info(i)),numoferr=numoferr+1;end;end;Pe(j)=numoferr/N; % 经自适应均衡器均衡后,得到的误码率end;semilogy(SNR_in_dB,Pe,'blacko-'); %自适应均衡器均衡之后,误码率结果图hold on;for j=1:length(SNR_in_dB)y=channel(info,SNR_in_dB(j)); %通过信道z=lms_equalizer(y,info,delta_2); %通过自适应均衡器,并设置步长为0.09 numoferr=0;for i=1:N,if (z(i)<0),decis=-1;elsedecis=1;end;numoferr=numoferr+1;end;end;Pe(j)=numoferr/N; % 经自适应均衡器均衡后,得到的误码率end;semilogy(SNR_in_dB,Pe,'blue.-'); %自适应均衡器均衡之后,误码率结果图hold on;xlabel('SNR in dB');ylabel('Pe');title('ISI信道自适应均衡系统仿真');legend('未经均衡器均衡','经自适应均衡器均衡,步长detla=0.11',...'经自适应均衡器均衡,步长detla=0.09');random_binary.m%产生二进制信源随机序列function [info]=random_binary(N)if nargin == 0, %如果没有输入参数,则指定信息序列为10000个码元N=10000;end;for i=1:N,temp=rand;if (temp<0.5),info(i)=-1; % 1/2的概率输出为-1elseinfo(i)=1; % 1/2的概率输出为1endend;channel.m%模拟既有码间干扰又有高斯白噪声的信道function [y,len]=channel(x,snr_in_dB)SNR=exp(snr_in_dB*log(10)/10); %信噪比真值转换sigma=1/sqrt(2*SNR); %高斯白噪声的标准差%指定信道的ISI参数,可以看出此信道质量还是比较差的actual_isi=[0.05 -0.063 0.088 -0.126 -0.25 0.9047 0.25 0 0.126 0.038 0.088];len_actual_isi=(length(actual_isi)-1)/2;len=len_actual_isi;y=conv(actual_isi,x); %信号通过信道,相当于信号序列与信道模型序列作卷积%需要指出,此时码元序列长度变为N+len-1,译码时我们从第len个码元开始到N+len个结束for i=1:2:size(y,2),[noise(i) noise(i+1)]=gngauss(sigma); %产生噪声end;y=y+noise; %叠加噪声gngauss.m%产生高斯白噪声function [gsrv1,gsrv2]=gngauss(m,sgma)if nargin == 0, %如果没有输入实参,则均方为0,标准差为1m=0; sgma=1;elseif nargin == 1, %如果输入实参为1个参数,则标准差为输入实参,均值为0 sgma=m; m=0;end;u=rand;z=sgma*(sqrt(2*log(1/(1-u))));u=rand;gsrv1=m+z*cos(2*pi*u);gsrv2=m+z*sin(2*pi*u);lms_equalizer.m%LSM算法自适应滤波器实现function [z]=lms_equalizer(y,info,delta)estimated_c=[0 0 0 0 0 1 0 0 0 0 0]; %初始抽头系数K=5;for k=1:size(y,2)-2*K,y_k=y(k:k+2*K); %获取码元,一次11个z_k=estimated_c*y_k'; %各抽头系数与码元相乘后求和e_k=info(k)-z_k; %误差估计estimated_c=estimated_c+delta*e_k*y_k; %计算校正抽头系数z(k)=z_k; %均衡后输出的码元序列end;。

simulink matlab仿真环境教程

simulink matlab仿真环境教程

simulink matlab仿真环境教程Simulink是面向框图的仿真软件。

演示一个Simulink的简单程序【例1.1】创建一个正弦信号的仿真模型。

步骤如下:(1) 在MATLAB的命令窗口运行simulink命令,或单击工具栏中的图标,就可以打开Simulink模块库浏览器(Simulink Library Browser) 窗口,如图1.1所示。

图7.1 Simulink界面(2) 单击工具栏上的图标或选择菜单“File”——“New”——“Model”,新建一个名为“untitled”的空白模型窗口。

(3) 在上图的右侧子模块窗口中,单击“Source”子模块库前的“+”(或双击Source),或者直接在左侧模块和工具箱栏单击Simulink下的Source子模块库,便可看到各种输入源模块。

(4) 用鼠标单击所需要的输入信号源模块“Sine Wave”(正弦信号),将其拖放到的空白模型窗口“untitled”,则“Sine Wave”模块就被添加到untitled窗口;也可以用鼠标选中“Sine Wave”模块,单击鼠标右键,在快捷菜单中选择“add to 'untitled'”命令,就可以将“Sine Wave”模块添加到untitled窗口,如图1.2所示。

(5) 用同样的方法打开接收模块库“Sinks”,选择其中的“Scope”模块(示波器)拖放到“untitled”窗口中。

(6) 在“untitled”窗口中,用鼠标指向“Sine Wave”右侧的输出端,当光标变为十字符时,按住鼠标拖向“Scope”模块的输入端,松开鼠标按键,就完成了两个模块间的信号线连接,一个简单模型已经建成。

如图1.3所示。

(7) 开始仿真,单击“untitled”模型窗口中“开始仿真”图标,或者选择菜单“Simulink”——“Start”,则仿真开始。

双击“Scope”模块出现示波器显示屏,可以看到黄色的正弦波形。

自适应均衡器的设计与仿真

自适应均衡器的设计与仿真

2014届毕业设计(论文)摘要在移动通信领域中,码间干扰始终是影响通信质量的主要因素之一。

为了提高通信质量,减少码间干扰,在接收端通常采用均衡技术抵消信道的影响。

由于信道响应是随着时间变化的,通常采用自适应均衡器。

自适应均衡器能够自动的调节系数从而跟踪信道,成为通信系统中一项关键的技术。

本篇论文在对无线通信信道进行研究的基础上,阐述了信道产生码间干扰的原因以及无码间干扰的条件,介绍了奈奎斯特第一准则和时域均衡的原理。

深入研究了均衡器的结构和自适应算法,在均衡器的结构中主要介绍了4种自适应均衡器结构即线性横向均衡器、线性格型均衡器、判决反馈均衡器和分数间隔均衡器,并对这几种结构进行了比较。

对于系数调整算法主要介绍了常用的几种算法,包括LMS算法、RLS算法以及盲均衡常用的恒模算法(CMA),并讨论了它们各自的优缺点。

最后选用线性横向均衡器结构与上述3种系数调整算法,利用MATLAB进行仿真,并对结果进行分析与比较。

关键字:自适应均衡器,LMS,RLS,CMA ,MATLABAbstractIn the field of mobile communications, the inter-symbol interferences (ISI) is always one of the primary factor which effects transmission. Adaptive equalization is mainly solution of dealing with ISI. Equalizers are often used to combat the influence of channels for improving communication’s quality and decreasing ISI in receivers. Sometimes, channel response varies due to time, the adaptive equalizer is always necessary. Equalizer coefficients can be automatically adjusted to track the channel as a key communication system technology.On the basis of studying on wireless communication channel, this paper discusses the reasons of resulting inter-symbol interference (ISI) and without conditions, introduces Nyquist first rule and the theory of adaptive equalizers. The equalizer structures and the adaptive algorithm are particularly studied in this paper. Mainly introducing and comparing four adaptive equalizer structures, such as linear horizontal equalizer, line personality type equalizer, decision feedback equalizer, fractionally spaced equalizers. Then we research the algorithms of the adaptive equalizer which are often used, including LMS, RLS, CMA, and discuss their respective advantages and disadvantages. Finally, we choose different adaptive equalizer structures and algorithms, and use the MATALB tool to simulate, at the end of this paper we analyze and compare the results.Keywords: adaptive equalizer, LMS, RLS, CAM, MATLAB目录摘要 (I)ABSTRACT (II)目录 (III)第一章绪论 (1)1.1引言 (1)1.2国内(外)研究现状 (1)1.3论文研究的内容及主要工作 (2)第二章信道、码间干扰及均衡技术 (3)2.1信道 (3)2.1.1 恒参信道 (4)2.1.2 变参信道 (4)2.2通信信道模型 (6)2.3码间干扰 (7)2.4自适应均衡的原理与特点 (10)2.5本章小结 (11)第三章均衡器结构 (12)3.1自适应均衡简介 (12)3.2均衡器的分类 (12)3.3线性横向均衡器结构(LTE) (13)3.4线性格型均衡器(LLE) (14)3.5判决反馈均衡器(DFE) (15)3.6分数间隔均衡器(FSE) (17)3.7本章总结 (20)第四章自适应均衡算法的理论基础 (22)4.1最小均衡误差算法(LMS) (22)4.2递归最小二乘算法(RLS) (25)4.3盲均衡算法 (27)4.4本章小结 (30)第五章均衡器的仿真与实现 (31)5.1采用线性横向均衡器与LMS算法 (31)5.2采用线性横向均衡器与RLS算法 (31)5.3利用恒模算法和线性横向均衡器 (32)总结 (35)参考文献 (36)致谢 (37)附录 (38)第一章绪论1.1引言通常信道特性是一个复杂的函数,它可能包括各种线性失真、非线性失真、交调失真、衰落等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MATLAB 环境下ISI 信道仿真及自适应均衡器设计程序说明
一、系统模型
二、ISI 信道仿真及LSM 算法自适应均衡器原理
1、发送端和接收端滤波器的级联和在采样瞬间时的信道可用等效的离散时间FIR 信道滤波器来表示,Xn={0.05 -0.063 0.088 -0.126 -0.25 0.9047 0.25 0 0.126 0.038 0.088},n={-5,-4,…,5}。

2、基于MSE (均方准则)的均衡器抽头系数的自适应算法为:
^^1k k k k c c e y +=+∆
其中^
k c 代表抽头系数向量的估值,∆为迭代过程中的步长参数,k e 为误差信号,k y 代表在瞬时k 包含均衡器中2k+1接收信号值的行向量。

误差信号k e 表示为:k k k e a z =-;k z 为均衡器输出,k a 为已知信号序列。

最初用一已知伪随机序列{k a }在信道上将这个自适应均衡器进行训练。

在解调器端,均衡器用这个已知序列去调整它的系数,一旦初始调节完成,自适应均衡器就从一个训练模式切换到直接判决模式,这时:^k k k e a z =-,式中^k a 是检测器的输出。

为了确保收敛 和 在慢变化信道中好的跟踪能力,选择步长参数的一种经验公式是
15(21)R k P ∆=+ 式中R P 代表接收到的信号加噪声的功率,它可以从接收信号中估计出。

三、仿真结果图
四、结论分析
从结果图中我们可以看出,在信噪比逐渐增大的过程中,未经均衡器均衡的差错率没有明显改善,可知系统中始终存在码间干扰造成的误码;经均衡器均衡后的差错率则有明显改善。

但我们同时也可以看到在信噪比较低情况下,均衡器均衡之后的误码率并没有明显改善,甚至没有未均衡的差错率低,这主要是因为噪声为随机信号,功率大时对源信号影响较大,而且均衡器不易跟踪;当我们把均衡器的步长调低后,跟踪能力增强,差错率降低。

附源程序代码:
main_plot.m
clear;
clc;
echo off;
close all;
N=10000; %指定信号序列长度
info=random_binary(N); %产生二进制信号序列
SNR_ in _dB=8:1:18; %AWGN信道信噪比
for j=1:length(SNR _in_ dB)
[y, len ]=channel(info, SNR _in _dB(j)); %通过既有码间干扰又有白噪声信道
numoferr=0; %初始误码统计数
for i=len+1:N+len, %从第len个码元开始为真实信元
if (y(i)<0), %判决译码
decis=-1;
else
decis=1;
end;
if (decis~=info(i-5)), %判断是否误码,统计误码码元个数
numoferr=numoferr+1;
end;
end;
Pe(j)=numoferr/N; % 未经均衡器均衡,得到的误码率
end;
semilogy(SNR_in_dB,Pe,'red*-'); %未经均衡器,误码率结果图
hold on;
delta_1=0.11; %指定自适应均衡器的步长
delta_2=0.09; %指定自适应均衡器的步长
for j=1:length(SNR_in_dB)
y=channel(info,SNR_in_dB(j)); %通过信道
z=lms_equalizer(y,info,delta_1); %通过自适应均衡器,并设置步长为0.11 numoferr=0;
for i=1:N,
if (z(i)<0),
decis=-1;
else
decis=1;
end;
if (decis~=info(i)),
numoferr=numoferr+1;
end;
end;
Pe(j)=numoferr/N; % 经自适应均衡器均衡后,得到的误码率
end;
semilogy(SNR _in _ dB, Pe ,'blacko-'); %自适应均衡器均衡之后,误码率结果图 hold on;
for j=1:length(SNR_in_dB)
y=channel(info,SNR_in_dB(j)); %通过信道
z=lms_equalizer(y,info,delta_2); %通过自适应均衡器,并设置步长为0.09 numoferr=0;
for i=1:N,
if (z(i)<0),
decis=-1;
else
decis=1;
end;
if (decis~=info(i)),
numoferr=numoferr+1;
end;
end;
Pe(j)=numoferr/N; % 经自适应均衡器均衡后,得到的误码率
end;
semilogy(SNR_in_dB,Pe,'blue.-'); %自适应均衡器均衡之后,误码率结果图
hold on;
xlabel('SNR in dB');
ylabel('Pe');
title('ISI信道自适应均衡系统仿真');
legend('未经均衡器均衡','经自适应均衡器均衡,步长detla=0.11',...
'经自适应均衡器均衡,步长detla=0.09');
random_binary.m
%产生二进制信源随机序列
function [info]=random_binary(N)
if nargin == 0, %如果没有输入参数,则指定信息序列为10000个码元
N=10000;
end;
for i=1:N,
temp=rand;
if (temp<0.5),
info(i)=-1; % 1/2的概率输出为-1
else
info(i)=1; % 1/2的概率输出为1
end
end;
channel.m
%模拟既有码间干扰又有高斯白噪声的信道
function [y,len]=channel(x,snr_in_dB)
SNR=exp(snr_in_dB*log(10)/10); %信噪比真值转换
sigma=1/sqrt(2*SNR); %高斯白噪声的标准差
%指定信道的ISI参数,可以看出此信道质量还是比较差的
actual_isi=[0.05 -0.063 0.088 -0.126 -0.25 0.9047 0.25 0 0.126 0.038 0.088];
len_ actual _isi=(length(actual_isi)-1)/2;
len=len_actual_isi;
y=conv(actual_isi,x); %信号通过信道,相当于信号序列与信道模型序列作卷积
%需要指出,此时码元序列长度变为N+len-1,译码时我们从第len个码元开始到N+len个结束
for i=1:2:size(y,2),
[noise(i) noise(i+1)]=gngauss(sigma); %产生噪声
end;
y=y+noise; %叠加噪声
gngauss . m
%产生高斯白噪声
function [gsrv1,gsrv2]=gngauss(m,sgma)
if nargin == 0, %如果没有输入实参,则均方为0,标准差为1
m=0; sgma=1;
elseif nargin == 1, %如果输入实参为1个参数,则标准差为输入实参,均值为0 sgma=m; m=0;
end;
u=rand;
z=sgma*(sqrt(2*log(1/(1-u))));
u=rand;
gsrv1=m+z*cos(2*pi*u);
gsrv2=m+z*sin(2*pi*u);
lm _equalizer .m
%LSM算法自适应滤波器实现
function [z]=lms_equalizer(y,info,delta)
estimated_c=[0 0 0 0 0 1 0 0 0 0 0]; %初始抽头系数
K=5;
for k=1:size(y,2)-2*K,
y_k=y(k:k+2*K); %获取码元,一次11个
z_k=estimated_c*y_k'; %各抽头系数与码元相乘后求和
e_k=info(k)-z_k; %误差估计
estimated_c=estimated_c+delta*e_k*y_k; %计算校正抽头系数
z(k)=z_k; %均衡后输出的码元序列
end;。

相关文档
最新文档