跳频通信系统的研究与仿真

更新时间:2024-05-16 09:14:01 阅读量: 综合文库 文档下载

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

*******************

实践教学

*******************

兰州理工大学

计算机与通信学院

2014年秋季学期

通信综合训练课程设计

题 目: 跳频通信系统的研究与仿真 专业班级: 姓 名:

学 号: 指导教师: 成 绩:

摘要

跳频通信系统是一种典型扩展频谱通信系统,它在军事通信、移动通信、计算机无线数据传输和无线局域网等领域有着十分广泛的应用,已成为当前短波保密通信的一个重要发展方向。

本文介绍了跳频通信系统的基本工作过程,从跳频系统的结构组成、工作原理、主要技术指标、跳频通信系统的解跳和解调等方面阐述了跳频通信基本原理,并对跳频通信系统的抗干扰技术及其性能进行了仿真研究和理论分析。本文从理论上分析了跳频通信系统的抗干扰性能,其组成部分包括信号生成部分、发送部分、接收部分、判决部分、跳频子系统模块五个部分,并以2FSK系统为例,给出了上述通信干扰样式下的误码率理论分析结果,并利用Matlab中的Simulink仿真系统实现跳频系统的仿真和分析,达到了预期的效果。 关键词:扩频通信、跳频通信、MATLAB Simulink仿真

一、Simulink简介

Simulink 是MATLAB软件的应用,是一个对动态系统进行建模、仿真和对仿

真结果进行分析的一个软件包,是在MATLAB中建立系统方框图和基于方框图的系统仿真环境。

Simulink将工程中通用的方框图设计方法与仿真系统建模统一起来,其采用的是基于时间流的链路级仿真方法。这种系统中,仿真结果可以实时的通过可视化模块,将输入输出数据显示出来,可以更加方便地对系统进行可视化建模,使系统设计、模型检验和仿真调试工作更为方便。经过多年的应用,Mathwork 公司开发出了很多工具箱,其中包括Simulink通信系统。此系统目前已成为科学研究和工程应用的软件工具包。

Simulink能够完成大部分系统的动态仿真,提供了大量的内置模块,用户只需要知道模块的参数配置、输入输出等少数外部接口即可,而不必去关心其内部实现方式。这些模块都是图形化的。整个Simulink的建模过程都是在图形用户界面上完成的,这样可以使得用户把更多的精力投入到系统模型的构建,而非语言的编程上。Simulink本身可以实现微分方程和差分方程的求解等复杂的数值计算问题,用户只需要根据问题类型及精度要求对求解器类型进行配置即可。通过对这些基本模块的调用,再将它们连接起来,就可以构成所需要的系统模型,从而进行系统仿真与分析。

二、跳频通信简介

2.1扩频通信系统概述

扩频通信系统是一种信息处理传输系统,这种系统是利用伪随机码对被传输信号进行频谱扩展,使之占有远远超过被传输信息所必需的最小带宽。在接收机中利用同一码对接收信号进行同步相关处理以解扩和恢复数据。由于扩频技术尤其是调频具有很多优点:很强的抗干扰能力;低截获概率性;可用于具有选址能力的随机选址多用户通信系统中;较高的距离分辨力等等,因此,它的理论和实践发展非常迅速。

扩频信号具有以下三个特性:

1、扩频信号是不可预测的伪随机的宽带信号; 2、扩频信号带宽远大于欲传输数据(信息)带宽; 3、接收机中必须有与宽带载波同步的副本。

扩频通信系统是最具有代表性的扩频通信技术的应用,它的基本工作方式有以下几种:

(1)直接序列扩频系统(DSSS)

直接序列扩频系统简称直接扩频(DSS)系统或直接序列(DS)系统。准确地说,这种系统应称为直接用编码序列对载波调制的系统。直接序列系统中用的编码序列通常是伪随机序列或伪噪声序列(PN码)。要传送的信息经数字化后变成二元数字序列,它和伪随机序列模二加(波形相乘),合成复合码去调制载波。在直接序列系统中通常对载波进行相移键控调制,为了节省发射功率和提高发射机的工作效率,扩频系统中采用平衡调制器,抑制载波的平衡调制对提高扩频信号的抗侦破能力也有利。当扩频信号采用相移键控调制后由天线发射出去,在接收机中要有一个和发射机中的伪随机码同步的本地码,对接收信号进行解扩(也叫做缩谱),解扩后的信号送到解调器取出传送的信息。

(2)频率跳变扩频系统(FHSS)

频率跳变扩频系统更确切地说应叫做“多频、码选、频移键控”系统。简单的频移键控通常只利用两个频率,例如用f1表示传号,f2表示空号。而频率跳变系统常常有成百上千甚至数万个频率可供选用,选用哪个频率由码决定。频率跳变系统主要由码发生器和频率合成器两部分组成,快速响应的频率合成器是频率跳变系统的关键部件。

(3)时间跳变系统(THSS)

在时间跳变扩频系统中,扩频码是用来控制发射机的通断的。对于m序列来说,由于0与1各占了约一半,时间跳变系统的发射占空比接近一半。

(4)混合扩频系统

上面的三种基本扩频系统各有优缺点,单独使用一种系统有时难以满足要求,将几种扩频方法结合起来就构成了混合扩频系统。常见的有频率跳变一直接序列混合系统、频率跳变一时间跳变系统、时间跳变一直接序列混合系统。

2.2跳频通信系统概述

扩频通信,即扩展频谱通信与光纤通信、卫星通信,一般被誉为进入信息时代的三大高技术通信传输方式,它是上世纪40年代发展起来的一种技术,用来为战争环境下的军队提供可靠安全的通信。20世纪50年代,美国麻省理工学院研究成功NO MAC系统,成为了扩频通信研究发展的开端。时至今日,随着民用、军用通信事业的发展,频带拥挤的矛盾日益突出。而信号处理技术、大规模集成电路和计算机技术的发展,推动了扩频通信理论、方法、技术等方面的研究发展和应用普及。

扩频通信主要有以下几种方式:直接序列扩频、跳频扩频和线性调频。 跳频就是用伪随机码序列构成跳频指令来控制频率合成器,可以看成载波频率不断变化的多频移频键控。跳频指令由所传递的信息码与伪随机序列模二相加构成,其发送频率由跳频指令随机选择。调制器将发送端的信息码序列与伪随机序列调制,频率的合成由不同的跳频图案控制。在接收端,接收到的信号与噪声经滤波后送至混频器。接收机本振信号的跳变规律与发送端相同,而且也是频率跳变信号,接收机的中频为两个合成器产生的对应的频率的频差。要使收发双方的跳频与频率合成器产生的跳变频率同步,需要收发方的伪随机码同步。经混频后,得到一个不变的中频信号,将此中频信号进行解调,就可恢复出发送的信息。

三、跳频通信系统的基本原理

3.1跳频通信系统的结构组成

跳频通信系统主要由发送端和接收端两大部分组成。

在发送端,用信源产生的信息流去调制频率合成器产生的载频,得到射频信号,频率合成器产生的载频受伪随机码的控制按一定规律跳变。

在接收端,接收端接收到的信号经高通滤波后送至混频器,在混频器与本振信号相乘并经中频带通滤波后,得到一个不变的中频信号,经中频放大器放大后,送到信息解调器恢复出原始信息信号。 3.1.1跳频系统的发送部分

发送端包括:信源、数据调制器、频率合成器、跳频序列发生器、高通滤波器、发送端天线等。其原理框图如图1所示:

信宿数据解调器高通滤波器频率合成器跳频序列发 生器 图1 跳频通信系统发送端原理框图 信源输出的是双极性二进制码,利用频率合成器合成载波信号。跳频系统通过伪随机地改变发送载波频率,用跳变的频率来调制基带信号,得到载波频率不断变化的射频信号,然后发送到信道中。

在传统的定频通信系统中,载波频率是固定的,因为发射机中的主振荡器的振荡频率是固定设置的。一般要求主振荡器的频率应能遵照控制指令而改变,这样是为了得到载波频率是跳变的跳频信号。这种产生跳频信号的装置叫跳频器。 通常,跳频系统的频率合成器输出什么频率的载波信号是受跳频指令控制的,跳频器是由频率合成器和跳频指令发生器构成的。在时钟的作用下,频率合成器不断地改变其输出载波的频率,跳频指令发生器不断地发出控制指令。因此混频器输出的已调波的载波频率,也将随着指令不断地跳变,从而经高通滤波器和天线

发送出去,这就是跳频信号。跳频图案,就是跳频器输出的跳变的频率序列。跳频图案的产生取决于跳频指令。

通常,跳频指令是利用伪随机发生器来产生的,或者由软件编程来产生此跳频指令。所以,跳频器是跳频系统的关键部件,更具体地说,是能产生伪随机性好的跳频指令发生器和频谱纯度好的快速切换的频率合成器。由跳频信号产生的过程可以看出,在原理上,不论是模拟的或数字的定频发送系统,只要加装上一个跳频器,就可变成一个跳频的发送系统。但是,信道机的通带宽度在实际系统中尚需考虑。 3.1.2跳频系统的接收部分 带通跳频序列发生器、数据带通滤波器、高通接收端部分包括:高通滤波器、频率合成器、信同步电路、数据解调器、信宿和接收端天线等。其原理框图如图2所示:宿 滤波器滤波器解调器高通滤波器频率合成器带通滤波跳频序列发器频率合成器跳频序列发生器数据解调器信宿生器同步电路

同步电路 图2 跳频系统接收端原理框图 定频信号的接收设备中,接收方法一般情况下都采用超外差式,即接收机本地振荡器的频率与所接收的外来信号的载波频率产生频差,即相差一个中频。经过混频后,混频产生组合波频率成分和一个固定的中频信号。中频带通滤波器的滤波作用,将滤除组合波频率成分,而使带通中频信号进入解调器。所要传送给收端的信息即为解调器的输出。

跳频信号的接收过程与定频相似。要求频率合成器的输出频率要比外来信号高出一个中频,是为了保证混频后获得带通中频信号。要求本地频率合成器输出的频率也随着外来信号的跳变规律而跳变,是因为外来的信号载波频率是跳变的,这样才能通过混频获得一个固定的带通中颇信号。跳频器产生的跳频图案应当与所要求的高出一个中频,并且收、发跳频要求完全同步。所以,为了确定其

跳频的起、止时刻,接收机中的跳频器还需受同步指令的控制。可以看出,跳频系统的关键部件是跳频器,同时跳频系统的核心技术是跳频同步。

相关器中进入的接收信号,与本地信号相乘,再经过滤波器,得到的信号送入同步系统进行判决。同步系统将调整本地伪码系统,直到滤波器输出接收信号为止。如果系统未同步,则滤波器输出的是噪声信号。

3.2跳频通信系统的性能指标

跳频通信系统的性能指标有以下几点: (1)跳频带宽

跳频带宽,是跳频系统工作时的最高频率与最低频率之间所占的频率宽度。跳频带宽越宽,跳频的速率越快,跳频的频率数目越多,跳频系统的同步时间越短,跳频码的周期越长,跳频系统性能越好。跳频部分频带的抗干扰能力,受跳频带宽大小的影响,跳频带宽越宽,跳频系统抗宽带干扰能力越强。

(2)跳频速率

跳频速率,即为跳频电台载波跳变的速率,通常用每秒钟频率跳变的次数来表示。抗跟踪式干扰的能力与它有关,跳频速率越高,抗跟踪式干扰的能力越强。

(3)跳频频率数

跳频频率数,就是跳频电台工作时跳变的载波频率点的数目。跳频的频率数目,取决于抗单频干扰及多频干扰的能力。跳变频率数目越多,抗疏状干扰、单频以及多频干扰的能力就越强。

(4)跳频系统的同步时间

跳频系统的同步时间,是系统使收发双方的跳频图案完全同步,并建立通信所需要的时间。同步建立时间越短越好、越隐蔽越好。

(5)跳频周期

跳频周期,即为每一跳占据的时间。它等于跳频驻留时间和信道切换时间之和,与跳频速率成倒数关系。其周期长度决定跳频图案延续时间的长度,这个指标与抗截获的能力有关。

3.3跳频通信系统的调制方式

跳频通信系统一般采用ASK、FSK等非相干解调的调制方式,特别以2FSK方式最为常用,本文跳频通信系统采用2FSK调制方式。

在二进制频移键控调制方式中,二进制数字信号“1”对应于载波频率f1,

“0”对应于载波频率f2。信息码元的宽度记为T,则2FSK调制信号的表达式如式(1)。

s(t)???Acos?1t,0?t?Td (1)

?Acos?2t,0?t?Td其产生原理图如图3所示:

振荡器f1门1d(t)倒相器+门2S(t)振荡器f2 图3 2FSK产生框图

时域波形如图4所示:

S(t) t 图4 2FSK信号波形 3.4 频率合成器

在跳频系统中,其核心部分就是跳频器,它的主要作用是产生受伪码控制的随机跳变的载波频率。对跳频器的主要要求有:

(1)要求输出信号的频谱要纯,输出频率有很好的稳定度和准确度; (2)频率转换速度要快,输出频率数要多; (3)要求跳频图案要多,频率跳变的随机性要强;

跳频器主要由频率合成器和伪码产生器组成。因此跳频器的关键是频率合成器。频率合成器,是给微波扫频信号提供一定分辨力的频率参考信号,并对微波信号输出频率进行逐点锁定,以得到高准确度和稳定度的扫频输出信号。频率合成器通常可分锁相环合成法、直接模拟合成法和直接数字合成法三类,广泛地应

用于仪器仪表、遥控遥测通信、雷达、电子对抗、导航以及广播电视等各个领域。

3.5伪随机序列

在跳频通信系统中,伪随机系列是用来控制频率合成器产生的频率随机地跳变,以进行通信和躲避干扰。其性能的好坏,直接影响到整个系统性能的好坏。目前常用的伪随机序列有:m序列、M序列、Gold码、R-S码。

m序列是最长线性移位寄存器序列,是伪随机序列中最重要的一种序列,也是其它序列的基础。这种序列容易生产,具有优良的自相关特性,其长度为2r-1,r为移位寄存器的级数。M序列是最长非线性移位寄存器序列,码长为2r,达到r级移位寄存器所能达到的最长周期,所以又称为全长序列。虽然M序列的长度比m序列多1,但M序列的相关性不如m序列,并且硬件产生时设备较复杂。

Gold码是基于m序列优选对产生的,是作为地址码的一种良好码型。 R-S码是一种特殊的纠错码,也是一种循环码,循环移位后可得到另一组R-S码,即R-S码中任何码字的循环位移还是在码集合中。

上述的几种序列除用硬件发生外,均可由软件编程产生。本设计采用伪随机序列发生器产生采样周期为0.5、周期为15个码元的m序列。

3.6跳频信号的解跳与解调

跳频信号的解跳与解调包括两个方面:首先是跳频信号的解跳,解跳后信号频率集中在窄带滤波器通带之内,接着是对解跳后的信号进行解调,得到发送的原始信息。在跳频系统中一般不采用相干解调器,因为在频率合成器中难以保证各个频率跳变信号之间的相干性。所以跳频系统中的解调器不用锁相环路,而采用包络检波器。 3.6.1跳频信号的解跳

跳频系统的接收机,应对发射信号进行相应的反变换。首先,为了完成解跳功能,将每个接收到的跳频信号切普变换到窄带滤波器的通带内。为了恢复发射端的原始信息流,需要再将已解跳的信号送到基带解调器。解跳乘法器及其后的带通滤波器,能否从接收信号中提取有用信号的能力,将影响跳频接收机的性能。双通道“传号-空号”跳频接收机的原理框图如图5所示:

输入

s1带通滤波器检测器信号合成器输出码发生器空号合成器0/1判决器 s2带通滤波器检测器S1(传号)

数据输出:

S2(空号)

图5 双通道传号/空号跳频接收机原理框图

在二进制的FH发射机里,数据的传输采用2FSK时,是用发射某个频率(切普)表示“传号”,而发射另一个频率表示“空号”来实现的。对于每一个信息比特,无论只发一个切普,还是发多个切普(每个切普都一定是两个频率中的一个),接收机应能判断两个频率中哪一个是有用信号。因此,接收机必须能够同时观测两个交替信道,或者先对一个取样,然后紧接着对另一个取样。 3.6.2跳频信号的解调

在跳频系统中,多采用非相干的包络检测器。典型的非相干跳频解调器如图6所示:

输入信号包络检波器积分清洗器抽样与保持电平比较器切普时钟触发器抽样与保持

图6 非相干跳频解调器

这个解调器适用于每比特信息多个频率切普的接收机,其中切普判决是根据顺序而来的每一对切普进行的。这个解调器设计成适合于“1”和“0”频道的顺序取样。也就是说,本地频率合成器把发射“1”所对应的频率插到接收机的积分清洗电路判决器中,而后紧跟着是一个与发射“0”对应的频率。每次交替都占用半个切普周期取样。

四、跳频通信系统仿真与性能分析

4.1跳频通信系统仿真模型的建立

基于Simulink 的跳频通信系统的仿真模型的建立,可以实时地观测到系统跳频前后信号的频谱变化,并且能够反映跳频通信系统的动态工作过程。还可以根据需要设计和研究相应的跳频仿真模型,实现现代通信的模拟仿真,为系统的设计和研究提供了强有力的研究平台,此系统以跳频通信为基础。仿真模型如图7所示:

Z-1200HZ信源白噪声信道误码调制数值显示波形显示2FSK调制跳频+300MHZ噪音解跳2FSK调制2FSK调制PN发生器序列格式转换D/A转换2FSK调制共轭交换B-FFT测试

图7 系统仿真模型

在跳频通信系统仿真模型中,信号的处理过程为:

1、由信源生成准备传送的有用信号。

2、由伪随机码序列控制2FSK调制部分,然后与有用信号进行相乘运算。伪随机码元控制2FSK部分的载波频率,在设计中使得载波的相位为零,进而可以实现信号的跳频通信。

3、将经过跳频调制的信号,在经过信道传输,叠加上信道噪声。 4、接收信号时,在接收端的相关器中进行相关处理,相关处理时要求发送端的随机码元与采用的伪随机码保持严格的同步。

5、相关器的输出结果利用计数器进行统计,然后完成比较、判决过程,恢复出原始的信号。

6、将恢复出的有用信号与其发送端的原始信号同时送入误码仪进行比较,计算出误码率。

计算导数积分最小步长时间计算输出计算导数4.2 S-函数的仿真流程 Simulink在仿真的特定阶段,控制模块完成特定的功能,同时反复调用模型文件中的每个模块,如更新离散状态值、计算状态导数和计算输出等等,为了中止仿真任务或者执行初始化,仿真的开始部分以及结束部分还需要调用一些附加定位零交点过程,完整流程图,如图在结束时执行所需的任务8所示: 初始化模块

计算下次抽样时间用于抽样时间可变模块 最大步长计算输出 最大步长计算离散状态 仿真 环

计算导数计算输出 计算导数 定位零交点 在结束时执行所需的任务

图8 仿真流程图

分最

小步

长时

间 对于仿真流程,先将模块初始化,再进入仿真环。在仿真环中,先计算出下次抽样时间用于可变模块的抽样时间,然后再计算最大步长输出、最大步长离散状态、导数及输出计算,在仿真环的最后进行零交点定位。其中,积分最小步长时间为导数、输出、再到导数的时间。最后结束程序,完成执行的任务。

4.3跳频通信系统的仿真框图

利用Matlab 中的Simulink 对跳频通信系统进行模型建立,跳频扩展频谱

通信系统的仿真框图如图9所示:

butter

DisplayRandomIntegerRandom IntegerGeneratorbutterSignalGenerator1ScopeAnalogFilter DesignSwitch1ProductProduct1butterSignalGenerator1SignalGenerator2butter1Band-LimitedWhite NoiseProduct3AnalogFilter Design1AnalogFilter Design3Constant1Product2AnalogFilter Design2ConstantSwitchSignalGenerator31zUnit DelayTx Error Rate CalculationRxError RateCalculationZero-OrderHoldScope1Bit to IntegerConverterUnbufferBit to IntegerConverter1BufferVCOBit to IntegerConverterBit to IntegerConverterVoltage-ControlledOscillatorScope2PN SequenceGeneratorPN SequenceGenerator 图9跳频通信系统的仿真结构框图

跳频通信系统,将其中的2FSK调制部分,2FSK解调部分,跳频子系统分别进行封装,封装之后的跳频通信系统的仿真结构框图如图10所示:

Display1zUnit Delay0Tx Error Rate CalculationRxError RateCalculationBit to IntegerConverterBit to IntegerConverterScope1Out1Scope1ConstantRandomIntegerRandom IntegerGeneratorIn1Out1In1Out12FSK调制ProductProduct12FSK解调Switch11Band-LimitedWhite NoiseConstant1跳频子系统 图10含有封装子系统的跳频通信系统的仿真结构框图

VCO 1

butter

11SwitchOut1SignalGeneratorbutterProduct2AnalogFilter Design2AnalogFilter Design1In1butterSignalGenerator2butter1Out1Zero-OrderHoldOut1Voltage-ControlledOscillatorScope2Bit to IntegerConverterUnbufferBit to IntegerConverter1Buffer

In1Product3AnalogFilter Design1SignalGenerator3AnalogFilter Design3PN SequenceGeneratorPN SequenceGeneratorSignalGenerator1(a) 2FSK调制子系统 (b) 2FSK解调子系统仿 (c) 跳频子系统仿真结构框图 仿真结构框图 真结构框图

图11 跳频通信系统的子系统仿真结构框图

其中,2FSK调制子系统、2FSK解调子系统、跳频子系统结构框图分别如

图11中的图(a)、图(b)、图(c)所示。

该跳频通信系统按功能可以划分为五个部分:信号生成部分、发送部分、跳频调制部分、接收部分和判决部分,各部分的详细结构和设计介绍如下:

(1)信号生成部分

信号生成部分是利用随机整数信号发生器来产生,该模块的参数设置是产生二进制随机序列信号,采样时间设为1,即1秒产生一个码元。它产生的是频率为1HZ的二进制随机信号。 (2)发送部分

由信源产生的二进制随机信号,先通过频率键控来产生一个2FSK信号(发送“1” 所用的载波频率为f1=1HZ;发送“0”所用的载波频率为f2=3HZ)。在进行跳频调制时,把跳频子系统模块产生的信号与产生的2FSK信号进行相乘(即跳频调制),产生的信号即为跳频调制信号,然后把跳频调制信号经过信道发送过去。信道是叠加有加性高斯白噪声的信道。 (3)接收部分

在接收端,用跳频子系统模块产生的跳频信号与经过信道后接收的跳频调制信号进行乘法运算,也就是对其进行解跳,将得到跳频解调信号,如仿真结构框图中的跳频解调信号所示。接着,对其进行2FSK相干解调,两个带通滤波器将分别滤出频率为f1及f2 的信号,输出信号分别与相应的相干载波相乘,然后提取出含有基带数字信息的低频信号,这一过程分别需要将其相应信号通过低通滤波器。

(4)判决部分

通过对上下两支路的低频信号进行比较作出判决,从而完成解调信号的判决。该判决部分由比较器、常数发生器以及误码率计算部分组成。比较器将门限值与码元的相关峰值进行比较,若相关峰大于门限则该码元判为“1”,其余的均判为“0”。设上支路信号为X1(t),下支路信号为X2(t)。当X1(t)大于X2(t)时,判为“1”;当X1(t)小于X2(t)时,则判为“0”。

误码率的计算过程是由一个误码仪来实现的。它将发送端的信息码元经过一定延迟后与接收端恢复出的码元进行比较,若两者不同则认为码元传输错误,最后将误码个数除以总的传输码元个数,即得到误码率。在图中的误码率计算部分,上面的输入信号是发送端的原始信息,下面的输入信号是接收端恢复出的信号,送入误码仪以后完成比较、统计和图形用户界面的生成功能。从误码率计算的显示模块可以看到该快跳频通信系统的误码率为0.05。

在统计系统的误码率时,门限值的设定很重要,设定不同的门限值,会得到不同的误码率。对于不同的系统,门限值的设定是不同的,在本设计中,门限值的取值为2。

(5)跳频子系统模块

跳频子系统的设计是这次设计的关键。快跳频通信是指频率的跳变速度大于信息传输速率的通信系统。在本次设计中,为了便于观察各点信号,特设信息的传输速率1bit/s,频率的跳变速度为2h/s。在跳频子系统中, 跳频信号的产生过程:PN Sepuence Generator产生采样周期为0.5,周期为15个码元的m序列。通过Buffer将单列的二进制序列编排为2列二进制数,通过Bit to Integer Converter后变为整数。通过初值设为2的Unbuffer及Zero-Order Hold(采样时间设为0.1)后,伪随机序列发生器产生的二进制序列变成了与之相应的整数,馈送到VCO的控制输入端。

4.4 仿真模型中示波器的仿真结果显示

跳频通信系统仿真模型,进行Simulink模型仿真后,各示波器的结果显示分别如图12、图13所示:

图12示波器Scope的仿真结果

由图12可知,信源发送信号为双极性二进制码,发送端的随机信号发生器所产生的二进制信号的信息速率为1bit/s,载波频率在伪码控制下不断随机跳变,产生跳频调制信号,发送信号经过调制后2FSK调制信号如图所示,相应的跳频解调信号也如示波器Scope所示,从图中还可知跳频调制信号和解调信号基本相似,存在一定的误码率。

(a)示波器Scope1的仿真结果 (b)示波器Scope2的方针结果

图13示波器Scope1和Scope2的仿真结果

图13中(a)图,将发送信号和接收信号的示波器显示进行了对比,可以看出,发送信号和接收信号的波形相同,恢复的信号基本正确,误码率为0.05。当然,由于系统中叠加有噪声,各种滤波器的设计存在一定的缺陷使得滤波特性不理想,以及仿真图中有些部件的参数设置存在误差等原因,在最终的判决恢复时,使得恢复序列存在一些误码。这也是这次快跳频通信系统仿真设计中需要进一步完善的地方。

图13中(b)图,示波器显示了m序列信号波形,即Simulink仿真模型中产生的跳频序列;同时显示了VCO的输入电压值和输出频率,简明易懂。由上图中(b)图可知,VCO的输入电压值在一秒内(也就是一个码元周期内)发生两次变化,对应的它所控制的VCO的输出频率在一秒内也发生两次变化(即频率的跳变速度为2h/s)。由于频率的跳变速度大于发送信号的信息速率,因而用这种跳变频率去调制、解调2FSK信号时,就实现了简单的快跳频通信。

4.5基于源代码的跳频通信系统仿真

跳频通信系统,可以利用源代码进行简单仿真,程序主要由以下几步构成:通过rand 函数,首先生成一个固定频率载波信号carrier和数据信号signal,然后将两者进行调制,此调制过程为2FSK调制。调制输出为2FSK modulated signal。然后,通过stitch 函数,将产生一个频率随机变化的跳频载波spread frequency signal,我们在这里仅选用了6种(我们认为,简单演示跳频的工作过程及效果,6种跳变的频率就可以满足需要)变化的频率,跳频载波在这6个频率中随机变化。最后,将spread frequency signal 与2FSK modulated signal 跳频调制,产生最终的跳频信号。

此跳频通信系统的信号在跳频调制前后的波形,利用matlab 仿真后如图14所示:

10-105001000150020002500300010-105001000150020002500 Frequency Hopped Spread Spectrum Signal3000 Original Bit Sequence10-1010-10500100015002000 Spread Signal with 6 frequencies2500300050010001500 2FSK Signal200025003000图14跳频扩频调制前后仿真波形

如图所示,随机产生的二进制序列Original bit sequence,作为待传输的数据信号,经过2FSK调制后,得到2FSK modulated signal,其中随机产生的调频信号 为spread signal with 6 frequencies ,信号共有六种频率,跳频调制后的输出信号是frequency hopped spread spectrumsignal,由图可见,对于此数据信号,频率成分增加,带宽被展宽,并且表现出随机性,因此对于接收方而言,如果不知道频率跳变的规律是无法解调出原数据信号的。

此跳频通信系统,利用matlab 仿真后,每一部分的具体仿真结果如图15所示:

21.510.50-0.5-1-1.5-2信息序列 2FSK调制后的频谱22FSK调制后经过高通滤波的波形60001.5500010.50-0.5400030002000-11000-1.5-20 0.20.40.60.811.2time (seconds)1.41.61.820102030 (a)信息序列 (b)2FSK调制后频谱 (c)2FSK调制后经过高通滤波的波形

405060frequency (Hz)70809010000.20.40.60.811.2time (seconds)1.41.61.82

附录

clc clear all

%------扩频通信过程----

%------只仿真一个频点的情况---- %------初始化------ Ts=0.00001; fs=1/Ts; EndTime=2-Ts; %2s

%-----产生信息序列(双极性不归零码)---- Tm=0.25; fm=1/Tm; %码率

[u,time] = gensig('square',2*Tm,EndTime,Ts); y = 2*(u-0.5); figure(1); plot(time,y); title('信息序列'); xlabel('time (seconds)'); axis([0 2 -2 2]); %------FSK调制------ T0=0.1; f0=1/T0; T1=0.2; f1=1/T1;

[u0,time]=gensig('sin',T0,EndTime,Ts); [u1,time]=gensig('sin',T1,EndTime,Ts); y0=u0.*sign(-y+1); y1=u1.*sign(y+1);

SignalFSK=y0+y1; % FSK信号 %-----FSK调制的频谱------ nfft=fs+1;

Y = fft(SignalFSK,nfft); PSignalFSK = Y.* conj(Y)/nfft; f = fs*(0:nfft/2)/nfft; figure(2);

plot(f,PSignalFSK(1:nfft/2+1)); title('FSK调制后的频谱'); xlabel('frequency (Hz)'); axis([0 100 -inf inf]); %----FSK调制后,低通滤波---- cof_low=fir1(64,25/fs);

SignalFSK_l=filter(cof_low,1,SignalFSK); figure(3);

plot(time,SignalFSK_l);

title('FSK调制后经过低通滤波的波形'); xlabel('time (seconds)'); axis([0 2 -2 2]);

YSignalFSK_l = fft(SignalFSK_l,nfft);

PSignalFSK_l = YSignalFSK_l.* conj(YSignalFSK_l)/nfft; f = fs*(0:nfft/2)/nfft; figure(4);

plot(f,PSignalFSK_l(1:nfft/2+1)); title('FSK调制后经过低通滤波的频谱'); xlabel('frequency (Hz)'); axis([0 100 -inf inf]); %-----混频-----

fc=1000;Tc=1/fc; %频点: 1000

[Carrier,time] = gensig('sin',Tc,EndTime,Ts); %产生扩频载波 MixSignal=SignalFSK_l.*Carrier; figure(6);

plot(time,MixSignal); title('混频后的波形'); xlabel('time (seconds)'); axis([0 2 -2 2]); %-----带通滤波-----

cof_band=fir1(64,[fc-12.5,fc+12.5]/fs);

yMixSignal=filter(cof_band,1,MixSignal); figure(7);

plot(time,yMixSignal);

title('经过带通滤波的混频信号'); xlabel('time (seconds)'); axis([0 2 -2 2]);

YMixSignal = fft(yMixSignal,nfft);

PMixSignal = YMixSignal.* conj(YMixSignal)/nfft; f = fs*(0:nfft/2)/nfft; figure(8);

plot(f,PMixSignal(1:nfft/2+1)); title('经过带通滤波的混频信号频谱'); xlabel('frequency (Hz)'); axis([800 1200 -inf inf]); %----传输信道----- Sign_send=yMixSignal; Sign_rec=Sign_send; %-----传输信道---- %-----接收端----- %-----解扩------- fc=1000;Tc=1/fc;

[Carrier,time]=gensig('sin',Tc,EndTime,Ts); %产生扩频载波 Sign_rec=Sign_send;

ySign_rec=Sign_rec.*Carrier; figure(9);

plot(time,ySign_rec); title('解扩后的信号'); xlabel('time (seconds)'); axis([0 2 -1 1]);

%----低通滤波,取下边频---- yrr=ySign_rec;

cof_low=fir1(64,25/fs);

Sign_rec_l=filter(cof_low,1,ySign_rec); figure(10);

plot(time,Sign_rec_l);

title('解扩后的下边频的信号'); xlabel('time (seconds)'); axis([0 2 -1 1]);

YSign_rec_l = fft(Sign_rec_l,nfft);

PSign_rec_l = YSign_rec_l.* conj(YSign_rec_l)/nfft; f = fs*(0:nfft/2)/nfft; figure(11);

plot(f,PSign_rec_l(1:nfft/2+1)); title('解扩后的下边频频谱'); xlabel('frequency (Hz)'); axis([0 100 -inf inf]); %-----FSK译码----

cof_f0=fir1(64,[f0-0.25,f0+0.25]/fs); cof_f1=fir1(64,[f1-0.25,f1+0.25]/fs); DeFSK0=filter(cof_f0,1,Sign_rec_l); DeFSK1=filter(cof_f1,1,Sign_rec_l); rDeFSK0=DeFSK0.*u0; rDeFSK1=DeFSK1.*u1; rDeFSK=rDeFSK0-rDeFSK1; figure(12); plot(time,rDeFSK);

title('采样判决前的信号'); xlabel('time (seconds)'); axis([0 2 -2 2]); %----采样判决---- Sampletime=0.25/Ts; Message=[];

Num=0;

while(Num<2/Ts)

if(mod(Num,Sampletime)==0) Message=[Message

ones(1,Sampletime+1)*sign(sum(rDeFSK((Num+1):(Num+Sampletime))))]; end

Num=Num+Sampletime; end figure(13);

plot((1:length(Message))/fs,Message); title('恢复的信息'); xlabel('time (seconds)'); axis([0 2 -2 2]);

%----产生8位m序列,控制频率合成器产生频率变化的高频载波----- clear all; clc;

%-------初始化------

MAXCLOCK=1000000; %步长是0.01ms PNSeq=[0 0 0 0 0 0 0 1]; PNSeq1=[0 0 0 1 0 0 1 1]; InitialPNSeq=PNSeq; InitialPNSeq1=PNSeq1; PNSeqNum=1; %第几次选择频率 SaveFrq=[]; SaveFrq1=[];

%------主仿真时钟----- CLOCK=0; %单位是 ms/100 step=5000; %每100表示1ms %-----产生M序列------ sim('SimCreatMSeq'); %------仿真开始------

while CLOCK < MAXCLOCK CLOCK=CLOCK+step; If mod(CLOCK,5000)==0 %------产生M序列------ % 5 ms跳一次频, 每秒200跳 %------选择频率-------

MixFrq=SelectFrq(PNSeq(PNSeqNum:PNSeqNum+7))/1000e3; MixFrq1=SelectFrq(PNSeq1(PNSeqNum:PNSeqNum+7))/1000e3; PNSeqNum=PNSeqNum+1; SaveFrq=[SaveFrq MixFrq]; SaveFrq1=[SaveFrq1 MixFrq1]; end end %结果画图 figure(1);

for i=1:length(SaveFrq) plot(i/200,SaveFrq(i)/10,'s'); plot(i/200,SaveFrq1(i)/10,'x'); hold on; end

title('跳频点的变化情况'); xlabel('time (seconds)'); ylabel('frequence (MHz)'); axis([0 1 89 90]);

%---根据m序列的8位状态,选择频率--- function Frq=SelectFrq(Code)

tempCode=128*Code(8)+64*Code(7)+32*Code(6)+16*Code(5)+8*Code(4)+4*Code(3)+2*Code(2)+Code(1); if(tempCode>200); tempCode=tempCode-128; end

MaxFrq=94*1e6; MinFrq=88*1e6;

Frq=(MaxFrq-MinFrq)/200*(tempCode-0)/2+MinFrq; %(MaxFrq-MinFrq)/200=30;

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

Top