基于MATLAB的二进制数字系统的调制(包括2ask,2fsk,2psk,2dpsk) -

更新时间:2024-03-26 10:01:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

桂林电子科技大学课程设计(论文)报告用纸 第 1 页 共 33 页

课程设计(论文)说明书

题 目: 二进制数字调制系统

的实现

院 (系): 信息与通信学院 专 业: 通信工程

桂林电子科技大学课程设计(论文)报告用纸 第 2 页 共 33 页

摘 要

MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和SIMULINK两大部分。

论文中介绍了《通信原理》课程中数字频带传输系统的工作原理,并用MATLAB软件编写M文件实现产生数字基带信号及对其进行四种方式的调制、解调的系统仿真。 关键词:数字频带传输系统;MATLAB软件;数字调制

桂林电子科技大学课程设计(论文)报告用纸 第 3 页 共 33 页

目 录

引言 …………………………………………………………………………………………1 1 MATLAB简介……………………………………………………………………………1 2 二进制数字调制系统的原理及实现………………………………………………2

2.1 二进制振幅键控…………………………………………………………………………2 2.1.1ASK调制原理……………………………………………………………………………2 2.1.2ASK解调原理……………………………………………………………………………3 2.1.3仿真结果及分析………………………………………………………………………4 2.2 二进制移频键控…………………………………………………………………………4 2.2.1FSK调制原理……………………………………………………………………………5 2.2.2FSK解调原理……………………………………………………………………………6 2.2.3仿真结果及分析………………………………………………………………………6 2.3 二进制相移键控…………………………………………………………………………8 2.3.1PSK调制原理……………………………………………………………………………8 2.3.2PSK解调原理……………………………………………………………………………9 2.3.3仿真结果及分析………………………………………………………………………9 2.4 二进制差分相移键控…………………………………………………………………10 2.4.1DPSK调制原理…………………………………………………………………………11 2.4.2DPSK解调原理…………………………………………………………………………11 2.4.3仿真结果及分析………………………………………………………………………12

3 心得体会………………………………………………………………………………13 谢辞 ………………………………………………………………………………………15 参考文献 …………………………………………………………………………………16 附录 ………………………………………………………………………………………17

桂林电子科技大学课程设计(论文)报告用纸 第 4 页 共 33 页

引言

通信就是克服距离上的障碍,从一地向另一地传递和交换消息。消息有模拟消息(如语音、图像等)以及数字消息(如数据、文字等)之分。所有消息必须在转换成电信号(通常简称为信号)后才能在通信系统中传输。相应的信号可分为模拟信号和数字信号,模拟信号的自变量可以是连续的或离散的,但幅度是连续的,如电话机、电视摄像机输出的信号就是模拟信号。数字信号的自变量可以是连续的或离散的,但幅度是离散的,如电船传机、计算机等各种数字终端设备输出的信号就是数字信号。

通信系统可分为数字通信系统和模拟通信系统。数字通信系统是利用数字信号来传递消息的通信系统。数字通信系统较模拟通信系统而言,具有抗干扰能力强、便于加密、易于实现集成化、便于与计算机连接等优点。因而,数字通信更能适应对通信技术的越来越高的要求。近二十年来,数字通信发展十分迅速,在整个通信领域中所占比重日益增长,在大多数通信系统中已代替模拟通信,成为当代通信系统的主流。

本文利用MATLAB软件来仿真二进制数字调制系统,包括2ASK,2FSK,2PSK,2DPSK调制、解调过程。

1 MATLAB简介

美国Mathworks公司于1967年推出了矩阵实验室“Matrix Laboratory”(缩写为Matlab)这就是Matlab最早的雏形。开发的最早的目的是帮助学校的老师和学生更好的授课和学习。Matlab是一种解释性执行语言,具有强大的计算、仿真、绘图等功能。Simulink是MATLAB中的一种可视化仿真工具,也是目前在动态系统的建模和仿真等方面应用最广泛的工具之一 。确切的说,Simulink是一个用来对动态系统进行建模、仿真和分析的软件包,它支持线性和非线性系统,连续、离散时间模型,或者是两者的混合。系统还可以使多种采样频率的系统,而且系统可以是多进程的。在Simulink环境中,它为用户提供了方框图进行建模的图形接口,采用这种结构画模型图就如同用手在纸上画模型一样自如、方便,故用户只需进行简单的点击和拖动就能完成建模,并可直接进行系统的仿真,快速的得到仿真结果。但是Simulink不能脱离MATLAB而独立工作。

Matlab将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,从而被广泛地应用于科学计算、控制系统、信息处理等领域的分析、仿真和设计工作,而且利用Matlab产品的开放式结构,可以非常容易地对Matlab的功能进行扩充,从而在不断深化对问题认识的同时,不断完善Matlab产品以提高产品自身的竞争能力。

利用M语言还开发了相应的Matlab专业工具箱函数供用户直接使用。这些工具箱应用的算法是开放的可扩展的,用户不仅可以查看其中的算法,还可以针对一些算法进行修改,甚至允许开发自己的算法扩充工具箱的功能。目前Matlab产品的工具箱有四十多个,分别涵盖了数据获取、科学计算、控制系统设计与分析、数字信号处理、数字图像处理、金融财务分析以及生物遗传工程等专业领域。

桂林电子科技大学课程设计(论文)报告用纸 第 5 页 共 33 页

2 二进制数字调制系统的原理及实现

数字通信系统, 按调制方式可以分为基带传输和带通传输。数字基带信号的功率一般处于从零开始到某一频率(如0~6M)低频段,因而在很多实际的通信(如无线信道)中就不能直接进行传输,需要借助载波调制进行频谱搬移,将数字基带信号变换成适合信道传输的数字频带信号进行传输,这种传输方式,称为数字信号的频带传输或调制传输、载波传输。所谓调制,是用基带信号对载波波形的某参量进行控制,使该参量随基带信号的规律变化从而携带消息。对数字信号进行调制可以便于信号的传输;实现信道复用;改变信号占据的带宽;改善系统的性能。

数字基带通信系统中四种基本的调制方式分别称为振幅键控(ASK,Amplitude-Shift keying)、移频键控( FSK,Frequency-Shift keying)、移相键控(PSK,Phase-Shift keying )和差分移相键(DPSK,Different Phase-Shift keying)。本次课程设计对这四种调制方式进行了仿真。 2.1 二进制振幅键控

本次设计采用的流程图如图2-1所示。

s(t)乘法器++乘法器低通滤波器抽样判决器 cos?ctn(t) cos?ct

图 2-1 2ASK调制解调框图

2.1.1 ASK调制原理

2ASK二进制振幅调制就是用二进制数字基带信号控制正弦载波的幅度,使载波振幅随着二进制数字基带信号而变化,而其频率和初始相位保持不变。信息比特是通过载波的幅度来传递的。其信号表达式为:e0(t)?S(t)?cos?ct,S(t)为单极性数字基带信号。由于调制信号只有0或1两个电平,相乘的结果相当于将载频或者关断,或者接通,它的实际意义是当调制的数字信号“1”时,传输载波;当调制的数字信号为“0”时,不传输载波。2ASK信号的时间波形e2ASK(t)随二进制基带信号S(t)通断变化。所以又被称为通断键控信号。典型波形如图2-2所示。

图 2-2 典型2ASK波形

桂林电子科技大学课程设计(论文)报告用纸 第 6 页 共 33 页

e2ASK(t)为已调信号,它的幅度受s(t)控制,也就是说它的幅度上携带有s(t)的信息。2ASK信号的产生方法通常有两种:模拟调制法(相乘器法)和键控法。模拟调制法就是用基带信号与载波相乘,进而把基带信号调制到载波上进行传输。键控法由s(t)来控制电路的开关进而进行调制。两种方法的调制如图2-3和图2-4所示。

图 2-3 模拟调制法(相乘器法)

图 2-4 键控法

2.1.2 ASK解调原理

2ASK有两种基本解调方法:相干解调法(同步检测法)和非相干解调法(包络检波法)。相干解调需要将载频位置的已调信号频谱重新搬回原始基带位置,因此用相乘器与载波相乘来实现。相乘后的信号只要滤除高频部分就可以了。为确保无失真还原信号,必须在接收端提供一个与调制载波严格同步的本地载波,这是整个解调过程能否顺利完好进行的关键。本次设计采用相干解调法。两种解调原理图如图2-5和图2-6所示。

图 2-5 相干解调法(同步检测法)

图 2-6 非相干解调法(包络检波法)

桂林电子科技大学课程设计(论文)报告用纸 第 7 页 共 33 页

2.1.3 仿真结果及分析

通过编写M文件程序(见附录),产生随机信号,按图2-1顺序对每一模块编程后。程序中注有需注意语句及解释。运行程序,实现2ASK的调制与解调过程。本次设计采用模拟调制法(相乘器法)和相干解调法。仿真后调制过程及解调过程的图形分别如图2-7和图2-8所示。

图 2-7 2ASK调制过程仿真图

图 2-8 2ASK解调过程仿真图

由图可以看出,产生的数字随机信号为“0100100001”,经载波调制后信号为“1”的时间内有正弦波形,信号为“0”的时间内无波形。经过加随机噪声,相干解调后,恢复出原始信号,与基带信号一致,因此达到本次设计目的。 2.2 二进制移频键控

本次设计所用流程图如图 2-9所示。 s(t)

图 2-9 2FSK调制解调框图

键控法FSK发生器低通滤波器抽样判决器乘法器 n(t) cos?ct桂林电子科技大学课程设计(论文)报告用纸 第 8 页 共 33 页

2.2.1 FSK调制原理

一个FSK信号可以看成是两个不同载波的2ASK信号的叠加。其解调和解调方法和FSK差不多。2FSK信号的频谱可以看成是f1和f2的两个2ASK频谱的组合。

频移键控是利用载波的频率来传递数字信号,在2FSK中,载波的频率随着二进制基带信号在f1和f2两个频率点间变化,频移键控是利用载波的频移变化来传递数字信息的。在2FSK中,载波的频率随基带信号在f1和f2两个频率点间变化。故其表达式为:

?Acos(?1t??n) e2FSK(t)???Acos(?2t??n)典型波形如图 2-10所示。

cos(w1t+θn)tak s1(t)1011001t s2(t) t

cos(w2t+φn) t

s1(t) cos(w1t+θn)t

图 2-10 2FSK典型波形图

2FSK的调制方式有两种,即模拟调频法和键控法。本次设计采用键控法。键控法中可以用二进制“1”来对应于载频f1,而“0”用来对应于另一频率f2,而这个可以用受矩形脉冲序列控制的开关电路对两个不同的独立的频率源f1、f2进行选择通。键控法原理图如图2-11示

s2(t) cos(w2t+φn)t2FSK信号t载波 f12FSK输出信号载波 f2二进制数据2FSK的调制原理图图 2-11 2FSK键控法原理图

桂林电子科技大学课程设计(论文)报告用纸 第 9 页 共 33 页

2.2.2 FSK解调原理

2FSK的解调方式有两种:相干解调方式和非相干解调方式。

非相干解调是经过调制后的2FSK数字信号通过两个频率不同的带通滤波器f1、f2滤出不需要的信号,然后再将这两种经过滤波的信号分别通过包络检波器检波,最后将两种信号同时输入到抽样判决器同时外加抽样脉冲,最后解调出来的信号就是调制前的输入信号。其原理图如图2-12所示。

带通滤波器 F1输入包络检波器抽样脉冲抽样判决器输出带通滤波器 F2包络检波器非相干方式原理图图 2-12 2FSK非相干解调原理图

相干解调是根据已调信号由两个载波f1、f2调制而成,则先用两个分别对f1、f2带通的滤波器对已调信号进行滤波,然后再分别将滤波后的信号与相应的载波f1、f2相乘进行相干解调,再分别低通滤波、用抽样信号进行抽样判决器即可。原理图如图3-14所示。

2.2.3 仿真结果及分析

通过编写M文件程序(见附录),产生随机信号,按流程图2.2.1顺序对每一模块编程后。程序中注有需注意语句及解释。运行程序,实现2FSK的调制与解调过程。本次设计中采用键控法调制法和相干解调法。

仿真后调制过程及解调过程的图形分别如图2-14、图2-15和图2-16所示。 由图可以看出,产生的随机信号为“1011001001”,经过反相产生反码,并分别与两个载波相乘,经过加入随机噪声后波形如图2-15所示。在解调时,分别与对应的载波

cos2π f2tcos2π f1t带通滤波器 F1输入相乘器抽样脉冲低通滤波器抽样判决器低通滤波器输出带通滤波器 F2相乘器干方式原理图图 2-13 相2FSK相干解调原理图

桂林电子科技大学课程设计(论文)报告用纸 第 10 页 共 33 页

相乘。解调出基带信号,可以看出实现了本次设计目的。

图 2-14 2FSK键控法调制过程仿真图

图 2-15 2FSK键控法调制过程仿真图

图 2-16 2FSK相干解调过程仿真图

桂林电子科技大学课程设计(论文)报告用纸 第 11 页 共 33 页

2.3 二进制相移键控

本次设计所用流程图如图2-17所示。

s(t)乘法器++乘法器低通滤波器抽样判决器 cos?ctn(t) cos?ct

图 2-17 2PSK调制解调框图

2.3.1 PSK调制原理

在二进制数字调制中,当正弦载波的相位随二进制数字基带信号离散变化时,则产生二进制移相键控(2PSK)信号。2PSK信号调制有两种方法,即模拟调制法和键控法。通常用已调信号载波的 0°和 180°分别表示二进制数字基带信号的 1 和 0,模拟调制法用两个反相的载波信号进行调制。2PSK以载波的相位变化作为参考基准的,当基带信号为0时相位相对于初始相位为0°,当基带信号为1时相对于初始相位为180°。

键控法,是用载波的相位来携带二进制信息的调制方式。通常用0°和180°来分别代表0和1。其时域表达式为:

??e2PSK???ang(t?nTs)?cos?ct

?n?其中,2PSK的调制中an必须为双极性码。本次设计中采用模拟调制法。两种方法原理图分别如图2-18和图2-19所示。

图 2-18 模拟调制法原理图

图 2-19 键控法原理图

桂林电子科技大学课程设计(论文)报告用纸 第 12 页 共 33 页

2.3.2 PSK解调原理

由于2PSK的幅度是恒定的,必须进行相干解调。经过带通滤波的信号在相乘器中与本地载波相乘,然后用低通滤波器滤除高频分量,在进行抽样判决。判决器是按极性来判决的。即正抽样值判为1,负抽样值判为0。2PSK信号的相干解调原理图如图2-20所示,各点的波形如图2-21所示。

由于2PSK信号的载波回复过程中存在着180°的相位模糊,即恢复的本地载波与所需相干载波可能相同,也可能相反,这种相位关系的不确定性将会造成解调出的数字基带信号与发送的基带信号正好相反,即“1”变成“0”吗“0”变成“1”,判决器输出数字信号全部出错。这种现象称为2PSK方式的“倒π”现象或“反相工作”。但在本次仿真中是直接给其同频同相的载波信号,所以不存在此问题。

带通滤波器ae2PSK(t)相乘器c低通滤波器d抽样判决器定时脉冲e输出

cos?ctb图 2-20 2PSK的相干解调原理图

a10011

tTsbtctdte10011t图 2-21 相干解调中各点波形图

2.3.3 仿真结果及分析

通过编写M文件程序(见附录),产生随机信号,按流程图2-17所示顺序对每一模块编程后。程序中注有需注意语句及解释。运行程序,实现2PSK的调制与解调过程。本次设计采用模拟调制法和相干解调法。仿真后调制过程及解调过程的图形分别如图2-22和图2-23示。

桂林电子科技大学课程设计(论文)报告用纸 第 13 页 共 33 页

图 2-22 2PSK模拟调制方法过程仿真图

图 2-23 2PSK相干解调过程仿真图

由图可以看出,产生的随机信号为“0011001100”,经过反相产生反码,并将原码跟反码一起合成双极性码,与载波相乘后加入随机噪声。在解调时,与对应的载波相乘经过低通滤波、抽样判决后,解调出基带信号与原基带信号一致,可以看出实现了本次设计目的。

2.4 二进制差分相移键控

本次设计所用流程图如图2-24所示。

s(t)绝相变换乘法器++乘法器低通滤波器抽样判决器 cos?ctn(t) cos?ct

图2-24 2DPSK调制解调框图

桂林电子科技大学课程设计(论文)报告用纸 第 14 页 共 33 页

2.4.1 DPSK调制原理

二进制差分相移键控。2DPSK方式是用前后相邻码元的载波相对相位变化来表示数字信息。假设前后相邻码元的载波相位差为??,可定义一种数字信息与??之间的关系为:

?0(数字信息“0”) ?????(数字信息“1?)??为前一码元的相位。

实现二进制差分相移键控的最常用的方法是:先对二进制数字基带信号进行差分编码,然后对变换出的差分码进行绝对调相即可。2DPSK调制原理图如图2-25所示。

图 2-25 2DPSK调制原理框图

2.4.2 DPSK解调原理

2DPSK信号解调有相干解调方式和差分相干解调。用差分相干解调这种方法解调时不需要恢复本地载波,只要将DPSK信号精确地延迟一个码元时间间隔,然后与DPSK信号相乘,相乘的结果就反映了前后码元的相对相位关系,经低通滤波后直接抽样判决即可恢复出原始的数字信息,而不需要在进行差分解码。

相干解调码变换法及相干解调法的解调原理是,先对2DPSK信号进行相干解调,恢复出相对码,再通过码反变换器变换为绝对码,从而恢复出发送的二进制数字信息。

在解调过程中,若相干载波产生180?相位模糊,解调出的相对码将产生倒置现象,但是经过码反变换器后,输出的绝对码不会发生任何倒置现象,从而解决了载波相位模糊的问题。本次设计采用相干解调。两种解调方式的原理图如图2-26和图2-27所示。 2DPSK相干解调各点波形图如图 2-28所示。

图 2-26 2DPSK差分相干解调原理图

桂林电子科技大学课程设计(论文)报告用纸 第 15 页 共 33 页

图 2-27 2DPSK相干解调原理图

图 2-28 2DPSK相干解调各点波形图

2.4.3 仿真结果及分析

通过编写M文件程序(见附录),产生随机信号,按流程图2-24所示顺序对每一模块编程后。程序中注有需注意语句及解释。本次设计采用相干解调法。运行程序,实现2DPSK的调制与解调过程。仿真后调制过程及解调过程的图形分别如图2-29、图2-30和图2-31所示。由图可以看出,产生的绝对随机码为“0100111010”,经码差分变化产生相对码,经反相产生相对码反码,分别与两个载波相乘后加入随机噪声。在解调时,分别与对应的载波相乘经过低通滤波、抽样判决后,解调出基带信号与原基带信号一致,可以看出实现了本次设计目的。

图 2-29 2DPSK调制过程仿真图

桂林电子科技大学课程设计(论文)报告用纸 第 16 页 共 33 页

图 2-30 2DPSK调制过程仿真图

图 2-31 2DPSK相干解调过程仿真图

3 心得体会

通过在本次设计中的实践明白了自己知识上的误区,例如,在低通滤波的过程中,主要目的是滤去高频分量,滤去载波成分,所以对于低通滤波器的截止频率的设置较为关键。而在2PSK的调制与解调中所用信号为双极性的信号,因此要将在本次设计中产生的单极性信号经过码的变化形成双极性码来传输。本次设计只是按理论上的知识结构进行简单地系统构建,目的是明确数字基带传输的原理及过程,而对于具体问题,例如,实际中信道噪声一般为高斯白噪声,本次设计为简便并未采用而是用rand函数产生了随机噪声信号。此外,还有在2PSK实际传输系统中,在恢复载波的过程中会出现“倒π现象”即相位模糊现象,但是在本次设计中直接在解调时给其同频同相的载波,所以不会出现此种现象,因为不必考虑。

这是自己第一次利用Matlab编程功能实现通信原理中基础知识系统地构建,以前

桂林电子科技大学课程设计(论文)报告用纸 第 17 页 共 33 页

都是利用Matlab中Simulink模块搭建系统来实现,通过自己亲自去动手和调试我明白了实践的重要性,尤其是对程序的调试,更需要大量的时间反复上机运行,发现错误并改正,这样也就加强了自己对程序分析的能力,更深刻地明白了通信原理中的知识内容,更进一步懂得了理论联系实际的含义,同时提高了自己的思考能力,使得自己对课本里的内容理解、记忆地更加透彻,这无论是在我以后的工作中或是学习中都是非常有用的。

桂林电子科技大学课程设计(论文)报告用纸 第 18 页 共 33 页

谢 辞

首先,要感谢我的课设老师陈冬梅老师,是她给了我一次接触Matlab编程的机会,使得我的知识面扩展许多。再次,我要感谢本班同学在学习上给予我的支持与帮助。在我编程过程中,最大的问题是随机信号的产生,为此,询问我班同学,他们积极帮助我寻找网络及课本资源,终于找到用rand函数及round函数产生随机码的方法。由于我们知识平台的限制,可能还有更好的方法。另外,在我的程序调试的过程中,即便是小问题他们也热情地帮助我,不厌其烦地帮助我修改程序。

最后,我要感谢所有在我成长的道路上及完成课程设计过程中,关心、支持、帮助过我的人们,我所取得的每一点成绩都与你们的努力联系在一起,再一次向你们每个人表示由衷感谢。

桂林电子科技大学课程设计(论文)报告用纸 第 19 页 共 33 页

参考文献

[1] 李白萍,吴冬梅.通信原理与技术[M].北京:人民邮电出版社,2003(8):99~136. [2] 樊昌信,曹丽娜.通信原理[M].北京:国防工业出版社,2001(5):132~212. [3] 曹志刚,钱亚生.现代通信原理[M].北京:清华大学出版社,1992(2):80~120.

[4] 李明明,李白萍.电子信息类专业MATLAB实验教程[M].北京:北京大学出版社,2011(1): 102~208.

[5] 刘学勇.详解MATLAB/Simulink通信系统建模与仿真[M].北京:电子工业出版社,2011(1):

160~173.

桂林电子科技大学课程设计(论文)报告用纸 第 20 页 共 33 页

附 录

2ASK调制解调程序及注释 clear all close all i=10;个码元 j=5000;

t=linspace(0,5,j);%0-5之间产生5000个点行矢量,即分成5000份 fc=10;%载波频率 fm=i/5;%码元速率

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%产生基带信号 x=(rand(1,i))%rand函数产生在0-1之间随机数,共1-10个 figure(2) plot(x)

a=round(x);%随机序列,round取最接近小数的整数 figure(3)

stem(a)%火柴梗状图 st=t; for n=1:10 if a(n)<1;

for m=j/i*(n-1)+1:j/i*n st(m)=0; end else

for m=j/i*(n-1)+1:j/i*n st(m)=1; end end end figure(1); subplot(421); plot(t,st); axis([0,5,-1,2]); title('基带信号st');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%载波 s1=cos(2*pi*fc*t);

桂林电子科技大学课程设计(论文)报告用纸 第 21 页 共 33 页

subplot(422); plot(s1);

title('载波信号s1');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%调制 e_2ask=st.*s1; subplot(423); plot(t,e_2ask); title('已调信号'); noise =rand(1,j);

e_2ask=e_2ask+noise;%加入噪声 subplot(424); plot(t,e_2ask);

title('加入噪声的信号');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%相干解调 at=e_2ask.*cos(2*pi*fc*t);

at=at-mean(at);%因为是单极性波形,还有直流分量,应去掉 subplot(425); plot(t,at);

title('与载波相乘后信号'); [f,af] = T2F(t,at);%通过低通滤波器 [t,at] = lpf(f,af,2*fm); subplot(426); plot(t,at);

title('相干解调后波形');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%抽样判决 for m=0:i-1;

if at(1,m*500+250)+0.5<0.5; for j=m*500+1:(m+1)*500; at(1,j)=0; end else

for j=m*500+1:(m+1)*500; at(1,j)=1; end end

桂林电子科技大学课程设计(论文)报告用纸 第 22 页 共 33 页

end subplot(427); plot(t,at); axis([0,5,-1,2]); title('抽样判决后波形')

2FSK调制解调程序及注释 clear all close all

i=10;%基带信号码元数 j=5000;

a=round(rand(1,i));%产生随机序列 t=linspace(0,5,j); f1=10;%载波1频率 f2=5;%载波2频率 fm=i/5;%基带信号频率

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%产生基带信号 st1=t; for n=1:10 if a(n)<1;

for m=j/i*(n-1)+1:j/i*n st1(m)=0; end else

for m=j/i*(n-1)+1:j/i*n st1(m)=1; end end end st2=t;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%基带信号求反 for n=1:j; if st1(n)>=1; st2(n)=0; else

st2(n)=1;

桂林电子科技大学课程设计(论文)报告用纸 第 23 页 共 33 页

end end; figure(1); subplot(411); plot(t,st1);

title('基带信号st1'); axis([0,5,-1,2]); subplot(412); plot(t,st2);

title('基带信号反码st2'); axis([0,5,-1,2]);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%载波信号 s1=cos(2*pi*f1*t) s2=cos(2*pi*f2*t) subplot(413),plot(s1); title('载波信号s1'); subplot(414),plot(s2); title('载波信号s2');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%调制 F1=st1.*s1;%加入载波1 F2=st2.*s2;%加入载波2 figure(2); subplot(411); plot(t,F1); title('F1=s1*st1'); subplot(412); plot(t,F2); title('F2=s2*st2'); e_fsk=F1+F2; subplot(413); plot(t,e_fsk);

title('2FSK信号')%键控法产生的信号在相邻码元之间相位不一定连续 nosie=rand(1,j); fsk=e_fsk+nosie; subplot(414);

桂林电子科技大学课程设计(论文)报告用纸 第 24 页 共 33 页

plot(t,fsk);

title('加噪声后信号')

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%相干解调 st1=fsk.*s1;%与载波1相乘

[f,sf1] = T2F(t,st1);%通过低通滤波器 [t,st1] = lpf(f,sf1,2*fm); figure(3); subplot(311); plot(t,st1);

title('与s1相乘后波形'); st2=fsk.*s2;%与载波2相乘

[f,sf2] = T2F(t,st2);%通过低通滤波器 [t,st2] = lpf(f,sf2,2*fm); subplot(312); plot(t,st2);

title('与s2相乘后波形');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%抽样判决 for m=0:i-1;

if st1(1,m*500+250)

for j=m*500+1:(m+1)*500; at(1,j)=1; end end end; subplot(313); plot(t,at); axis([0,5,-1,2]); title('抽样判决后波形')

2PSK调制解调程序及注释 clear all close all

桂林电子科技大学课程设计(论文)报告用纸 第 25 页 共 33 页

i=10; j=5000; fc=4;%载波频率 fm=i/5;%码元速率 B=2*fm; t=linspace(0,5,j);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%产生基带信号 a=round(rand(1,i));%随机序列,基带信号 figure(3); stem(a); st1=t; for n=1:10 if a(n)<1;

for m=j/i*(n-1)+1:j/i*n st1(m)=0; end else

for m=j/i*(n-1)+1:j/i*n st1(m)=1; end end end figure(1); subplot(411); plot(t,st1);

title('基带信号st1'); axis([0,5,-1,2]);

%%%%%%%%%%%&&&&&&%%%%%%%%%%%%%%%%%基带信号求反

%由于PSK中的是双极性信号,因此对上面所求单极性信号取反来与之一起构成双极性码 st2=t; for k=1:j; if st1(k)>=1; st2(k)=0; else

st2(k)=1;

桂林电子科技大学课程设计(论文)报告用纸 第 26 页 共 33 页

end end; subplot(412); plot(t,st2);

title('基带信号反码st2'); axis([0,5,-1,2]); st3=st1-st2; subplot(413); plot(t,st3);

title('双极性基带信号st3'); axis([0,5,-2,2]);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%载波信号 s1=sin(2*pi*fc*t); subplot(414); plot(s1);

title('载波信号s1');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%调制 e_psk=st3.*s1; figure(2); subplot(511); plot(t,e_psk); title('e_2psk'); noise=rand(1,j);

psk=e_psk+noise;%加入噪声 subplot(512); plot(t,psk); title('加噪后波形');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%相干解调 psk=psk.*s1;%与载波相乘 subplot(513); plot(t,psk);

title('与载波s1相乘后波形');

[f,af] = T2F(t,psk);%%%%%%%%%%%通过低通滤波器 [t,psk] = lpf(f,af,B); subplot(514);

桂林电子科技大学课程设计(论文)报告用纸 第 27 页 共 33 页

plot(t,psk);

title('低通滤波后波形');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%抽样判决 for m=0:i-1;

if psk(1,m*500+250)<0; for j=m*500+1:(m+1)*500; psk(1,j)=0; end else

for j=m*500+1:(m+1)*500; psk(1,j)=1; end end end subplot(515); plot(t,psk); axis([0,5,-1,2]); title('抽样判决后波形')

2DPSK调制解调程序及注释 clear all close all i=10; j=5000; fc=4;%载波频率 fm=i/5;%码元速率 B=2*fm; t=linspace(0,5,j);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%产生基带信号 a=round(rand(1,i)); figure(4); stem(a); st1=t; for n=1:10 if a(n)<1;

for m=j/i*(n-1)+1:j/i*n

桂林电子科技大学课程设计(论文)报告用纸 第 28 页 共 33 页

st1(m)=0; end else

for m=j/i*(n-1)+1:j/i*n st1(m)=1; end end end figure(1); subplot(321); plot(t,st1); title('绝对码'); axis([0,5,-1,2]);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%差分变换 b=zeros(1,i);%%%%%%%%全零矩阵 b(1)=a(1); for n=2:10 if a(n)>=1; if b(n-1)>=1 b(n)=0; else b(n)=1; end else

b(n)=b(n-1); end end st1=t; for n=1:10 if b(n)<1;

for m=j/i*(n-1)+1:j/i*n st1(m)=0; end else

for m=j/i*(n-1)+1:j/i*n

桂林电子科技大学课程设计(论文)报告用纸 第 29 页 共 33 页

st1(m)=1; end end end subplot(323); plot(t,st1); title('相对码st1'); axis([0,5,-1,2]); st2=t; for k=1:j; if st1(k)>=1; st2(k)=0; else

st2(k)=1; end end; subplot(324); plot(t,st2);

title('相对码反码st2'); axis([0,5,-1,2]);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%载波信号 s1=sin(2*pi*fc*t); subplot(325); plot(s1);

title('载波信号s1'); s2=sin(2*pi*fc*t+pi); subplot(326); plot(s2);

title('载波信号s2');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%信号调制 d1=st1.*s1; d2=st2.*s2; figure(2); subplot(411); plot(t,d1);

桂林电子科技大学课程设计(论文)报告用纸 第 30 页 共 33 页

title('st1*s1'); subplot(412); plot(t,d2); title('st2*s2'); e_dpsk=d1+d2; subplot(413); plot(t,e_dpsk); title('调制后波形'); noise=rand(1,j);

dpsk=e_dpsk+noise;%%%%%%%%%%加入噪声 subplot(414); plot(t,dpsk); title('加噪声后信号');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%相干解调 dpsk=dpsk.*s1;%%%%与载波s1相乘 figure(3); subplot(411); plot(t,dpsk);

title('与载波相乘后波形');

[f,af]=T2F(t,dpsk);%%%%通过低通滤波器 [t,dpsk]=lpf(f,af,B); subplot(412); plot(t,dpsk);

title('低通滤波后波形');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%抽样判决 st=zeros(1,i);%%全零矩阵 for m=0:i-1;

if dpsk(1,m*500+250)<0; st(m+1)=0;

for j=m*500+1:(m+1)*500; dpsk(1,j)=0; end else

for j=m*500+1:(m+1)*500; st(m+1)=1;

桂林电子科技大学课程设计(论文)报告用纸 第 31 页 共 33 页

dpsk(1,j)=1; end end end subplot(413); plot(t,dpsk); axis([0,5,-1,2]); title('抽样判决后波形')

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%码反变换 dt=zeros(1,i);%%全零矩阵 dt(1)=st(1); for n=2:10;

if (st(n)-st(n-1))<=0&&(st(n)-st(n-1))>-1; dt(n)=0; else dt(n)=1; end end st=t; for n=1:10 if dt(n)<1;

for m=j/i*(n-1)+1:j/i*n st(m)=0; end else

for m=j/i*(n-1)+1:j/i*n st(m)=1; end end end subplot(414); plot(t,st); axis([0,5,-1,2]); title('码反变换后波形');

用到的傅立叶T2F函数

桂林电子科技大学课程设计(论文)报告用纸 第 32 页 共 33 页

%利用FFT计算信号的频谱并与信号的真实频谱的抽样比较。 %脚本文件T2F.m定义了函数T2F,计算信号的傅立叶变换。 function [f,sf]= T2F(t,st)

%This is a function using the FFT function to calculate a signal's Fourier %Translation

%Input is the time and the signal vectors,the length of time must greater %than 2

%Output is the frequency and the signal spectrum dt = t(2)-t(1); T=t(end); df = 1/T; N = length(st);

f=-N/2*df:df:N/2*df-df; sf = fft(st); sf = T/N*fftshift(s);

用到的低通滤波器函数 function [t,st]=lpf(f,sf,B)

%This function filter an input data using a lowpass filter %Inputs: f: frequency samples % sf: input data spectrum samples

% B: lowpass's bandwidth with a rectangle lowpass %Outputs: t: time samples % st: output data's time samples df = f(2)-f(1); T = 1/df;

hf = zeros(1,length(f));%全零矩阵

bf = [-floor( B/df ): floor( B/df )] + floor( length(f)/2 ); hf(bf)=1; yf=hf.*sf; [t,st]=F2T(f,yf); st = real(st);

用到的反傅立叶函数

%脚本文件F2T.m定义了函数F2T,计算信号的反傅立叶变换。 function [t,st]=F2T(f,sf)

%This function calculate the time signal using ifft function for the input

桂林电子科技大学课程设计(论文)报告用纸 第 33 页 共 33 页

%signal's spectrum df = f(2)-f(1);

Fmx = ( f(end)-f(1) +df); dt = 1/Fmx; N = length(sf); T = dt*N; %t=-T/2:dt:T/2-dt; t = 0:dt:T-dt; sff = fftshift(sf); st = Fmx*ifft(sff);

本文来源:https://www.bwwdw.com/article/43yr.html

Top