载波同步matlab,基于Matlab的载波同步建模与仿真(科斯塔斯环)——超全原理讲解,超全代码和图(这篇终于看懂了!)...

本文主要是介绍载波同步matlab,基于Matlab的载波同步建模与仿真(科斯塔斯环)——超全原理讲解,超全代码和图(这篇终于看懂了!)...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

1 设计原理

1.1 载波同步的原理

1.1.1 平方环载波同步法原理

1.1.2 科斯塔斯环载波同步法原理

1.2 二进制移相键控(2PSK)的原理

1.3 复信号

2 仿真实现

2.1 2PSK信号载波提取及解调仿真设计流程及原理

2.1.1 产生数字基带信号

2.1.2 产生载波信号

2.1.3 调制产生2PSK信号

2.1.4 锁相环参数清零及初始化

2.1.5 科斯塔斯环的正式处理过程

2.1.6 原始载波与提取载波

2.1.7 调制信号与解调信号

2.2 DSB信号载波提取及解调仿真设计流程及原理

2.2.1 产生正弦波模拟信号

2.2.2 产生载波信号

2.2.3 调制产生DSB信号

2.2.4 锁相环参数清零及初始化

2.2.5 科斯塔斯环的正式处理过程

2.2.6 原始载波与提取载波

2.2.7 调制信号与解调信号

2.3 2PSK信号载波同步及解调仿真结果

2.4 DSB信号载波同步及解调仿真结果

2.5 仿真结果分析

3 心得体会

4 参考文献

5 资源链接

1 设计原理

1.1 载波同步的原理

载波同步又称载波恢复( carrier restoration),即在接收设备中产生一个和接收信号的载波同频同相的本地振荡( local oscillation),供给解调器作相干解调用。当接收信号中包含离散的载频分量时,在接收端需要从信号中分离出信号载波作为本地相干载波;这样分离出的本地相干载波频率必然与接收信号载波频率相同,但为了使相位也相同,可能需要对分离出的载波相位作适当的调整。若接收信号中没有离散载波分量,例如在2PSK信号中(“1”和“0”以等 概率出现时),则接收端需要用较复杂的方法从信号中提取载波。因此,在这些接收设备中需要有载波同步电路,以提供相干解调所需要的相干载波,相干载波必须与接收信号的载波严格地同频同相。

造成载波不同步的原因有:

·任何两个独立的振荡器都是不同步的;

·即便发射机和接收机使用的两个独立振荡器是同步的,电磁波在信道中的传播也会引起对接收机来说是未知的相位变化。比如电磁波的行程相位(一个波长的距离对应2π相移),绕射、反射、散射引起的附加相移等,另外多普勒现象也会引起频率抖动。通常θ(t)\theta

(t)θ(t)相对于信息信号是缓慢变化的,因此经常写成 的形式。这里虽然 θ\thetaθ 不为0,但却是固定的,如果接收端已知其数值,则这两个载波在实质上是同步的。不过做相干解调时,需要对本地载波做相移以消除这个 θ\thetaθ 。

载波提取的目的:

要在接收端建立一个和发送信号完全一致(同频同相)的本地载波(称此为相干载波或同步载波)。

提取载波的方法:

一般分为两类:

一类是不专门发送导频,而在接收端直接从发送信号中提取载波,这类方法称为直接法,也称为自同步法;

另一类是在发送有用信号的同时,在适当的频率位置上,插入一个(或多个)称作导频的正弦波,接收端就利用导频提取出载波,这类方法称为插入导频法,也称为外同步法。

本篇报告主要介绍直接法提取载波中的平方环法和科斯塔斯环(Costas环)法提取相干载波的原理,并利用MATLAB程序仿真实现科斯塔斯环(Costas环)法分别对2PSK信号和DSB信号进行载波提取并解调出原始信号。

1.1.1 平方环载波同步法原理

设调制信号为m(t)m(t)m(t),m(t)m(t)m(t)中无直流分量,则抑制载波的双边带信号为

s(t)=m(t)∗cos⁡ωct(1.1)\text{s}(t)=m(t)*\cos {{\omega }_{c}}t \tag {1.1}s(t)=m(t)∗cosωc​t(1.1)

接收端将该信号进行平方变换,即经过一个平方律部件后就得到

e(t)=m2(t)∗cos⁡2ωct=12m2(t)+12m2(t)cos⁡2ωct(1.2)e(t)={{m}^{2}}(t)*{{\cos }^{2}}{{\omega }_{c}}t=\frac{1}{2}{{m}^{2}}(t)+\frac{1}{2}{{m}^{2}}(t)\cos 2{{\omega }_{c}}t \tag {1.2}e(t)=m2(t)∗cos2ωc​t=21​m2(t)+21​m2(t)cos2ωc​t(1.2)

由上式可以看出,虽然前面假设m(t)m(t)m(t)中无直流分量,但 却一定有直流分量,这是因为m2(t){{m}^{2}}(t)m2(t)必为大于等于0的数,因此,m2(t){{m}^{2}}(t)m2(t)的均值必大于0,而这个均值就是直流分量,这样e(t)e(t)e(t)的第二项中就包含2fc2{{f}_{c}}2fc​频率的分量。例如,对于2PSK信号,为双极性矩形脉冲序列,设 =±1,那么m2(t){{m}^{2}}(t)m2(t)=1,这样经过平方率部件后可以得到

e(t)=m2(t)∗cos⁡2ωct=12+12cos⁡2ωct(1.3)e(t)={{m}^{2}}(t)*{{\cos }^{2}}{{\omega }_{c}}t=\frac{1}{2}+\frac{1}{2}\cos 2{{\omega }_{c}}t\tag {1.3}e(t)=m2(t)∗cos2ωc​t=21​+21​cos2ωc​t(1.3)

由上式可知,通过2fc2{{f}_{c}}2fc​窄带滤波器从中很容易取出2fc2{{f}_{c}}2fc​频率分量。经过一个二分频器就可以得到2fc2{{f}_{c}}2fc​的频率成分,这就是所需要的同步载波。因而,利用图1-1所示的方框图就可以提取出载波。

28185b6e0fea580ac6a89d7e555d5de5.png

图1-1 平方变换法提取载波原理框图

为了改善平方变换的性能,可以在平方变换法的基础上,把窄带滤波器用锁相环替代,构成如图1-2所示框图,这样就实现了平方环法提取载波。由于锁相环具有良好的跟踪、窄带滤波和记忆性能,因此平方环法比一般的平方变换法具有更好的性能,因而得到广泛的应用。

3c86af97ad9982d974d5a58de346355c.png

图1-2 平方环法提取载波原理框图

1.1.2 科斯塔斯环载波同步法原理

科斯塔斯(Costas)环法又称同相正交环法或边环法。相比于平方环法,它仍然利用锁相环提取载频,但是不需要对接收信号作平方运算就能得到载频输出。在载波频率上进行平方运算后,由于频率倍增,使后面的锁相环工作频率加倍,实现的难度增大。科斯塔斯环则用相乘器和较简单的低通滤波器取代平方器;这是它的主要优点。它和平方环法的性能在理论上是一样的。

图1-2中示出了其原理方框图。图中,接收信号s(t)s(t)s(t)被送入二路相乘器,两相乘器输入的a点和b点的压控振荡电压分别为

va=cos⁡(ωct+φ)(1.4){{v}_{a}}=\cos ({{\omega }_{c}}t+\varphi )\tag {1.4}va​=cos(ωc​t+φ)(1.4)va=sin⁡(ωct+φ)(1.5){{v}_{a}}=\sin ({{\omega }_{c}}t+\varphi )\tag {1.5}va​=sin(ωc​t+φ)(1.5)

1c19e63cd955a88a26f10815096cc9f6.png

图1-3 科斯塔斯环法提取载波原理框图

它们和接收信号电压相乘后,得到c点和d点的电压为

vc=m(t)cos⁡(ωct+θ)cos⁡(ωct+φ)=1

这篇关于载波同步matlab,基于Matlab的载波同步建模与仿真(科斯塔斯环)——超全原理讲解,超全代码和图(这篇终于看懂了!)...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/437892

相关文章

Python基础文件操作方法超详细讲解(详解版)

《Python基础文件操作方法超详细讲解(详解版)》文件就是操作系统为用户或应用程序提供的一个读写硬盘的虚拟单位,文件的核心操作就是读和写,:本文主要介绍Python基础文件操作方法超详细讲解的相... 目录一、文件操作1. 文件打开与关闭1.1 打开文件1.2 关闭文件2. 访问模式及说明二、文件读写1.

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

Spring Boot 3.4.3 基于 Spring WebFlux 实现 SSE 功能(代码示例)

《SpringBoot3.4.3基于SpringWebFlux实现SSE功能(代码示例)》SpringBoot3.4.3结合SpringWebFlux实现SSE功能,为实时数据推送提供... 目录1. SSE 简介1.1 什么是 SSE?1.2 SSE 的优点1.3 适用场景2. Spring WebFlu

java之Objects.nonNull用法代码解读

《java之Objects.nonNull用法代码解读》:本文主要介绍java之Objects.nonNull用法代码,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录Java之Objects.nonwww.chinasem.cnNull用法代码Objects.nonN

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2