基于MATLAB的数字基带传输系统(5)

2019-05-24 14:27

3.5 接收滤波器模块设计及实现

3.5.1接收滤波器模块设计

接收滤波器位于信道与抽样判决之间,在本设计中有理想低通滤波器、升余弦滤波器、平方根升余弦滤波器几种选择。其中升余弦滤波器,平方根升余弦滤波器的滚降系数?可由用户设定,方法与形成滤波器相似,“PLOT”按键调用函数方法与形成滤波器相似,这里不再重复介绍。

3.5.2接收滤波器模块实现效果

选择菜单栏“接收滤波器”按键进入该模块,选择升余弦滤波器,滚降系数设为0.5绘制图形即可看到波形图以及眼图。

Ts=1; N=15;

eye_num=6; N_data=1000; dt=Ts/N;

t=-3*Ts:dt:3*Ts;

ht_rcos=sinc(t/Ts).*(cos(a*pi*t/Ts))./(1-4*a^2*t.^2/Ts^2+eps); % ht_rcos=rcosine(1,15,a);

ht_rcos_sqrt=rcosine(1,15,'sqrt',a); switch(num_slb) case 1

ht=rcosine(1,15,'normal',0); case 2

ht=ht_rcos; case 3

ht=ht_rcos_sqrt; otherwise end;

sts=conv(st,ht);

tt=-6*Ts:dt:(N_data+6)*N*dt-dt; assignin('base','s_st',sts); global s_st1; s_st1=sts;

assignin('base','s_tt',tt); axes(handles.axes_slb1) plot(tt,sts);

axis([0,40,min(sts)-0.1,max(sts)+0.1]); axes(handles.axes_slb2) cla reset

ss=zeros(1,eye_num*N); ttt=0:dt:eye_num*N*dt-dt;

15

for k=3:50

ss=sts(k*N+1:(k+eye_num)*N); drawnow; plot(ttt,ss); hold on; end;

图3.13 接收滤波器滤波及眼图

3.6 抽样判决模块设计及实现

3.6.1抽样判决模块设计

本设计中信源发送码元个数设定为1000个,为了在信源模块中显示效果清晰,所以仅显示前10个码元。同样在抽样判决模块中采用这一办法,仅显示前10个码元(发送端前10个码元,接收端前10个码元)。

绘制发送端码元波形程序: mxs=str2num(get(handles.edit_xy,'String')); [y,t]=NRZ(mxs); axes(handles.axes_fs) plot(t,y);

从前面信源模块中的edit控件获得系统随机生成的码元序列,并绘制其相应的NRZ码型。为了更好地显示到整个码元波形,在坐标轴上有局部的调整。 max_y=max(y); min_y=min(y);

axis([0 10 min_y-0.1 max_y+0.1]);

16

将坐标轴纵轴显示范围调整到包含码元最大值和最小值。 绘制接收端码元波形程序:

global s_st1; global f_mx; for j=1:1000

s_mx(j)=s_st1(76+15*j); end

s_mx=sign(s_mx); s_mx=(s_mx+1)/2; s_mx1=s_mx(:,1:10); [y,t]=NRZ(mxs);

程序中将s_st1定为全局变量,从接收滤波器模块中获得向量s_st1。 global s_st1; s_st1=sts;

sts为接收滤波器中经过滤波后的波形,将其赋值给全局变量s_st1,传递到抽样判决模块。

图3.14 抽样判决设计图

在抽样判决模块中有误码个数的计算功能,可获得在不同信噪比(形成滤波器模块中)的情况下,误码的个数(共1000个码元)。

信噪比的获得通过get函数从形成滤波器模块中获得。 b=get(handles.radiobutton_noise,'value'); if b==1

a=str2num(get(handles.edit_noise,'string')); set(handles.edit_snr,'string',a);

17

else

set(handles.edit_snr,'string','b_noise'); end

mxs=str2num(get(handles.edit_xy,'String')); [y,t]=NRZ(mxs); axes(handles.axes_fs) plot(t,y);

max_y=max(y); min_y=min(y);

axis([0 10 min_y-0.1 max_y+0.1]); global s_st1; global f_mx; for j=1:1000

s_mx(j)=s_st1(76+15*j); end

s_mx=sign(s_mx); s_mx=(s_mx+1)/2; s_mx1=s_mx(:,1:10); [y,t]=NRZ(mxs); axes(handles.axes_js) plot(t,y);

max_y=max(y); min_y=min(y);

axis([0 10 min_y-0.1 max_y+0.1]);

在形成滤波器模块中选择无噪声时,“信噪比”位置显示“无噪声”;选择添加噪声时则显示相应的信噪比。误码的计算通过抽样之后的信号与信源信号比较获得。 k=0;

for i=1:1000

if (f_mx(i)-s_mx(i))>0.5 k=k+1; else end end

set(handles.edit_pe,'string',k);

最终将误码个数显示在误码edit控件中。 3.6.2 抽样判决模块实现效果

通过“抽样判决”菜单按键进入抽样判决模块,点击“PLOT”按键即可显示发送码元序列和接收码元序列。

在无噪声情况下抽样判决效果如图

18

图3.15 无噪声情况下抽样判决效果图

图中仅显示前10个码元波形,设计中共1000个码元。形成滤波器用的是滚降系数为0.5的平方根升余弦滤波器,无噪声加入,接收滤波器选用滚降系数为0.5的平方根升余弦滤波器。抽样判决后的码元序列与信源序列比较的到误码个数为0个码元。

在形成滤波器中加入噪声的情况下(信噪比为8db)抽样判决显示如下。

图3.16 有噪声情况下抽样判决效果图

19


基于MATLAB的数字基带传输系统(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:最新初中人教版七年级数学上册课题:余角和补角公开课教案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: