基于simulink调制解调器设计

更新时间:2024-01-20 19:30:01 阅读量: 教育文库 文档下载

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

基于simulink设计QPSK调制解调器

摘 要

本文介绍了一种基于simulink设计的QPSK调制解调器,现代通信系统要求通信距离远、通信容量大、传输质量好。作为其关键技术之一的调制解调技术一直是人们研究的一个重要方向。从模拟调制到数字调制,从二进制发展到多进制调制,虽然调制的方式多种多样,但都是朝着使通信系统更高速、更可靠的方向发展。一个系统的通信质量,很大程度上依赖于所采用的调制方式。在数字通信中,常采用频移键控(FSK)和相移键控(PSK)这两种方法对数字信号进行调制解调,从而达到传递数字信息的目的。

目前,相移键控(PSK)一般采用四相和多相制。相移键控(PSK)是一个数字调制方案,传递数据,改变或者调制阶段的载波信号。所有的数字调制方案利用有限的许多独特的信号来代表数字数据。用PSK有限数目的阶段,每个阶段分配一个唯一的二进制数字模式。一般情况下,各相位编码的比特数相等。每一个模式的位元符号的形式是特定的阶段。这种解调器,其目的是特别为使用的symbol-set调制器,决定阶段的接收信号和返回的符号,它也就代表了调制解调的输出数据,从而恢复到原始数据。这就要求接收器能够比较接收信号的参考信号——这样一个系统被称为相干(或被称为CPSK)。本文就四相制移相键控(QPSK)技术的概念,应用和原理方面进行了详细介绍。并且对QPSK 进行了系统仿真和实现方面也做了详尽的阐述。

摘要300字左右,请按群共享中的提示修改中英文摘要 关键词:相移键控;四相移键控;QPSK调制;相干解调

I

Simulation design of QPSK modem based on

simulink

Abstract

This paper describes a design based on simulink QPSK modems, modern communication systems require communication distance, large communication capacity, better transmission quality. As one of the key technologies of modem technology it has been an important direction for researchers. From analog modulation to digital modulation, binary-ary modulation development, although modulation variety of ways, but they are moving in make communications systems more speed, more reliable direction. The communication quality of a system depends heavily on the modulation scheme used. In digital communication, often using frequency shift keying (FSK) and phase shift keying (PSK) both methods of digital signal modulation and demodulation, so as to achieve the purpose of transmitting the digital information.

At present, phase shift keying (PSK) generally use the four-phase and multiphase system. Phase shift keying (PSK) is a digital modulation scheme, data transfer, or changing the phase of the modulated carrier signal. All digital modulation scheme uses a limited number of unique signals to represent digital data. PSK with a limited number of stages, each stage is assigned a unique binary digital mode. In general, an equal number of bits of each phase encoding. In the form of a pattern of bits per symbol is a specific stage. Such a demodulator, which is designed

specifically for the purpose of using the symbol-set modulator, a received signal and determines the phase of the return symbol, which also represents the modulation and demodulation of the output data, thereby recovering the original data. This requires the receiver to the received signal, the reference signal comparison - of such a system is called coherent (or called CPSK). Concepts and principles applied aspects of this paper, the four-phase system phase-shift keying (QPSK) technology is described in detail. And for QPSK, system simulation, and implementation also made a detailed statement.

Keywords: phase shift keying; quadrature phase shift keying; QPSK

II

modulation; coherent demodulation

III

前 言

随着经济危化的不断发展,人们对通信的要求也越来越高。近年来,软件无线电作为解决通信体制兼容性问题的重要方法受到各方面的注意。它的中心思想是在通用的硬件平台上,用软件来实现各种功能,包括调制解调类型、数据格式、通信协议等。通过软件的增加、修改或升级就可以实现新的功能,充分体现了体制的灵活性、可扩展性等。其中软件的增加、高频谱效率的调制解调模块是移动通信系统的关键技术,它的软件化也是实现软件无线电的重要环节。

本文主要研究―MATLAB的QPOSK通信系统仿真‖利用MATLAB软件SUMLINK仿真实现QPSK调制方式。QPSK调制系统目前正广泛地应用在无线通信领域,它具有较高的频谱利用率,较强的抗干扰性,在电路上实现也较为简单。使用SUMLINK对QPSK调制、解调进行模拟。具体解决了二进制信息在QPSK调制过程中的串-并变换,解调过程中对已调信号的滤波、抽样判决、并-串变换一系列问题。 通过利用MATLAB软件SUMLINK实现了QPSK通信系统的仿真,完成了QPSK通信系统的调制解调过程的仿真实现,使接收端能够准确地接收到来自发放的信息。QPSK调制方式在通信工程中的应用十分广泛,其误码率随信噪比的增加而减少并最终可能为零。在QPSK调制方式以后,还会出现进制更多的调制方式。而我们着重要解决的问题也从如何提高相位谱利用率转变为如何减少误差以及提高传送速率。阐述QPSK调制解调的实现过程,并运用软件实现手段对信号变换过程加以分析,希望有所收获。

自1897年意大利科学家GMARCONI首次使用无线电波进行信息传输并获得成功后,在一个多世纪的时间中,在飞速发展的计算机和半导体技术的推动下,无线通信的理论和技术不断取得进步,今天,无线移动通信已经发展到大规模商用并逐渐成为人们日常生活不可缺少的重要通信方式之一。随着数字技术的飞速发展与应用数字信号处理在通信系统中的应用越来越重要。数字信号传输系统分为基带传输系统和频带传输系统。频带传输系统也叫数字调制系统,该系统对基带信号进行调制,使其频谱搬移到适合信道传输的频带上数字调制信号有称为键控信号。在调制的过程中可用键控的方法由基带信号对载频信号的振幅,频率及相位进行调制。最基本的方法有三种;正交幅度调制(QAM),

IV

频移键控(FSK)和相移键控(PSK)随着大规模集成电路技术和工艺的进步,数字集成电路的复杂度和功能达到了前所未有的高度,推动了社会的数字化进程,以专用集成电路(ASIC)、数字信号处理器(DSP)和现场可编程逻辑门阵列(FPGA)为代表的IC,已经在工业生产中得到了大规模的应用。在技术和工艺进步的基础上,数字通信中调制解调算法的实现已不再是一件可望不可及的事情。可以说,无论是通信系统的内在要求(即算法复杂性决定接收的质量),还是外在条件(技术和工艺)都在促使通信系统的调制解调向数字化发展。

通信的目的是传输消息。消息具有不同的形式,例如:符号、文字、话音、音乐、数据、图片、活动图像等等。因而,根据所传递消息的不同,目前通信业务可分为电报、电话、传真、数据传输即可视电话等。如果从广义的角度看,则广播、电视、雷达、导航、遥测、遥控等也可以列入通信范畴。

QPSK是目前卫星、微波和有线电视上行通信中最常用的一种单载波调制方式,在电路上实现比较简单其频带利用率高,是BPSK的两倍,具有较强的抗干扰性,当发射功率一定时,和BPSK的误码率相同。

V

1 QPSK调制解调器的总体设计

1.1 设计任务与要求

1. 了解且掌握QPSK调制和解调的基本原理; 2. 在通信原理的基础上设计与分析通信系统;

3. 学习MATLAB知识,熟悉Simulink在MATLAB集成环境下的仿真平台; 4. 利用通信原理相关知识在仿真平台中设计QPSK调制与解调仿真系统并用

示波器观察解调后的波形;

5. 在指导老师的指导下,独立完成课程设计的全部内容,能正确的阐述和分析

设计和实验结果。

1.2 设计目的和意义

近年来,软件无线电作为解决通信体制兼容性问题的重要方法受到各方面的注意。它的中心思想是在通用的硬件平台上,用软件来实现各种功能,包括调制解调类型、数据格式、通信协议等。通过软件的增加、修改或升级就可以实现新的功能,充分体现了体制的灵活性、可扩展性等。其中软件的增加、高频谱效率的调制解调模块是移动通信系统的关键技术,它的软件化也是实现软件无线电的重要环节。

通过完成设计内容,复习QPSK调制解调的基本原理,同时也要复习通信系统的主要组成部分,了解调制解调方式中最基础的方法。了解QPSK的实现方法及数学原理。并对―通信‖这个概念有个整体的理解,学习数字调制中误码率测试的标准及计算方法。同时还要复习随机信号中时域用自相关函数,频域用功率谱密度来描述平稳随机过程的特性等基础知识,来理解高斯信道中噪声的表示方法,以便在编程中使用。

理解QPSK调制解调的基本原理,并使用MATLAB编程实现QPSK信号在高斯信道和瑞利衰落信道下传输,以及该方式的误码率测试。复习MATLAB编程的基础知识和编程的常用算法以及使用MATLAB仿真系统的注意事项,并锻炼自己的编程能力,通过编程完成QPSK调制解调系统的仿真,以及误码率测试,并得出响应波形。在完成要求任务的条件下,尝试优化程序。

1

1.3 Matlab的简介

MATLAB是MATrix LABoratory的缩写,是一款由美国Math Works公司出品 的商业数学软件。MATLAB 是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。除了矩阵算、绘制函数/数据图像等常用功能外,MATLAB还可以用来创建用户界面及与调用其它语言(包括C,C++和FORTRAN)编写的程序。尽管MATLAB主要用于数值计算,但是因为大量的额外的工具箱它也适合于不领域的应用,如控制系统设计与分析、图像处理和信号处理和通信、金融建模和分析等。除了一个完整Simulink包,提供了一个可视化的开发环境,通常用于系统仿真、动态/嵌入式系统开发等。

1.4 Matlab下的simulink简介

Simulink是MATLAB最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。在该环境中只要通过简单的鼠标操作,就可以构造出复杂的系统。Simulink提供了一个建立模型方块图的图形用户接口,这个创建过程只需单击和拖动鼠标操作就能完成,它提供了一种更快捷、直接明了的方式,而且用户可以立即看到系统的仿真结果。Simulink具有适应面广、结构和流程清晰及仿真精细、效率高、贴近实际、等优点,基于以上优点Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。同时有大量的第三方软件和硬件应用于Simulink。

1.5 Simulink的功能与特点 1.5.1 Simulink的功能

连续采样时间、离散采样时间或两种混合的采样时间的需求都可以使用工具Simulink进行建模,在这种仿真平台之中,不同的系统部分可以运用不同的速率,即不同部分可以使用不一样的采样速率Simulink提供了一个建立模型方块图的图形用户接口(GUI)以创建动态系统模型,这个过程只需要使用鼠标即可,操作简单方便。

大量产品扩展了Simulink多领域建模功能这是构架在Simulink基础之上的。

2

Simulink是MATLAB中的一个仿真平台,它能够使用MATLAB中的各种的工具来进行各种所需的运算和仿真。

1.5.2 Simulink的特点

1. 以设计功能的层次性来分割模型,实现对复杂设计的管理; 2. 丰富的可扩充的预定义模块库;

3. 提供API用于与其他仿真程序的连接或与手写代码集成并且可以交互

式的图形编辑器来组合和管理直观的模块图;

4. 使用Embedded MATLAB 模块在Simulink和嵌入式系统执行中调用

MATLAB算法;

5. 诊断设计的性能和异常行为的仿真结果观察方便。

1.6 通信系统的模型

通信的目的是传输信息,进行信息的时空转移。通信系统的作用就是将信息从信源发送到一个或多个目的地。实现通信的方式和手段很多,如手势、语言、旌旗、烽火台和击鼓传令,以及现代社会的电报、电话、广播、电视、遥控、遥测、因特网和计算机通信等,这些都是消息传递的方式和信息交流的手段。伴随着人类的文明、不和科学技术的发展,电信技术也是以一日千里的速度飞速发展,如今,在自然科学领域涉及―通信‖这一术语时,一般指―电通信‖。广义来讲,光通信也属于电通信,因为光也是一种电磁波。

1.6.1 一般模型

通信系统就是传递信息所需要的一切技术设备和传输媒质的总和,包括信息源、发送设备、信道、接收设备和信宿(受信者),它的一般模型如图1.6.1所示。

3

图 1.6.1 通信系统一般模型

1.信息源

信息源(简称信源)的作用是把各种消息转换成原始电信号。根据消息的种类不同,信源可分为模拟信源和数字信源。模拟信源输出连续的模拟信号,如话筒(声音—>音频符号)、摄像机(—>视频信号);数字信源则输出离散的数字信号,如电传机(键盘字符—>数字信号)、计算机等各种数字终端。并且,模拟信源送出的信号经数字化处理后也可送出数字信号。

2.发送设备

发送设备的作用是产生适合于在信道中传输的信号,即使发送信号的特性和信道特性相匹配,具有抗信道干扰的能力,并且具有足够的功率以满足远距离传输的需要。因此,发送设备涵盖的内容很多,可能包含变换、放大、滤波、编码、调制等过程。对于 信息源发送设备信道接收设备受信者噪声源多路传输系统,发送设备还包括多路复用器。

3.信道

信道是一种物理媒质,用来将来自发送设备的信号传送到接收端。在无线信道中,信道可以是自由空间;在有线信道中,可以是明线、电缆和光纤。有线信道和无线信道均有多种物理煤质。信道既给信号以通路,也会对信号产生各种干扰和噪声。信道的固有特性及引入的干扰和噪声直接关系到通信的质量。

上图中的噪声源是信道中的噪声及分散在通信系统及其他各处的噪声的集中表示。噪声通常是随机的,形式多样的,它的出现干扰了正常信号的传输。

4.接收设备

接收设备的功能是将信号放大和反变换(如译码、解调等),其目的是从收到减损的接收信号中正确恢复出原始电信号。对于多路复用信号,接收设备中还包括解除多路复用,实现正确分路的功能。此外,它还要尽可能减小在传输过程中噪声与干扰所带来的影响。

5.受信者

受信者(简称信箱)是传送消息的目的地,其功能与信源相反,即把原始电信号还原成相应的消息,如扬声器等。

上图概括的描述了一个通信系统的组成。根据我们研究的对象以及所关注的问题不同,因而相应有不同形式的、更具体的通信模型。通常按照信道中传

4

输的是模拟信号还是数字信号,相应的把通信系统分为模拟通信系统和数字通信系统。

1.6.2 模拟通信模型

图 1.6.2 模拟通信系统模型

模拟通信系统是利用模拟信号来传递信息的通信系统,其模型如图1.6.2所示,其中包含两种重要变换,第一种变换是,在发送端把连续消息变换成原始电信号,在接收端进行相反的变换,这种变换由信源和信宿完成,这里所说的原始电信号通常称为基带信号。有些信道可以直接传输基带信号,而以自由空间作为信道的无线电传输却无法直接传输这些信号,因此,模拟通信系统中常常需要进行第二种变换:把基带信号变换成适合在信道传输的信号,并在接收端进行反变换,完成这种变换和反变换的通常是调制器和解调器。除了上述两种变换,实际通信系统中可能还有滤波、放大、无线辐射等过程,上述两种变换其主要作用,而其他过程不会使信号发生质的变化,只是对信号进行放大和 改善信号特性等。

1.6.3 数字通信模型

目前,无论是模拟通信还是数字通信,在不同的通信业务中都得到了广泛的应用。但是,数字通信的发展速度已明显超过了模拟通信,其模型如图1.6.3-1,数字通信成为当代通信技术的主流,具有以下优点:

1. 抗干扰能力强(数字信号可多次再生,自动检错、纠错信道),可消除

噪声积累;

2. 差错可控,传输性能好。可采用信道编码技术使误码率降低,提高传输

的可靠性;

3. 便于与各种数字终端接口,用现代计算技术对信号进行处理、加工、变

换、存储,从而形成智能网; 4. 便于集成化,从而使通信设备微型化;

5

5. 便于加密处理,且保密强度高; 6. 占用信道频带宽流。

图 1.6.3-1 数字通信系统模型

1. 信源编码与译码

信源编码有两个基本功能:一是提高信息传输的有效性,而是完成模/数(A/D)转换,信源编码是信源译码的逆过程。

2. 信道编码与译码

信道编码的目的是增强数字信号的抗干扰能力。接收端的信道译码器按相应的逆规则进行解码,从中发现错误或纠正错误,提高通信系统的可靠性。

3. 加密与解密

在需要事先保密通信的场合,为了保证所传信息的拿权,人为地将被传输的数字序列扰乱,即加上密码,这种处理过程叫加密。在接收端利用与发送端相同的密码复制品对收到的数字学列进行解密,恢复原来的信息。。

4. 数字调制与解调

数字调制就是把数字基带信号的频谱搬移到高频处,形成适合在信道中那个传输的带通信号。在接收端可以利用相干解调或非相干解调还原数字基带信号。

数字调制的主要目的是将二进制信息序列映射成信号波形,是对编码信号进行处理,使其变成适合传输的过程。即把基带信号转变为一个相对基带信号而言频率非常高的带通信号,易于发送。数字调制一般是指调制信号是离散的,而载波是连续的调制方式。

主要的数字调制方式有:

1) ASK,又称幅移键控法。这种调制方式是根据信号的不同调节正弦

波波幅度。

2) PSK,相移键控法,载波相位受数字基带信号控制。如基带信号为

6

1时相位为π,基带信号为0时相位为0。

3) FSK,频移键控法,即用数字信号去调节载波频率。

4) QAM,正交幅度调制法,根据数字信号的不同,载波相位和幅度

都发生变化。

5. 同步

同步是使收发两端的信号在时间上保持步调一致,是保证数字通信系统有序/准确/可靠工作的前提条件。

6. 信道

信道是通信传输信号的通道,是通信系统的重要组成部分。其基本特点是发送信号随机地受到各种可能机理的恶化。

在通信系统的设计中,人们往往根据信道的数学模型来设计信道编码,以获得更好的通信性能。常用的信道数学模型有:加性噪声信道,线性滤波信道,线性时变滤波信道。

(1)加性噪声信道:

加性噪声信道是最简单的一种信道数学模型,噪声对信号的影响是加性的。如下图1.6.3-2所示,

图 1.6.3-2 加性噪声数学模型

输入信号为s(t) ,噪声为n(t) ,输出为r(t) = s(t)+ n(t) 若加上衰减函数α,则r(t) = αs(t)+ n(t)。

(2)线性滤波信道:

实际信道中,带宽均有所限制,所以为了确保信号不超出带宽一般会加上线性滤波器。这样的信道便称为线性滤波信道,如图1.6.3-3所示。输入信号为s(t) ,噪声为n(t) ,输出为r(t) :r(t) = s(t)*c(t) + n(t) =

???-?c(?)s(t??)d??n(t)

7

图 1.6.3-3 线性滤波数学模型

(3)线性时变滤波信道:

很多物理信道如电离层无线电信道等,其信道特点是时变的,于是线性滤波器也加上时变特性,如下图1.6.3-4,时变信道脉冲响应为c(τ;t),τ表示可变的过去时间,,则 r(t) = s(t)* c(τ;t)+ n(t)=

?????c(?;t)s(t??)d??n(t)

图 1.6.3-4 线性时变滤波数学模型

此种模型很好地反映了物理信道中的多路径信号传播,如手机蜂窝信道。这是其中的一种特殊例子,若时变脉冲响应为:c(?;t)??K?1其中ak(t)表现出时变信道的可能衰减,

Lak(t)?(???k);

?k 代表时间延时,L则表示传播路径

的数 目。将这一特例带到线性时变滤波信道中则可得输出信号为:

r(t)??K?1ak(t)s(t??k)?n(t)。

L

以上三个信道模型描述了我们在实际中利用的物理信道的大多数重要特点,便于我们对实际通信系统进行设计与分析。

图1.6.3-1是数字通信系统的一般化模型,实际的数字通信系统不一定包括图中的所有环节。

此外,模拟信号经过数字编码后可以在数字通信系统中传输,当然,数字信号也可以通过传统的电话往来传输,但需要使用调制解调器。

8

2 Simulink下的QPSK

2.1 QPSK系统的应用背景

QPSK是英文Quadrature Phase Shift Keying的缩略语简称,意为正交相移键控,是一种数字调制方式。在19世纪80年代初期,人们选用恒定包络数字调制。这类数字调制技术的优点是已调信号具有相对窄的功率谱和对放大设备没有线性要求,不足之处是其频谱利用率低于线性调制技术。19世纪80年代中期以后,四相绝对移相键控(QPSK)技术以其抗干扰性能强、误码性能好、频谱利用率高等优点,广泛应用于数字微波通信系统、数字卫星通信系统、宽带接入、移动通信及有线电视系统之中。

2.2 QPSK的简介

Quadrature Phase Shift Keying通过使用载波的四个各不相同的相位差来表示输入的信息,是具有四进制的相移键控。QPSK是在M=4时的数字的调相技术,它通过约定的四种载波相位,分别为45°,135°,225°,275°,输入数据为二进制的数字序列,因为载波相位是四进制的,所有我们需要把二进制的数据变为四进制的,即把二进制序列中每两个比特分成一组,四种排列组合,即00,01,10,11,双比特码元即为一组。每两位二进制信息比特构成每一组,它们分别表示着着四个符号中的某一个符号。

2.3 QPSK仿真设计的意义

通过完成设计内容,复习QPSK调制解调的基本原理,同时也要复习通信系统的主要组成部分,了解调制解调方式中最基础的方法。了解QPSK的实现方法及数学原理。并对―通信‖这个概念有个整体的理解,学习数字调制中误码率测试的标准及计算方法。同时还要复习随机信号中时域用自相关函数,频域用功率谱密度来描述平稳随机过程的特性等基础知识,来理解高斯信道中噪声的表示方法,以便在编程中使用。

理解QPSK调制解调的基本原理,并使用MATLAB编程实现QPSK信号在高斯信道和瑞利衰落信道下传输,以及该方式的误码率测试。复习MATLAB

9

编程的基础知识和编程的常用算法以及使用MATLAB仿真系统的注意事项,并锻炼自己的编程能力,通过编程完成QPSK调制解调系统的仿真,以及误码率测试,并得出响应波形。在完成要求任务的条件下,尝试优化程序。

2.4 仿真平台与仿真内容 2.4.1 仿真平台

本设计是基于Matlab下的simulink软件仿真,只需PC机上安装MATLAB 6.0或者以上版本即可。

2.4.2 仿真内容

1) 构建一个理想信道基本QPSK仿真系统,要求仿真结果有 a.基带输入波形及其功率谱 b.QPSK信号及其功率谱 c.QPSK信号星座图

2) 构建一个在AWGN(高斯白噪声)信道条件下的QPSK仿真系统,要

求仿真结果有 a.QPSK信号及其功率谱 b.QPSK信号星座图

c.高斯白噪声信道条件下的误码性能以及高斯白噪声的理论曲线,要求所有误码性能曲线在同一坐标比例下绘制

3) 验可选做扩展内容要求:构建一个先经过Rayleigh(瑞利衰落信道),

再通过AWGN(高斯白噪声)信道条件下的条件下的QPSK仿真系统,要求仿真结果有 a.QPSK信号及其功率谱

b.通过瑞利衰落信道之前和之后的信号星座图,前后进行比较

c.在瑞利衰落信道和在高斯白噪声条件下的误码性能曲线,并和2.c中所要求的误码性能曲线在同一坐标比例下绘制。

10

3 QPSK的调制

3.1 QPSK调制原理

QPSK的调制有两种产生方法相乘电路法和选择法。

3.1.1 相乘法

输入信号是二进制不归零的双极性码元,它通过―串并变换‖电路变成了两路码元。变成并行码元后,每个码元的持续时间是输入码元的两倍。用两路正交载波去调制并行码元,如图3.1.1。

图 3.1.1 相乘法

3.1.2 选择法

输入基带信号经过串并变换后用于控制一个相位选择电路,按照当时的输 入双比特ab,决定选择哪个相位的载波输出,如图3.1.2。

11

图 3.1.2 选择法

3.2 QPSK调制原理框图

图 3.2 调制原理框图

QPSK的调制中,QPSK信号可以看成是两个载波正交的2PSK信号调制器构成。原理分析如下:基本原理和系统结构QPSK与二进制PSK一样,传输信号包含的信息都存在于相位中。个别的载波相位取四个等间隔值之一,如л/4、3л/4、5л/4、7л/4。相应的,可将发射信号定义为:

????0?f?Tb?2E/fcos?2?ft?(2i?1)?,(F)? ?4??St?0,其他?其中,i=1,2,3,4;E是发射信号的每个符号的能量,T为符号的持续时间,载波频率f等于nc/T,nc为固定整数。每一个可能的相位值对应于一个特定的二位组。下面介绍QPSK信号的产生和检测。如图为典型的QPSK发射机框图。输入的二进制数据序列首先被不归(NRZ)电平编码转换器转换为极性形式,即负号1和0分别用

Eb和-

Eb表示。该二进制波形被分接器分成两

个分别由输 入序列的奇数位偶数位组成的彼此独立的二进制波形,这两个二进制波形分别用a1(t)和a2(t)表示。此时,在任何一信号时间间隔内a1(t),和a2(t)的幅度恰好分别等于Si1和Si2,即由发送的二位组决定。这两个二进制波形a1(t)和a2(t)被用来调制一对正交载波:

12

?(t)?12cos(2?Tft),?(t)?2/Tsin(2?T2t12ftt)。

这样 就得到一对二进制PSK信号。?(t)和?(t)的正交性使这两个信号可以被独立地检测。最后,将这两个二进制PSK信号相加,从而得期望的QPSK。

3.3 QPSK调制方式的Matlab仿真

I 路信号是用余弦载波,由2进制数据流的奇数序列组成;Q路信号用正弦载波,由2进制数据流的偶数序列组成。下面的a是Idata,b就是Qdata,它们分布与各自的载波相乘分别输出 I 路信号和 Q 路信号。I

路信号加上Q路信 7 号就是QPSK输出信号。当 I 路载波信号是0相位时为1,是180°相位时为0;当Q路载波信号是0相位时为1,是180°相位时为0。

图 3.3 Matlab仿真图

3.4 QPSK调制方式Matlab-simulink仿真 3.4.1 simulink调制建模

如下图3.4.1-1:

13

图 3.4.1-1 调制框图

(1)产生需要的信号源

在搭建QPSK调制解调系统中使用伯努力信号发生器产生随机的01比特序列,每两比特代表就一个符号。Bernoulli Binary Generator模块利用伯努利分布的原理,相应得到参数为p的伯努利分布。伯努利分布的均值1 - p和方差p(1 –p)的。一个零概率参数指定p。本次实验中的p设置为0.5,即0和1等概。采样时间可根据需要进行设置,例如测误码率时采样时间设为0.01s,如下图 3.41-2:

图 3.4.1-2 信号源参数设置

(2)串并变换

我们先通过使用buffer 这个模块来实现将信号源信号转变为两路信号。Buffer 模块可以重新分配缓冲区块的输入样本,用到了Demux,可以将一个复

14

合输入转化为多个单一输出,即可以输出多个采样率较低的帧信号。但会产生与缓冲区容量相同的时延。所以,我们可以设置buffer的参数容量为2,如下图3.4.1-3:

图 3.4.1-3 buffer的参数设置

(3)单极性信号转化为双极性信号

因为QPSK的调制信号要求的是双极性信号,所以用伯努利随机生成二进制Generator模块产生的信号必须经过转化才能够被使用。利用加法模块和常数产生模块将1和0的序列各自减去1/2,再利用比例运算模块乘以2,就得到了1和-1的双极性序列。

(4)调制模块

分别将两路信号乘以相位相差л/ 2的载波,然后相加。载波由正弦信号发生器产生。正弦波模块的参设置为可基于时间的模式,时间设为使用仿真时间,我们设载波信号的幅度为1,载波频率可根据需要来进行设置,两路载波同频正交,相位相差л/ 2。我们设上支路的相位为0,下支路的相位为л/ 2,如下图:

15

图 3.4.1-4 上支路载波参数

图 3.4.1-5 下支路载波参数

16

3.4.2 Simulink调制仿真结果

图 3.4.2-1信号源和转变后的双极性信号

图 3.4.2-2 上支路载波

图3.4.2-3 下支路载波

17

图 3.4.2-4 调制信号

18

4 QPSK的解调

4.1 QPSK解调原理

QPSK接收机由一对共输入地相关器组成。这两个相关器分别提供本地产生地相干参考信号?(t)和?(t)。相关器接收信号x(t),相关器输出地x1和x2

12被用来与门限值0进行比较。如果x1>0,则判决同相信道地输出符号1;如果x1<0 ,则判决同相信道的输出为符号0。如果正交通道也是如此判决输出。最后同相信

道和正交信道输出这两个二进制数据序列被复加器合并,重新得到原始的二进制序列。在AWGN信道中判决结果具有最小的负号差错概率。用两路具有相互正交特性的载波来解调信号,可以分离这两路正交的。

2PSK信号。相干解调后,并行码元经过并/串变换后,最终得到串行的数据流。

4.2 QPSK解调原理框图

图 4.2解调原理框图

原理分析:

QPSK接收机由一对共输入地相关器组成,如图4.2,这两个相关器分别提供本地产生地相干参考信号?1(t)和?2(t)。相关器接收信号x(t),相关器输出

19

地x1和x2被用来与门限值0进行比较。如果x1>0,则判决同相信道地输出为符号1;如果x1<0 ,则判决同相信道的输出为符号0。类似地,如果正交通道也是如此判决输出。最后同相信道和正交信道输出这两个二进制数据序列被复加器合并,重新得到原始的二进制序列。在AWGN信道中,判决结果具有最小的负号差错概率。

4.3 QPSK解调方式的Matlab-simulink仿真

首先将从高斯信道送过来的信号分别乘以与调制时的载波同频的载波,且相位相差为л/ 2的载波。解调可以使用相关器或者匹配滤波器进行解调,本次实验使用的是相关器,这时信号需要通过设置的积分器。因为积分器设置为使用积分器时,需要在时间t=T 时使得积分器复位,所以需要设置积分模块续设置在时钟下降沿时复位。并需要设置参数为使用外部信号,此时,时钟设置为与该支路码元时间相同,即是发送信号码元时间的两倍输入。然后积分后的信号经过采样并保持模块,即sample and hold 模块,此时,设置这个模块为触发上升沿,同样使用时钟设置为与该支路码元时间相同,即是发送信号码元时间的两倍输入。此时各路传输的信号相应地会使一个单位的时延产生。然后使用autothreshold 模块,该模块根据输入的信号数据自动设置出阀值,由此,可对 输入信号做出判定,再输出相应的二进制比特序列,并可输出阀值。最后使用N-sample switch 模块来实现并串转换,因为我们最后需要的是最原始的信号,将两路信号合二为一,在第一路信号发出一个样本时间后,样本时间设置为发送信号码元时间,开关会自动转换到第二路信号,此时换做第二路信号输入,一个码元时间后模块重置,如此循环。同样的,此模块也需要两倍的发送信号码元时间输入。

图 4.3-1 积分器设置

20

图 4.3-2 采样和保持设置

图 4.3-3 解调模块

4.4 传输信道

本次设计使用的是高斯信道和理想信道。实验所需的高斯噪声我们可以由高斯信道模块来提供,用到了Zero-Order Hold,和子模块,即SubSystem,通过子模块建立新的封装(Mask)功能模块其中参数设置信噪比为Es/No , Es/No为信号能量比噪声功率谱密度。AWGN信道模块可以将加性高斯白噪声加到一个实数的或复数的输入信号。现在输入信号是实数,这个模块增加了实数的高斯噪声,产生一个实数的输出信号。此块继承它的输入信号的采样时间。模块使用信号处理模块随机产生的噪声。初始种子可以是一个标量或矢量的长度相匹配的输入信号通道数。种子的详细资料初次,查看随机源模块库文件参考页

21

面中设置的信号处理。该端口的数据类型都继承自该驱动器的信号块。注意权力的所有值假设一个1欧姆的标称阻抗。

图4.4 高斯信道模块

4.5 仿真结果

图 4.5-1 信号源和转变后的双极性信号

图 4.5-2 经过高斯信道后的调制信号

22

图 4.5-3 上支路积分和采样后的信号

图4.5-4 上支路判决后的信号

图 4.5-5 下支路积分和采样后的信号

图 4.5-6 下支路判决后的信号

23

图 4.5-7 源信号流和经过调制解调后的信号流对比

从上述图中可以看出,因为整个系统模块有引进噪声,以及电路使用了积分、采样保持模块,还原后的信号幅度差异较大,通过判决门限后,得到原来的二进制信号。

24

5 仿真结果分析

我们从仿真结果图中看出,信道噪声功率谱密度越大,信号信噪比越小,误码率越高,这也符合实际情况。仿真的各种条件都是理想化的,除了噪声之外不会发生任何错误,和实际情况相比,在相同的信噪比之下,比特错误率理应要小的多,但是仿真所得结果的误码率偏大。

(1)从仿真结果中看出,信号信噪比越小,错误率越高,跟实际情况比较符合。

(2)由于仿真中各种条件都是理想化的,包括数据在传输过程中,除了噪声影响以外不会发生任何错误,所以相对实际情况来说,在相同信噪比下,比特错误率要小的多,但是仿真所得结果与事实规律并不违背。

25

6 总结

在搭建QPSK调制解调系统中首先遇到的问题就是串并转换问题,simulink中没有可以直接解决这个问题的模块,经过网上的搜索与查阅相关资料,最终选取buffer模块,完成可串并转换的功能,但是带人了两个单位的延迟。之后便是示波器的显示问题,此次产生的信号采样速率设置为1秒,载波频率1HZ,对仿真过程中的波形分析带来很多的方便。在完成的QPSK系统的simulink仿真中,由于方便起见,载波大小设为1HZ,与实际的调制解调中所用载波相差甚远,但若将载波设置变大,会对实验仿真和分析带来极大的不便。

这次仿真设计让我深刻体会到数字信号的QPSK调制传输及解调过程,利用Simulink专业库Communications Blockset中的Modulation模块库所提供的―QPSK Modulator Baseband‖―QPSK Demodulator Baseband‖等模块实现QPSK的系统设计,并输出误码率,信道中的噪声为高斯白噪声。仿真设计很快结束了,不仅检验了我所学的通信原理的基本知识,同时让我熟悉了Matlab的simulink仿真的一些基本操作。刚开始时连正弦信号在scope中显示都很难做到,正弦信号的参数设计也是一大难题,经过查阅资料,终于弄清楚最基本的模块的用法。这次设计中遇到的最大的问题是数据源的串转并和并转串模块,此模块花费很多时间去设计,最终设计出的串转并和并转串模块虽不理想(存在延时)但是实现了数据的串转并和并转串。各个模块参数的设计是设计中最难的一部分,因为一个参数设计不对会导致结果错误。最终经过不断的查找资料和请教指导老师,终于完成了QPSK的调制与解调。

26

致谢

随着毕业的日子即将到来,历经半年的毕业设计也接近了尾声。通过这半年的毕业设计,我明白了自己需要学的知识还很多。毕业设计不仅仅是对几年所学只是的总结,更是对自己能力的一种提高。下面我对这半年来毕业设计的过程做一些总结:

第一,选择毕业设计题目时,有许多题目供大家选择,由于我比较喜欢仿真,所以选题的时候我毅然决定做仿真设计,感觉对里面的知识是比较熟悉的,也比较好上手。最后我就选了基于Simulink的QPSK调制解调器仿真设计这一题目。

第二,题目确定后,我一边开始着手毕业设计方面的准备,一边查资料,查资料是一个很复杂的过程,网上搜索到的大部分都是涉及QPSK调制解调原理的期刊杂志之类的,而具体怎么做的论文是很难搜到的。由于从来没做过毕业设计,怎么做,做到什么程度都是一头雾水,我只能天天去图书馆搜相关书籍和期刊了,后来还在相关同学朋友的介绍下,我找到了很多与QPSK相关的论文和期刊。毕业设计要求使用Simulink工具包进行仿真实现。

第三,QPSK的原理虽然很清楚,但具体设计时用哪些模块呢,一大堆的问题就出现了。怎么编码,怎么复用以及怎么形成图像等等,都是需要解决的问题。我一直在反复琢磨着这些问题,一边参考着网上搜索到的那些资料,一边自己进行思考。这期间我询问了有关老师和身边的同学朋友,他们帮助我解决了大量的该方面的问题。

第四,在最后的这段日子里,我对前期所搭建的模块进行了进一步的完善。毕业设计论文的书写的工作是非常繁琐的。首先是要确定论文的大致目录。分为几章来写,每一章又分为几小节,每一小节又具体要要写些什么。这些工作都需要进行认真的思考,因为论文的书写是对整个毕业设计的总结。书写论文首先要确定论文的大致轮廓即目录,由于我的题目是关于QPSK的和利用Simulink来完成的,因此首先要介绍一下QPSK的基本原理和Simulink的功能和特点。论文最主要的部分就是自己的设计部分,这是整个论文的核心内容,对于这部分内容,我修改了好几次,有的时候不是论文的过于冗繁就是论述的太少,经过反复几次的斟酌和老师的指点,才最终确定了终稿。

27

参考文献

[1] 曹志刚,现代通信原理,清华大学出版社,2011.

[2] 沈辉,SIMULINK系统仿真与控制,北京大学出版社,2003.

[3] 薛定宇,基于MATLAB/Simulink的系统仿真技术及应用,清华大学出版社,2011. [4] 张德丰,MATLAB/Simulink建模与仿真实例精讲,机械工业出版社,2010. [5] 樊昌信 曹丽娜,通信原理,国防工业出版社,2010. [6] 李晓峰,通信原理,清华大学出版社,2008.

[7] 周艳青,尹华杰,叶长青,等.无位置传感器无刷直流电机位置检测技术.电机与控制应

用,2007, 34(7):125.

[8] 李自成.无刷直流电机无位置传感器控制关键技术研究〔D].武汉:华中科技大学,2010. [9] 李强.无位置传感器无刷直流电动运行理论和控制系统研究.南京:东南大学,2005. [10]曹永娟,林明耀,潘腾,等.无刷直流电机状态观测器的设计〔J].微电机,2004, 37(2):15-17. [11]严晓华,现代通信技术基础,清华大学出版社,2010.

[12]潘莉,郭东辉,纪安妮,等.数字调制解调技术及其应用的研究进展〔J」.电讯技术,2001. [14]樊昌信,张甫詡、徐炳祥、吴成柯 .《通信原理》[M] .北京:国防工业出版社,2001.5. [15]党宏社,段晨东. 控制系统仿真. 西安:西安电子科技大学出版社2008.

[16]陈怀琛,吴大正,高西金《matlab及在信息课程中的应用》[J]北京:电子工业出版社,2006. [17]楼天顺、刘晓东、李博涵《基于matlab7.x的系统分析与设计》[M].西安:西安电子科

技大学出版社, 2005.5.

[18]张肃文主编.《高频电子线路》[M] .北京:高等教育出版社, 2004.11. [19]程佩青编著.《数字信号处理教程》[M] .北京:清华大学出版社, 2006.3.

[20]张辉、曹丽娜、王勇编著《.通信原理辅导》[M] 西安.西安电子科技大学出版社,2004.11. [21]徐明远.《MATLAB仿真在通信工程中的应用》[J]. 西安.西安电子科技大学出版

社,2005.6.

[22]田丽华等.《编码理论》[J].西安:西安电子科技大学出版社, 2003.8.

[23]赖昭胜,管立新、曾祥华,等.OPSK高性能数字调制器的「PGA实现〔J].PLD

CPLDFPGA应用2006. 22(12):139-148.

[22]吴伟陵,续大我,庞沁华编著.通信原理.北京邮电大学出版社,2005. [23]王立宁,乐光新,詹菲.MATLAB与通信仿真[M].人民邮电出版社,2000. [24]李环,任波,华宇宁.通信系统仿真设计与应用[M].电子工业出版社,2009. [25]青松,程岱松,武建华.数字通信系统的matlab仿真与分析[M].北京航空航天大学出版

社,2001.

28

[26]王树清. 工业过程控制工程. 北京:化学工业出版社,2003.

[27][美] B. 威得罗. 刘树棠,韩崇昭译. 自适应逆控制. 西安:西安交通大学出版社,2000. [28]苗长云.现代通信原理及应用[M].电子工业出版社,2005. [29]张圣勤.MATLAB 7.0实用教程.机械工业出版社,2006. [30]桑林,郝建军,刘丹.数字通信.北京邮电大学出版社,2002. [31]]樊昌信,曹丽娜.通信原理[M].国防工业出版社,2006.

[32](美)拉帕波特.无线通信原理与应用:Pinciple and practice[M].电子工业出版社,2006. [33]刘兴堂. 现代辨识工程. 北京:国防工业出版社,2006.

[34]李鹏波,胡德文. 系统辨识基础. 北京:中国水利水电出版社,2006.

[35]庞中华,崔红. 系统辨识与自适应控制MATLAB仿真. 北京:北京航空航天大学出版

社,2009.

[36]李言俊 张科. 系统辨识理论及应用. 北京:国防工业出版社,2011.

[37]薛定宇. 控制系统计算机辅助设计—MATLAB语言与应用. 北京:清华大学出版社, [38]于浩详,初红霞. MATLAB实用教程—控制系统仿真与应用. 北京:化学工业出版社,

2009.

[39]黄道平. MATLAB与控制系统的数字仿真与CAD. 北京:化学工业出版社, [40]张静. MTLAB在控制系统中的应用. 北京:电子工业出版社,

[41]夏玮,李朝晖. MATLAB控制系统仿真与实例详解. 北京:人民邮电出版社,2008. [42]党宏社,段晨东. 控制系统仿真. 西安:西安电子科技大学出版社2008. [43]张晓华. 控制系统数字仿真与CAD. 北京:机械工业出版社,2004. [44]张晓华. 系统建模与仿真. 北京:清华大学出版社,2006. [45]肖健华. 智能模式识别方法. 广州:华南理工大学出版社,2006.

[46]徐昕,李涛. MATLAB工具箱应用指南—控制工程篇. 北京:电子工业出版社,2000. [47]Roger L.Freeman . Fundamentals of Telecommunications ,1999. [48]SILICON TRANSISTOR 2sc33565 DATASHEET. NEC,1996.5.

[49]John G.Proakis Masoud Salehi Gerhard Bauch.著 刘树棠译comtemporary communication systems using matlab and simulink.北京:电子工业出版社,2005.4.

[50]D.Divsalar,M.K,Simon.Multiple-Symbol Differential Detection of MPSKIEEE Transactions on Communications.1990. 38(3):300一308.

[51]D. Makrakis. K.Feher.ODtimalNoncoherent Detection of PSK Signals.Elect. Lett二1990, 26(6):146-155.

[52]Theodore S.Rappaport.Wireless Com-munications Principles and Practice.Publishing Houseof Electronics Indus-try.1999

29

附 录

主程序:

T=1; % 基带信号宽度,也就是频率 fc=10/T; % 载波频率

ml=2; % 调制信号类型的一个标志位 nb=100; % 传输的比特数 delta_T=T/200; % 采样间隔 fs=1/delta_T; % 采样频率 SNR=0; % 信噪比 t=0:delta_T:nb*T-delta_T; % 限定t的取值范围 N=length(t); % 采样数 %------------------------- 调制部分 % 基带信号的产生

data=randn(1,nb)>0.5; datanrz=data.*2-1; data1=zeros(1,nb/delta_T); for q=1:nb

data1((q-1)/delta_T+1:q/delta_T)=datanrz(q); end

% 串并转换,将奇偶位数据分开 idata=datanrz(1:ml:(nb-1)); qdata=datanrz(2:ml:nb); % QPSK信号的调制 ich=zeros(1,nb/delta_T/2); for i=1:nb/2

ich((i-1)/delta_T+1:i/delta_T)=idata(i); end

% 瑞利衰落信道

ray_ich=raylrnd(0.8,1,nb/2/delta_T); ray_qch=raylrnd(0.8,1,nb/2/delta_T); Ray_idata=idata1.*ray_ich;

30

Ray_qdata=qdata1.*ray_qch; Ray_s=Ray_idata+Ray_qdata;

% 高斯信道

s1=awgn(s,SNR); s11=abs(fft(s1)); s111=s1-s;

Awgn_s=awgn(Ray_s,SNR); % 通过高斯信道再通过瑞利衰落信道

%----------------------------- QPSK 解调部分

% 解调部分(高斯信道) idata2=s1.*a; qdata2=s1.*b;

idata3=zeros(1,nb/2); qdata3=zeros(1,nb/2);

% 抽样判决的过程,与0作比较,data>=0,则置1,否则置0 for n=1:nb/2

if sum(idata2((n-1)/delta_T+1:n/delta_T))>=0 idata3(n)=1; else idata3(n)=0; end end end

% 为了显示星座图,将信号进行处理 idata4=zeros(1,nb/2); qdata4=zeros(1,nb/2); for n=1:nb/2

Awgn_ichsum(n)=sum(idata2((n-1)/delta_T+1:n/delta_T))*delta_T; if Awgn_ichsum(n)>=0 idata4(n)=1;

31

else idata4(n)=0; end

Awgn_qchsum(n)=sum(qdata2((n-1)/delta_T+1:n/delta_T))*delta_T; if Awgn_qchsum(n)>=0 qdata4(n)=1; else qdata4(n)=0; end end

% 将判决之后的数据存放进数组 demodata=zeros(1,nb); demodata(1:ml:(nb-1))=idata3; demodata(2:ml:nb)=qdata3;

%为了显示,将它变成波形信号(即传输一个1代表单位宽度的高电平) demodata1=zeros(1,nb/delta_T); for q=1:nb

demodata1((q-1)/delta_T+1:q/delta_T)=demodata(q); end % 累计误码数

% abs(demodata-data)求接收端和发射端 % 数据差的绝对值,累计之后就是误码个数 Awgn_num_BER=sum(abs(demodata-data))

% 解调部分(瑞利+高斯)

Ray_idata2=Ray_s.*a; Ray_qdata2=Ray_s.*b;

% 为了显示星座图,将信号进行处理 Ray_idata4=zeros(1,nb/2); Ray_qdata4=zeros(1,nb/2); for n=1:nb/2

Ray_ichsum(n)=sum(idata2((n-1)/delta_T+1:n/delta_T))*delta_T; if Ray_ichsum(n)>=0 Ray_idata4(n)=1; else Ray_idata4(n)=0; end

Ray_qchsum(n)=sum(qdata2((n-1)/delta_T+1:n/delta_T))*delta_T;

32

if Ray_qchsum(n)>=0 Ray_qdata4(n)=1; else Ray_qdata4(n)=0; end end

% 将判决之后的数据存放进数组 Ray_demodata=zeros(1,nb);

Ray_demodata(1:ml:(nb-1))=Ray_idata4; Ray_demodata(2:ml:nb)=Ray_qdata4;

%为了显示,将它变成波形信号(即传输一个1代表单位宽度的高电平) Ray_demodata1=zeros(1,nb/delta_T); for q=1:nb

Ray_demodata1((q-1)/delta_T+1:q/delta_T)=Ray_demodata(q); end % 累计误码数

% abs(demodata-data)求接收端和发射端 % 数据差的绝对值,累计之后就是误码个数 Ray_num_BER=sum(abs(Ray_demodata-data))

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% 误码率计算

%% 调用了cm_sm32();和cm_sm33()函数 %%声明:函数声明在另外俩个M文件中 %%作用:cm_sm32()用于瑞利信道误码率的计算 %% cm_sm33()用于高斯信道误码率的计算

%% ecoh on/off 作用在于决定是否显示指令内容

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

SNRindB1=0:1:6; SNRindB2=0:0.1:6; % 瑞利衰落信道

for i=1:length(SNRindB1),

[pb,ps]=cm_sm32(SNRindB1(i)); % 比特误码率 smld_bit_ray_err_prb(i)=pb;

33

smld_symbol_ray_err_prb(i)=ps; disp([ps,pb]); echo off; end; % 高斯信道 echo on;

for i=1:length(SNRindB1),

[pb1,ps1]=cm_sm33(SNRindB1(i)); smld_bit_awgn_err_prb(i)=pb1; smld_symbol_awgn_err_prb(i)=ps1; disp([ps1,pb1]); echo off; end; % 理论曲线 echo on;

for i=1:length(SNRindB2),

SNR=exp(SNRindB2(i)*log(10)/10); theo_err_awgn_prb(i)=0.5*erfc(sqrt(SNR)); theo_err_ray_prb(i)=0.5*(1-1/sqrt(1+1/SNR)); echo off; end;

h = spectrum.welch;

%---------------------------- 输出显示部分

% 第一部分(理想) figure(1) subplot(3,2,1);

plot(data0),title('基带信号'); axis([0 20000 -2 2]); subplot(3,2,2);

psd(h,data1,'fs',fs),title('基带信号功率谱密度'); subplot(3,2,3); plot(s),title('调制信号'); axis([0 500 -3 3]);

34

subplot(3,2,4);

psd(h,s,'fs',fs),title('调制信号功率谱密度'); subplot(3,2,5);

plot(demodata1),title('解调输出'); axis([0 20000 -2 2]); subplot(3,2,6);

psd(h,demodata1,'fs',fs),title('解调输出功率谱密度');

% 通过高斯信道 figure(2) subplot(2,2,1);

plot(s1),title('调制信号(Awgn)'); axis([0 500 -5 5]); subplot(2,2,2);

psd(h,s1,'fs',fs),title('调制信号功率谱密度(Awgn)'); subplot(2,2,3);

plot(s111),title('高斯噪声曲线'); axis([0 2000 -5 5]); figure(3) for i=1:nb/2

plot(idata(i),qdata(i),'r+'),title('QPSK信号星座图(Awgn)');hold on; axis([-2 2 -2 2]);

plot(Awgn_ichsum(i),Awgn_qchsum(i),'*');hold on; legend('理论值(发射端)','实际值(接收端)'); end

%通过高斯信道再通过瑞利衰落信道 figure(4) subplot(2,2,1)

plot(Ray_s),title('调制信号(Ray+Awgn)'); axis([0 500 -5 5]); subplot(2,2,2);

psd(h,Ray_s,'fs',fs),title('调制信号功率谱密度(Ray)'); figure(5) for i=1:nb/2

plot(idata(i),qdata(i),'r+'),title('QPSK信号星座图(Awgn+Ray)');hold on; axis([-2 2 -2 2]);

35

plot(Ray_ichsum(i),Ray_qchsum(i),'*');hold on; legend('理论值(发射端)','实际值(接收端)'); end figure(6)

semilogy(SNRindB2,theo_err_awgn_prb,'r'),title('误码率曲线');hold on; semilogy(SNRindB1,smld_bit_awgn_err_prb,'r*');hold on; semilogy(SNRindB2,theo_err_ray_prb);hold on; semilogy(SNRindB1,smld_bit_ray_err_prb,'+'); xlabel('Eb/No');ylabel('BER');

legend('理论AWGN','仿真AWGN','理论Rayleigh','仿真Rayleigh');

cm_sm32()用于瑞利信道误码率的计算:

function [pb,ps]=cm_sm32(snr_in_dB) % [pb,ps]=cm_sm32(snr_in_dB)

% CM_SM3 finds the probability of bit error and symbol error for % the given value of snr_in_dB, signal to noise ratio in dB. N=100;

E=1; % energy per symbol numofsymbolerror=0; numofbiterror=0; counter=0;

snr=10^(snr_in_dB/10); % signal to noise ratio

sgma=sqrt(E/snr)/2; % noise variance

s00=[1 0]; s01=[0 1]; s11=[-1 0]; s10=[0 -1]; % signal mapping % generation of the data source while(numofbiterror<100) for i=1:N,

temp=rand; % a uniform random variable between 0

and 1

if (temp<0.25), % with probability 1/4, source output is \

dsource1(i)=0; dsource2(i)=0;

elseif (temp<0.5), % with probability 1/4, source output is

36

\

dsource1(i)=0; dsource2(i)=1;

elseif (temp<0.75), % with probability 1/4, source output is \

dsource1(i)=1; dsource2(i)=0;

else % with probability 1/4, source output is \ dsource1(i)=1; dsource2(i)=1;

end; end;

% detection and the probability of error calculation for i=1:N, ray=raylrnd(0.8);

n=sgma*randn(1,2); % 2 normal distributed r.v with 0, variance sgma

if ((dsource1(i)==0) & (dsource2(i)==0)), r=ray*s00+n;

elseif ((dsource1(i)==0) & (dsource2(i)==1)), r=ray*s01+n;

elseif ((dsource1(i)==1) & (dsource2(i)==0)), r=s10*ray+n; else

r=s11*ray+n; end;

% The correlation metrics are computed below

c00=dot(r,s00); c01=dot(r,s01); c10=dot(r,s10); c11=dot(r,s11); % The decision on the ith symbol is made next c_max=max([c00,c01,c10,c11]); if (c00==c_max), decis1=0; decis2=0; elseif (c01==c_max), decis1=0; decis2=1; elseif (c10==c_max), decis1=1; decis2=0; else decis1=1; decis2=1; end;

% Increment the error counter, if the decision is not correct symbolerror=0;

if (decis1~=dsource1(i)), numofbiterror=numofbiterror+1; symbolerror=1; end;

if (decis2~=dsource2(i)), numofbiterror=numofbiterror+1; symbolerror=1;

37

end;

if (symbolerror==1), numofsymbolerror=numofsymbolerror+1; end; end

counter=counter+1; end

ps=numofsymbolerror/(N*counter); % since there are totally N symbols

pb=numofbiterror/(2*N*counter); % since 2N bits are transmitted

cm_sm33用于高斯信道误码率的计算:

function [pb1,ps1]=cm_sm33(snr_in_dB) % [pb,ps]=cm_sm32(snr_in_dB)

% CM_SM3 finds the probability of bit error and symbol error for % the given value of snr_in_dB, signal to noise ratio in dB. N=100;

E=1; % energy per symbol snr=10^(snr_in_dB/10); % signal to noise ratio sgma=sqrt(E/snr)/2; % noise variance

s00=[1 0]; s01=[0 1]; s11=[-1 0]; s10=[0 -1]; % signal mapping % generation of the data source numofsymbolerror=0; numofbiterror=0; counter=0;

while(numofbiterror<100) for i=1:N,

temp=rand; % a uniform random variable between 0 and 1

if (temp<0.25), % with probability 1/4, source output is \ dsource1(i)=0; dsource2(i)=0;

elseif (temp<0.5), % with probability 1/4, source output is \ dsource1(i)=0; dsource2(i)=1;

elseif (temp<0.75), % with probability 1/4, source output is \ dsource1(i)=1; dsource2(i)=0;

else % with probability 1/4, source output is \

38

dsource1(i)=1; dsource2(i)=1; end; end;

% detection and the probability of error calculation for i=1:N,

% the received signal at the detection, for the ith symbol,is: n=sgma*randn(1,2); % 2 normal distributed r.v with 0, variance sgma

if ((dsource1(i)==0) & (dsource2(i)==0)), r=s00+n;

elseif ((dsource1(i)==0) & (dsource2(i)==1)), r=s01+n;

elseif ((dsource1(i)==1) & (dsource2(i)==0)), r=s10+n; else r=s11+n; end;

% The correlation metrics are computed below

c00=dot(r,s00); c01=dot(r,s01); c10=dot(r,s10); c11=dot(r,s11); % The decision on the ith symbol is made next c_max=max([c00,c01,c10,c11]); if (c00==c_max), decis1=0; decis2=0; elseif (c01==c_max), decis1=0; decis2=1; elseif (c10==c_max), decis1=1; decis2=0; else decis1=1; decis2=1; end;

% Increment the error counter, if the decision is not correct symbolerror=0;

if (decis1~=dsource1(i)), numofbiterror=numofbiterror+1; symbolerror=1; end;

if (decis2~=dsource2(i)), numofbiterror=numofbiterror+1; symbolerror=1; end;

if (symbolerror==1), numofsymbolerror=numofsymbolerror+1; end; end

counter=counter+1;

39

end

ps1=numofsymbolerror/(N*counter); % since there are totally N symbols pb1=numofbiterror/(2*N*counter); % since 2N bits are transmitted

40

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

Top