m基于matlab的OQPSK载波同步通信系统仿真,载波同步采用costas环

news2025/8/12 5:50:37

目录

1.算法概述

2.仿真效果预览

3.核心MATLAB代码预览

4.完整MATLAB程序


1.算法概述

       OQPSK调制技术是一种恒包络调制技术,受系统非线性影响小,具有较高的带宽利用率和功率利用率,在卫星环境、无线环境下得到广泛应用。因此,在通信信号侦收设备所处理的信号中,存在大量的OQPSK信号。在传统的侦收设备中,接收机的解调单元都是采用模拟处理方法和器件实现的。大都使用了模拟滤波器、鉴相器(乘法器)和压控振荡器(VCO)。这种传统的模拟解调单元电路体积大,形式复杂;调试过程复杂、调试周期长;器件内部噪声大,易受环境影响,可靠性差。因此,这种传统的侦收设备不能完全发挥数字通信的优势,实现信号的最佳接收。随着大规模集成电路(VLSI)技术和工艺的进步,数字集成电路的复杂度和功能达到了前所未有的高度,以专用集成电路(ASIC)、数字信号处理器(DSP)、和现场可编程逻辑门阵列(FPGA)为代表的IC,已经在工业生产中得到大规模的应用。这些技术和工艺的快速发展,给侦收设备中解调单元的全数字化提供了可能。

        全数字化的调制解调器与传统的模拟电路调制解调器相比主要有以下优点:硬件电路稳定、通用、易维护;电路的稳定性好,基本不受环境、器件个体性能差异因素影响,无需复杂的电路调试。算法由软件实现,可以在通用的硬件平台上用不同的算法实现不同的调制解调器。数字调制解调算法通过计算机设计仿真,易于调试。易于实现自适应接收,可以切换或者调整系统软件,加载不同的算法,实现对多种不同体制信号的自适应接收。利于集成,随着数字器件的高速发展,数字接收机的集成度越来越高,使通信设备的小型化成为可能。本课题正是以某型侦收设备中OQPSK解调器的全数字化为背景展开研究,设计并实现全数字OQPSK调制解调器。

OQPSK复基带信号可以表示为:

       在OQPSK调制解调器设计中成形滤波、数字下变频、载波恢复和定时恢复是实现OQPSK调制解调器的难点和重点。

       在数字通信系统中,由于基带码元采用矩形波表示,其频谱是无限宽,当信号通过实际带限信道,频域截短,时域变为无限,产生码间串扰,为了克服码间串扰,需要对码元进行成形滤波。实际应用中,大多采用升余弦滤波器作为成形滤波器。

具有滚降系数α的升余弦滚降特性H(ω)可表示为:

而相应的h( t)为:

        升余弦滚降信号在前后抽样值处的码间串扰为0,满足抽样值无失真传输条件,滚降系数α越小,则波形的振荡起伏就越大,但传输频带减小,对接收端的定时要求增加;反之,α越大,则波形振荡起伏越小,但频带增加。α=0时,升余弦滤波器变成了理想低通滤波器,此时信号的频带最窄;α=1时,升余弦滤波器的频带最宽,为理想低通滤波器的2倍。所以,升余弦滚降滤波器是以频带的增加来换取码间干扰的减少。

       从工作原理上讲,数字下变频与模拟下变频是一样的,就是输入信号与一个本地振荡信号的乘法运算。与模拟下变频相比,数字下变频的运算速度受DSP处理速度的限制,同时,其运算速度决定了其输入信号的数据流可达到最高速率,相应地也限定了ADC的最高采样速率;另外,数字下变频的数据精度和运算速度也影响着接收机的性能,所以,数字下变频器必须进行优化设计。

2.仿真效果预览

matlab2022a仿真结果如下:

3.核心MATLAB代码预览

fs = 16.32e6;                                                              %采样频率--转换抽样频率为:16.32MHZ
ts = 1/fs;                                                                 %周期 
num = 2.5e6;                                                               %数据长度
SNR = -15;                                                                 %新噪比
real_fc = 3.563e6;                                                         %实信号频率3563000;


for i = 1:num
    real_fc=real_fc;
    data(i) = sin(2*pi*real_fc*(i-1)*ts+pi/4)+sqrt(10^(SNR/10))*randn(1,1); %科斯塔斯环的输入信号
end


fc = 3.5628e6;                                                             %本地频率
 
n = fs/1000;                                                               %累积时间为1ms
nn = [0:n-1];
nf = floor(length(data)/n);                                                % 将输入数据分成1ms的多个数据块
wfc = 2*pi*fc;                                                             %本地信号
phi_prv = 0;                                                               %初始值
temp = 0;                                                                  %初始值
frame = 0;                                                                 %初始值
carrier_phase = 0;                                                         %初始值
phase = 0;                                                                 %初始值
 
%环路滤波器的参数
c1 = 153.7130;
c2 = 6.1498;

for frame=1:nf 
    
% 产生本地的sin和cos函数
expcol = exp(j*(wfc*ts*nn+phase));
sine = imag(expcol);   
cosine = real(expcol);

%发送的数据,将IQ两路信号进行混频
x = data((1:n)+((frame-1)*n));
%将数据转换到基带
x_sine = x.*sine;
x_cosine = x.*cosine;
01-009m

4.完整MATLAB程序

matlab源码说明_我爱C编程的博客-CSDN博客

V

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/15204.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

案例分析 丨湖仓一体助力保险企业数据战略转型升级

当下,海量数据结合前沿技术架构正在为保险业带来根本性的变革。本文以某知名保险机构为例,结合偶数行业实践经验,介绍保险企业如何利用湖仓一体技术推动数据战略转型升级。 背景介绍 在对该客户需求进行深度挖掘并横向比较行业现状后&#xf…

基于PHP+MySQL的图书分享平台

读书是提高一个人思维,最直接,最简单和最方便的方式。同时读书可以让自己的思想得到提升,保证自己一直都在时代的检前沿。图书是知识的载体,但是它也有它的特殊性。那就是他可以进行分享。很多时候,人们在购买图书并进行阅读之后,很可能就不再需要了,这个时候就可以和其他人进行…

SpringBoot完成查询和增加功能(简易版)

目录 一、环境准备 1、db 2、html 打开前端开发工具HBuilder X,把准备好的前端spboot移进去: 接着查看电脑的mvn版本,选中项目右键: npm -version npm i​ 3、java 在弹出的窗口中选择你需要导入的项目,点击ok…

python的网络请求库urllib、urllib2、urllib3、request的联系

文章目录1. 简介2. urllib3. urllib24. urllib35. requests6. 相关文章1. 简介 urllib、urllib2、urllib3、request均能通过网络访问互联网上的资源文件,它们通过使用统一资源定位符(URL)并结合re模块完成很多意想不到的操作。 urllib&…

数据库与缓存的一致性

数据库与缓存的一致性 一致性就是数据保持一致,在分布式系统中,可以理解为多个节点中数据的值是一致的。 强一致性:这种一致性级别是最符合用户直觉的,它要求系统写入什么,读出来的也会是什么,用户体验好…

Windows系统怎么加密文件夹?

Windows系统是目前使用人数最多的电脑系统,那么你知道在Windows系统上怎么加密文件夹吗?下面这篇文章,将向大家介绍两种Windows系统文件夹加密的方法,希望对你有所帮助。 方法一:使用超级加密3000进行加密 1、打开超级…

C和C++导出DLL后在Csharp中调用函数名的差异

参考链接:cc​​​​​​​在Unity中调用C代码:出现EntryPointNotFoundException的解决办法: - 知乎 (zhihu.com) __declspec(dllexport)的位置问题 - 岚之山 - 博客园 (cnblogs.com) 如果是报如下异常 System.EntryPointNotFoundExceptio…

【GlobalMapper精品教程】017:KML generator快速将坐标转为KML文件

本文介绍KML generator软件,并快速将坐标转为KML文件的使用方法,并用globalmapper中打开kml文件加以验证。本专栏配套完整的案例数据包,请打开data017.rar获取软件及数据。 文章目录 1. KML文件介绍2. kml generator软件介绍2.1 单点KML制作2.2 Excel数据KML制作2.3 文本文件…

【模电实验】【超值1 + 1】【验证性实验——分立元件“OTL“功率放大器实验】【验证性实验——分立元件稳压电源实验】

实验9-1 验证性实验——分立元件"OTL"功率放大器实验 Multisim仿真 编辑分立元件OTL功率放大器的仿真电路如下: 静态工作点的调试与仿真如下: 发射极基极集电极T1277mV998mV5.66VT26.38V6.93V12VT36.20V5.66V0V 交越失真分析如下&#xff1a…

【Linux】OS和进程概念

文章目录1.冯诺依曼体系结构2. 操作系统(Operator System )概念总结3. 进程描述进程-PCBtask_struct-PCB的一种task_ struct内容分类见见进程1.冯诺依曼体系结构 冯诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起…

微机原理实验:字符转换为ASCII码

随记! 要求: 1. 将指定数据区的字符串数据以ASCII码形式显示在屏幕上,并通过DOS功能调用完成必要提示信息的显示。 2. 在屏幕上显示自己的学号姓名信息。 3. 循环从键盘读入字符并回显在屏幕上,然后显示出对应字符的AS…

JS高级(四):正则表达式、常见的特殊字符、案例、预定义类、正则替换

JavaScript高级(四)一、正则表达式1.它有什么作用?2.创建正则表达式(1)利用RegExp对象来创建(2)利用字面量创建3.测试正则表达式二、特殊字符1.^和$匹配开头和结尾2.[ ]字符类3.量词符三、用户名…

有线热电偶温度验证系统

在本文中,我们将介绍使用有线热电偶温度验证系统的一些优势,并将虹科Ellab的E-Val™ Pro与市场上可用的传统有线系统(验证仪)进行比较分析。 虹科E-Val Pro是一个高度直观的基于电缆的系统。设计用于各种应用,如冻干、…

数字化时代,企业为什么需要商业智能BI?

数字化时代的到来,数据资产已经成为第五大生产要素,数据是企业生产、经营和决策的重要因素。为提升企业经营状况的感知能力,数据分析应运而生,数据获取的及时性、准确性也需要更加系统些,此时,成熟的商业智…

EasyExcel代码层面设置写出的Excel样式、以及拦截器策略的使用、自动列宽设置、EasyExcel默认设置详解

一、概述 虽然EasyExcel已经提供了一系列注解方式去设置样式。 但是如果没有实体类,或者想要更精确的去设置导出文件的Excel样式的时候就需要在代码层面去控制样式了。 二、使用已有拦截器自定义样式 主要步骤: 创建Excel对应的实体对象创建一个sty…

注意 ! !|95% 的应用程序中发现错误配置和漏洞

业内权威机构 Synopsys 最近发布了一项研究报告,结果表明在进行4300次测试后,发现95%的应用程序中都至少都有一个影响安全的漏洞或配置错误,其中高危漏洞占20%,严重漏洞则占4.5%。在此次研究中,82% 的测试目标是 Web 应…

调用链路上千条,如何观测 Nacos 的运行状态

作者:涌月 背景 随着近年来微服务体系发展,微服务上下游链路的越来越复杂,在阿里云的线上实践场景中,我们发现使用微服务架构的公司的业务动辄会出现上千条调用链路,排查问题代价巨大。 在这种背景下,阿…

灰鸽子木马特征值免杀

文章目录木马特征值免杀一. 木马特征值免杀0x01. 灰鸽子配置生成木马0x02. 使用MyCCL复合特征码定位器反复缩小目标进行定位0x03. 直到定位到很小的区间0x04. 用工具将文件偏移地址0009B9C3转换成内存地址0049C5C30x05. 使用OD跳转特征值语句的执行顺序以实现免杀0x06. 将修改后…

【深入浅出Spring6】第五期——循环依赖和反射机制

一、Bean的循环依赖问题 什么是循环依赖? 类似于A依赖B,B又依赖A,这样就构成了依赖闭环 需求:我们创建两个类,彼此内置对方为私有属性,我们查看是否可以正常输出 $ singleton setter产生的循环依赖 编写我…

(八)Bean的生命周期

文章目录环境什么是Bean的生命周期为什么要知道Bean的生命周期Bean生命周期之5步Bean生命周期之7步Bean生命周期之10步三个点位详解:点位1点位2点位3演示程序Bean的作用域不同,管理方式不同自己new的对象如何让Spring管理上一篇:(…