好文档 - 专业文书写作范文服务资料分享网站

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

天下 分享 时间: 加入收藏 我要投稿 点赞

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

MATLAB环境下ISI信道仿真及自适应均衡器设计程序说明 一、系统模型 统计误码率 统计误码率 X与Y比较 X与Z比较

YX自适应均衡器信源ISI信道+步长可调Z2(0,,) 高斯白噪声

二、ISI信道仿真及LSM算法自适应均衡器原理

1、发送端和接收端滤波器的级联和在采样瞬间时的信道可用等效的离散时间FIR信道

0.05 -0.063 0.088 -0.126 -0.25 0.9047 0.25 0 0.126 0.038 0.088},滤波器来表示,Xn={

n={-5,-4,…,5}。

2、基于MSE准则的均衡器抽头系数的自适应算法为: ^^

ccey,,,,kk1 kk ^

ey其中代表抽头系数向量的估值,为迭代过程中的步长参数,为误差信号,代表在瞬,ckkk时k包含均衡器中2k+1接收信号值的行向量。

zaeaz,,e误差信号表示为:;为均衡器输出,为已知信号序列。最初用一已kkkkkk

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

知序列去调整它的系数,一旦初始调节完成,自适应均衡器就从一个训练模式切换到直接判

^^

eaz,,决模式,这时:,式中是检测器的输出。 akkkk

为了确保收敛和在慢变化信道中好的跟踪能力,选择步长参数的一种经验公式是

1,, kP,5(21)R

P式中代表接收到的信号加噪声的功率,它可以从接收信号中估计出。 R 三、仿真结果图

四、结论分析

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

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

附源程序代码: 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;

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

MATLAB环境下ISI信道仿真及自适应均衡器设计程序说明MATLAB环境下ISI信道仿真及自适应均衡器设计程序说明一、系统模型统计误码率统计误码率X与Y比较X与Z比较YX自适应均衡器信源ISI信道+步长可调Z2(0,,)高斯白噪声二、ISI信道仿真及LSM算法自适应均衡器原理1、发送端和接收端滤
推荐度:
点击下载文档文档为doc格式
40jot9eibz9x6b742rz56u75f0b43501d7u
领取福利

微信扫码领取福利

微信扫码分享