课 程 设
1 需求分析
1.设基带传输系统响应是α=1的升余弦滚降系统,画出在接收端的基带数字信号波形及其眼图。
2.设定二进制数字基带信号 an∈{+1,-1},g(t)= 1 0≤t≤Ts;t为其他值时g(t)= 0。系统加性高斯白噪声的双边功率谱密度为0。画出:(1) 经过理想低通H(f)= 1 │f│≤5/(2 Ts) 后的眼图。(2) 经过理想低通H(f)= 1 │f│≤1/ Ts后的眼图。(3) 比较分析上面图形。
在该部分中叙述:对题目中要求的功能进行的简单的叙述分析,把题目内容给介绍一下,还需要介绍分工情况。
2 概要设计
1、基带传输特性
基带系统的分析模型如图3-1所示,要获得良好的基带传输系统,就应该
1
atnTnsn基带传输H()ahtnTnsn抽样判决
图2-1 基带系统的分析模型
抑制码间干扰。设输入的基带信号为antnTs,Ts为基带信号的码元周期,
n则经过基带传输系统后的输出码元为anhtnTs。其中
n1h(t)2H()ejtd
(3-1)
理论上要达到无码间干扰,依照奈奎斯特第一准则,基带传输系统在时域应满足:
k01, h(kTs)0,k为其他整数频域应满足:
(3-2)
T,sTs H()0,其他H() (3-3)
TsTs0Ts
图2-2 理想基带传输特性
此时频带利用率为2Baud/Hz,这是在抽样值无失真条件下,所能达到的最高频率利用率。
由于理想的低通滤波器不容易实现,而且时域波形的拖尾衰减太慢,因此在
得不到严格定时时,码间干扰就可能较大。在一般情况下,只要满足:
2i2HHTTsis
2H()HTs2
Ts,Ts (3-4)
基带信号就可实现无码间干扰传输。这种滤波器克服了拖尾太慢的问题。
从实际的滤波器的实现来考虑,采用具有升余弦频谱特性H()时是适宜的。
Ts(1)(1)1sin(),2TTsTss(1)H()1,0
Ts(1)0,Ts (3-5)
这里称为滚降系数,01。
所对应的其冲激响应为:
sinh(t)t
(3-6)
Tscos(tTs)
t142t2Ts2Ts此时频带利用率降为2/(1)Baud/Hz,这同样是在抽样值无失真条件下,所能达到的最高频率利用率。换言之,若输入码元速率Rs'1/Ts,则该基带传输系统输出码元会产生码间干扰。
2、眼图
所谓眼图就是将接收滤波器输出的,未经再生的信号,用位定时以及倍数作为同步信号在示波器上重复扫描所显示的波形(因传输二进制信号时,类似人的眼睛)。干扰和失真所产生的畸变可以很清楚的从眼图中看出。眼图反映了系统的最佳抽样时间,定时的灵敏度,噪音容限,信号幅度的畸变范围以及判决门限电平,因此通常用眼图来观察基带传输系统的好坏。
3
图2-3
眼图示意图
部分的算法设计说明(可以是描述算法的流程图);每个程序中使用的存储结构设计说明(如果题目已经指定了数据存储的,按照指定的设计,并且写出该存储结构的定义)。也就是简单介绍一下你程序中自定义的函数(函数名,参数,以及功能)等。
3 运行环境
Windows 7
4 开发工具和编程语言
MATLAB V6.0
5 详细设计
clear all; close all;
N_eye = 7;%眼图中码元个数 N0 = 0;%高斯白噪声功率谱设为0 Ts = 2;%码元宽度设为1
N_sample = 10;%每个码元抽样10个点 dt = Ts/N_sample;
gt = ones(1,N_sample);%矩形不归零脉冲 N_code = 1000;%码元个数
4
t = 0:dt:N_code*N_sample*dt-dt; data = sign(randn(1,N_code)); data1 = sigexpand(data,N_sample); st = conv(data1,gt);%产生NRZ基带信号
h1t =5/Ts*sinc(5*(t-5)/Ts);%滤波器1的冲激响应 h2t = 2/Ts*sinc(2*(t-5)/Ts);%滤波器2的冲激响应 h3t = 1/Ts*sinc(1*(t-5)/Ts);%滤波器3的冲激响应 h4t = 0.5/Ts*sinc(0.5*(t-5)/Ts);
r1t = conv(h1t,st); r2t = conv(h2t,st); r3t = conv(h3t,st); r4t = conv(h4t,st);
r1t = [0 r1t*dt]; r2t = [0 r2t*dt]; r3t = [0 r3t*dt]; r4t = [0 r4t*dt];
sigma1 = sqrt(2.5*N0/Ts); sigma2 = sqrt(N0/Ts); sigma3 = sqrt(0.5*N0/Ts); sigma4 = sqrt(0.25*N0/Ts);
n1 = sigma1*randn(1,length(r1t)); n2 = sigma2*randn(1,length(r2t));
n3 = sigma2*randn(1,length(r3t));%加入白噪声,该白噪声是通过滤波器后的带限白噪声
5
n4 = sigma2*randn(1,length(r4t));
r1t = r1t + n1; r2t = r2t + n2; r3t = r3t + n3;
r3t = r3t + n3;%至此得到基带信号分别通过滤波器1和滤波器2 滤波器3滤波器4的输出波形
ttt = 0:dt:N_eye*N_sample*dt-dt; figure(1)
subplot(411)%画出滤波器1输出的眼图 for n = 9:1:100
ss = r1t(n*N_sample*N_eye+1:(n+1)*N_sample*N_eye); drawnow; plot(ttt,ss); hold on; end
ylabel('B=2.5Hz');
subplot(412)%画出滤波器2输出的眼图 for n = 9:1:100
ss = r2t(n*N_sample*N_eye+1:(n+1)*N_sample*N_eye); drawnow; plot(ttt,ss) hold on; end
ylabel('B=1Hz')
subplot(413)%画出滤波器3输出的眼图 for n = 9:1:100
ss = r3t(n*N_sample*N_eye+1:(n+1)*N_sample*N_eye); drawnow;
6
plot(ttt,ss) hold on; end
ylabel('B=0.5Hz')
subplot(414)%画出滤波器4输出的眼图 for n = 9:1:100
ss = r4t(n*N_sample*N_eye+1:(n+1)*N_sample*N_eye); drawnow; plot(ttt,ss) hold on; end
ylabel('B=0.25Hz')
6 调试分析
刚开始的时候,程序出现了问题
Undefined command/function 'sigexpand'.之后添加了一个函数
7
function[out]=sigexpand(d,M)%将输入的序列扩展成间隔为N-1个0的序列 N=length(d);
out=zeros(M,N); %例如,M=8,N=1000,产生一个8行1000列的矩阵 out(1,:)=d; %d的每一个元素赋值给out矩阵每列的第一个元素,因为d
1000个元素(0,-1或者1),且out矩阵共有1000列,所以当然成立
out=reshape(out,1,M*N); %把out这个矩阵重新变成一个1行M*N列的矩阵,
即1行8000列的有8000个元素的矩阵,其中每隔7个0就是一个原来的d中的元素
之后再调用sigexpand()函数的到时候就就没有问题了。
7 测试结果
8
程序运行结果如图7-1所示
图7-1 程序运行结果图
比较上图中的1和3可以发现,3的性能比1的性能。1中的失真比较严重。
参考文献
[1] 孙屹,MATLAB通信仿真开发手册,北京:国防工业出版社
[2] 李建新,现代通信系统分析与仿真-MATLAB通信工具箱,西安:西安电子科技大学出版社
[3] 曹志刚,现代通信原理,北京:清华大学出版社 [4] 教学用“通信原理”教材
9
心得体会
通过这次的课程设计,我更加理解了眼图的用途,通过眼图可以迅速的定性评价系统的性能。可以观察到麻将干扰和信道噪声等影响因素的情况虫儿快速的判断出系统性能的优劣程度。最佳抽烟时刻是‘眼睛’张开最大的时刻,定时误差灵敏度是眼图斜边的斜率,斜率越大,对应的定时误差越敏感。图的阴影区的垂直高度便是抽样时刻上信号受噪音干扰的畸变程度。图的横轴位置对应于判决门限电平,抽样时刻时上下两阴影区的间隔距离之半为噪声容限。此外,又学习了用matlab仿真通信原理实验的有关方法,及常用的相关函数。通过对程序错误的调试,更加熟练的应用软件。通过仿真,更容易理解了通信原理的相关内容。
通信原理是一门很有用的课程,但是内容繁杂,需要记忆的很多,所以我们应该加深的理解而不是单纯的记忆,另外如果增加实践的内容,我们将学得更
10
多,更快!路漫漫其修远兮,吾将上下而求索!
11