桂林电子科技大学毕业设计(论文)报告用纸 第 8 页 共30页
是一个C 文件、M 文件、C++文件或其它的高级语言文件。用户可以通过编辑自己的功能程序,然后使用Simulink 提供的S-FUNCTION 模块对其进行调用,从而获得具有自编程序功能的新的Simulink 模块。由此可见,Simulink 是一个灵活性、功能性、扩展性较强的仿真平台。SIMULINK6.5 版本提供了20 多个仿真模型库,内容覆盖了通信仿真,数字信号处理,模糊逻辑,神经网络。机械控制和虚拟实现等。SIMULINK 提供的通信系统仿真模块(Communication Blocket),主要用于在移动通信系统的建模和仿真的应用。
3 研究和仿真的要求
从调相技术的仿真出发,分析并比较各种调相技术的特性及设计方法,从而得出移动通信中调相技术的具体方案。数字调相技术的研究与仿真可以分解为各种调制技术(PSK、QPSK、OQPSK等)的调制解调原理和其理论实现方法,用MATLAB软件实现仿真,通过星座图、频谱利用率、误码率分析等全面研究移动通信系统的调相技术。
要求以数字调制技术为基本理论,分析几种常用的调相技术,进行初步的设计计算,然后通过MATLAB和Simulink仿真调相信号,进行参数的设置和调整,要求获得各种调相信号的波形和软件编程方法,对其进行数据分析,得出现代移动通信系统中采用何种调制方式的理论依据,分析其选用的调相技术的优越性及不足。 3.1 研究和仿真的任务
对PSK、QPSK、OQPSK的调制解调原理深入的分析研究,用MATLAB编程对PSK、QPSK、OQPSK的各步骤波形的变化和实现过程具体演示出来,并对它们的性能差异进行比较。用Simulink演示PSK、QPSK、OQPSK的频谱和星座图。尝试用不同的方法得到PSK、QPSK、OQPSK这几种调制方式的已调信号。 3.2 研究和仿真的技术要求
要求能在对PSK、QPSK、OQPSK的调制解调的时候考虑不同性噪比的影响,在低性噪比的情况下要求保证误码率的合理性。 3.3 课题的主要工作流程 查阅资料 掌握原理
学习MATLAB MATLAB 仿真研究 Simulink 建 模 理论和实际相比较
4 研究和仿真的构思和理论
由于PSK的原理相对简单,实现方法也相对容易,所以本设计先从PSK入手,深入理解PSK的调制解调原理后,循序渐进,仿真QPSK和OQPSK的调制解调,研究它们的性能差异以及实际应用。
桂林电子科技大学毕业设计(论文)报告用纸 第 9 页 共30页
4.1 PSK信号的调制解调及其原理
PSK方式是受键控的载波相位按基带脉冲而改变的一种数字调制方式,PSK的信号形式一般表示为
e0(t)??[angt(?nTsn )]wccot s (4.1.1)
其中an的统计特性为+1和-1的概率分别为P和1-P,这就是说在其一码元持续时间TS内观察时,e0(t)为coswct和?coswct的概率分别为P和1-P。
其调制方框图如图4.1所示
载波 ~~ 。 。。 开关 得到PSK已调信号 移相 ? 基带 信号
图4.1 PSK的调制方框图
对于PSK信号的解调,可采用相干解调和差分相干解调,其解调方框图如图4.2所示
PSK已调信号 带通滤波 器 × 低通滤波 器 抽样判决 器 解调后信号 coswct(a)
抽样时钟 低通滤波 器 抽样判决 器 解调后信号 PSK已调信号 带通滤波 器 × 迟延 器Tb (b)
图4.2 PSK的解调框图
(a)相干解调;(b)差分相干解调
抽样时钟 从PSK的调制解调框图看,实现的原理并不是很困难,在深入体会它的原理之后,我便开始用MATLAB软件上机调试。虽然在开始调试之前,我已经初步了解了一些
桂林电子科技大学毕业设计(论文)报告用纸 第 10 页 共30页
MATLAB编程语言在通信系统仿真中的应用,但是面对第一个问题随机基带信号的产生时由于经验不足,还是遇到了两个困难:
(1) 用randint函数产生随机的基带信号时如果用randint(1e3, 1, [0 1])这句指令的话产
生的是随机的0,1信号,而在PSK调制中,我们希望基带信号是双极性的,也就是说希望能够产生随机的-1,+1信号。
(2) 产生的是离散的信号,如何把它以矩形波的形式画出来以便在调制解调中个步骤
做更好的波形对比变化。
刚刚开始上机调试遇到一些困难在所难免,经过我反复的调试和指导老师的指导,发现用如下的语句可以解决以上两个困难: bit_in = randint(1e3, 1, [0 1]); data_in=-2*bit_in+1;
data_in1=repmat(data_in',20,1);úta_in'为data_in的共轭转置 for i=1:1e4
data_in2(i)=data_in1(i); end;
t=0:0.1:1e3-0.1; f=0:0.1:1;
xrc=0.5+0.5*cos(pi*f);
data_in2_rc=conv(data_in2,xrc)/5.5;
在调制的过程中,我尝试用多种方法去实现PSK的调制。如下面的程序也能实现PSK调制,但是调制后的波形不是很理想。 n=1:8192;
m=1:128;x(n)=randint(1,8192,2);x=[x(n)]'; y(n)=zeros(1,8192);z(m)=zeros(1,128); for n=1:8192 for m=1:128 if n==64*m-63 z(m)=x(n); if m==ceil(n/64)
y([(64*m-63):(64*m)]')=z(m); end end end end n=1:8192;
桂林电子科技大学毕业设计(论文)报告用纸 第 11 页 共30页
rm2=y(n); x2=rm2;
x0=cos(n.*0.1*1.6); x1=cos(n.*0.1*1.6+pi); x=x1.*x2+x0.*~x2; figure(1)
subplot(2,1,1);plot(n,x2);title('基带信号'); axis([0,640,-0.2,1.2]);grid
subplot(2,1,2);plot(n,x);title('PSK已调信号'); axis([0,640,-1.2,1.2]);grid
运行后得到的波形如图4.3所示
图4.3 PSK波形
调制完成之后,开始考虑解调。在对比各种参考资料之后,按照解调框图,开始编写程序并调试,把整个调制解调过程连接起来,得到的波形如图4.4所示
图4.4 PSK调制解调波形图
完成了用MATLAB软件编程实现PSK的调制解调之后,我开始思考能不能用Simulink仿真模块来显示真个调制解调的过程。通过查阅资料,发现Simulink仿真模块中甚至可以动态的仿真调制解调的整个过程,对仿真和研究是非常有意义的,于是我开始上机尝试调试Simulink模块。和MATLAB软件编程一样,在Simulink仿真模块中同步也是非常重要的。PSK的Simulink同步显示模块如图4.5所示
桂林电子科技大学毕业设计(论文)报告用纸 第 12 页 共30页
图4.5 PSK调制解调的Simulink仿真模块
在整个程序的调试过程中,遇到了很多困难。编写的程序在运行时MATLAB软件报错是时常有的事情,最常见的报错是长度不匹配、步长不同步、和对一些指令和函数不理解导致使用出现错误。
刚开始面队出现的各种错误,自己有点心浮气噪,不耐心的去查阅资料,思考改正错误的方法,而是怀疑自己的编程思路是否正确,急于去寻找其他的编程方法,导致自己走了不少的弯路。幸好在我最迷茫的时候,我的毕设指导老师指出了我的错误做法,让我按照调制解调的原理和实现框图,一步一步的实现,在调试过程中,多画出一些图形,尝试改变参数或者改变语句对波形产生的影响。老师中肯的指导和批评使我茅塞顿开,我不再心浮气噪,而是耐心的思考MATLAB软件报错的地方,为什么会报错。我从图书借回了一本厚度达5厘米的关于MATLAB软件各种指令和函数的用法以及其实现功能的书,以后如果是函数和指令报错,我便耐心的查阅书中的详细的介绍,并耐心的研究书上所给出的具体例子。虽然有的时候解决一个错误甚至要花上一天以上的时间,但是在解决错误的时候自己的喜悦和成就感都是很强烈的,并且会对自己所做的工作充满了信心。
当然,如果一个问题解决不了,也绝不能老卡在一个问题出不去,这样不但浪费了宝贵的时间,而且自己的情绪也会受到影响。我采用的方法是到图书馆去查阅相关资料,如果导师有时间就积极和导师交流,会MATLAB软件的同学或和自己一样毕业设计做的是用MATLAB软件进行各种仿真研究的同学都会成为我的―导师‖。我发现这样是很有效率的,因为我发现和别人讨论时除了可以借鉴别人好的想法,还会使得自己的头脑也特别活跃,这样在讨论中也许一筹莫展的难题也许自己就能想到解决的办法。如果不是毕业设计,我也许真的不会发现原来图书馆的资源是那么的丰富并且实用。也许有的同学会问,大学四年最后要毕业了才真正发现图书馆的博大精深,会不会有点晚呢。我觉得不晚,人要是想改变自己什么时候都不晚,合理的利用图书馆不仅帮助我顺利的完成本次毕业设计,也使我养成了积极查阅资料的习惯,这必将会使我终生受益的。其实在我刚开始到图书馆时,遇到了很多同学都会遇到的问题,就是很多自己想要的书都已经被借出了。遇到这个问题后怎么解决呢?很多同学也许就算了,没有就不借了。这种