基于OFDM+64QAM系统的载波同步matlab仿真,输出误码率,星座图,鉴相器,锁相环频率响应以及NCO等

目录

1.算法运行效果图预览

2.算法运行软件版本

3.部分核心程序

4.算法理论概述

2.1 OFDM原理

2.2 64QAM调制

2.3 载波同步

5.算法完整程序工程


1.算法运行效果图预览

 

2.算法运行软件版本

MATLAB2022a

3.部分核心程序

............................................................................
for ij=1:Nframe      [sj,ij]%64个符号的训练序列msg1          = round(63*rand(64,1));msg2          = repmat(msg1,2,1); msg2_64QAM    = qammod(msg2,Morder);dataPre       = round(63*rand(36,1));  dataPre_64QAM = qammod(dataPre,Morder);  %数据   signal        = round(63*rand(nsym-2*64-36,1));      signal_64QAM  = qammod(signal,Morder);Tx_din        = [dataPre;msg2;signal];Tx_bin        = de2bi(Tx_din,6,'left-msb');Tx_bin2       = Tx_bin.';%发送数据的二进制数Tx_bin3       = reshape(Tx_bin2,[],1);   dataTxSig     =[dataPre_64QAM;msg2_64QAM;signal_64QAM];dataTx        = dataTxSig.*Carrier.';
..............................................................................   %积分滤波器PLL_Phase_Part(i)= Discriminator(i)*C1;PLL_Freq_Part(i) = Discriminator(i-1)*C2+PLL_Freq_Part(i-1);Freq_Control(i)  = PLL_Phase_Part(i)+PLL_Freq_Part(i);NCO_Phase(i)     = NCO_Phase(i-1)+Freq_Control(i-1);fre(i)           = NCO_Phase(i)/(2*pi*i)*fs;%平滑处理if i-len<=99Discriminator2(i) = mean(Discriminator(len+1:i));                fre2(i)           = mean(fre(len+1:i));elseDiscriminator2(i) = mean(Discriminator(i-99:i));fre2(i)           = mean(fre(i-99:i));endend         if (sj==12 | sj==15)& ij==1figure    
subplot(2,2,1)
plot(fre2(len+1:nsym)); 
grid on;
title('锁相环频率响应');subplot(2,2,2)
plot(NCO_Phase(len+1:nsym)); 
grid on;
title('NCO输出相位');subplot(2,2,3)
plot(Discriminator2(len+1:nsym));  
title('鉴相器输出');  
grid on;subplot(2,2,4)
plot(dataPhaEst(2000:end),'b*');  
title('锁相环之前星座图');   
grid on;figure
plot(Signal_PLL(2000:end),'r.');  
title('锁相环之后星座图');   
grid on; ends_pll=Signal_PLL; 
dRx2=qamdemod(s_pll,Morder);
dRx1=reshape(dRx2,[],1);
dRx_bit1=de2bi(dRx1,6,'left-msb'); 
dRx_bit2=dRx_bit1.';
dRxbit=reshape(dRx_bit2,[],1);for m=(1200+1):nsym if dRxbit(m)~=Tx_bin3(m)  err_bit(ij)=err_bit(ij)+1;       end                         
end                                    
end                                
sum_bit_err=sum(err_bit);
BER(sj)=sum_bit_err/(Nframe*(4*nsym-300*4));
endfigure;
semilogy(SNRss,BER,'b-o');
grid onxlabel('SNR');
ylabel('error');
0046

4.算法理论概述

        正交频分复用(OFDM)是一种在现代通信系统中广泛使用的调制技术,它具有高效的频谱利用和抗多径衰落等特点。64QAM(64-ary Quadrature Amplitude Modulation)是一种调制方式,可以在每个符号中传输更多的位信息。在OFDM系统中,保持载波同步对确保数据传输的可靠性至关重要。

2.1 OFDM原理

      OFDM将高速数据流划分为多个较低速的子载波,这些子载波之间互相正交,从而降低了子载波之间的干扰。每个子载波可以独立地调制和解调,提高了抗多径衰落和频率偏移的能力。

2.2 64QAM调制

     64QAM是一种高阶调制方式,每个符号可以传输6个比特(2^6=6426=64种可能的组合)。每个符号的相位和幅度有64种可能的组合,使得64QAM适合传输更多的信息,但也对信号质量要求更高。

2.3 载波同步

       在OFDM系统中,准确的载波同步是至关重要的。载波同步包括两个方面:频率同步和相位同步。频率同步旨在校准发送端和接收端的本地振荡器,以消除频率偏移。相位同步则调整接收信号的相位,以最大化解调性能。

5.算法完整程序工程

OOOOO

OOO

O

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

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

相关文章

【从零学习python 】31.深入理解Python中的高阶函数和闭包

文章目录 高阶函数定义一个变量指向函数高阶函数函数做为另一个函数的参数函数作为另一个函数的返回值 闭包函数嵌套什么是闭包修改外部变量的值原因分析解决方案 进阶案例 高阶函数 在Python中&#xff0c;函数其实也是一种数据类型。 def test():return hello worldprint(t…

NestJs 中使用 mongoose

在 NestJS 中链接 MongoDB 有两种方法。一种方法就是使用TypeORM来进行连接&#xff0c;另外一种方法就是使用Mongoose。 此笔记主要是记录使用Mongoose的。所以我们先安装所需的依赖&#xff1a; npm i nestjs/mongoose mongoose安装完成后&#xff0c;需要在AppModule中引入…

SpringBoot后端服务开启Https协议提供访问(使用阿里云资源)

目录 概述 申请/下载证书 部署证书 本地测试访问 服务器部署访问 最后/扩展 总结 概述 本篇博客说明如何将SpringBoot项目开启Https协议提供访问。 博文以步骤【申请/下载证书】&#xff0c;【部署证书】&#xff0c;【本地测试访问】&#xff0c;【服务器部署访问】 &a…

SIP/VoIP之常见的视频问题

除了语音通话外&#xff0c;视频通话也是SIP协议通话中重要的功能&#xff0c;在实际应用中&#xff0c;经常会遇到一些视频问题&#xff0c;如下&#xff08;以h264为例&#xff09; 一、 己方未显示对方视频图像 排查方法&#xff1a; 查看网络抓包中有没有发给已方的视频…

LORA开发板采集温湿度数据,连接PC上位机显示和液晶屏显示

一、准备材料 准备以下板子和器件 Lora开发板x2 USB数据线x2 OLED 屏幕x2 StLink下载器x1 母对母杜邦线x3 DHT11 x2 二、设备连接 如图所示先将OLED 屏幕插入到开发板中 接着按照图中所示的&#xff0c;将串口一以及lora的拨码开关拨到指定方向 接着将USB数据线一端插入到…

SQL Server用sql语句添加列,添加列注释

SQL Server用sql语句添加列&#xff0c;添加列注释 微软文档&#xff1a; https://learn.microsoft.com/zh-cn/sql/relational-databases/tables/add-columns-to-a-table-database-engine?viewsql-server-ver15 alter table article add RedirectURL varchar(600) nu…

(七)Unity VR项目升级至Vision Pro需要做的工作

Vision Pro 概述 定位为混合现实眼镜&#xff0c;对AR支持更友好 无手柄&#xff0c;支持手&#xff08;手势&#xff09;、眼&#xff08;注视&#xff09;、语音交互 支持空间音频&#xff0c;相比立体声、环绕声更有沉浸感和空间感 支持VR/AR应用&#xff0c;支持多种应用模…

八字精批API接口

接口平台&#xff1a;https://api.yuanfenju.com/ 开发文档&#xff1a;https://doc.yuanfenju.com/ 支持格式&#xff1a;JSON 请求方式&#xff1a;HTTP POST <?php//密钥 $api_secret "wD******XhOUW******pvr"; //请求网关 $gateway_host_url "ht…

FPGA应用学习笔记-----复位电路(二)和小结

不可复位触发器若和可复位触发器混合写的话&#xff0c;不可复位触发器是由可复位触发器馈电的。 不应该出现的复位&#xff0c;因为延时导致了冒险&#xff0c;异步复位存在静态冒险 附加素隐含项&#xff0c;利用数电方法&#xff0c;消除静态冒险 这样多时钟区域还是算异步的…

【Docker】如何在设计 dockerfile 过程中,设置容器启动后的定时任务

如何在设计 dockerfile 过程中&#xff0c;设置容器启动后的定时任务 jwensh 2023.08.14 文章目录 如何在设计 dockerfile 过程中&#xff0c;设置容器启动后的定时任务1. 基于 alpine 设计 dockerfile 过程中&#xff0c;设置容器启动后的定时任务2. 基于 CentOS 设计 Dockerf…

深度学习实战基础案例——卷积神经网络(CNN)基于SqueezeNet的眼疾识别|第1例

文章目录 前言一、数据准备1.1 数据集介绍1.2 数据集文件结构 二、项目实战2.1 数据标签划分2.2 数据预处理2.3 构建模型2.4 开始训练2.5 结果可视化 三、数据集个体预测 前言 SqueezeNet是一种轻量且高效的CNN模型&#xff0c;它参数比AlexNet少50倍&#xff0c;但模型性能&a…

Linkedin为什么要退出中国市场?

在迅速发展的时代,职场也在不断变换,只有不断地提升专业技能和进行培训,才能在职场中获得成功。Linkedin作为一家专注于职业发展的平台,专业的学习体验以及热门技能赢得了人们青睐。然而遗憾的是这个曾经让人备受青睐的平台,如今却在中国市场中黯然落幕,究竟是何种原因让曾经风…

大数据Flink(六十一):Flink流处理程序流程和项目准备

文章目录 Flink流处理程序流程和项目准备 一、Flink流处理程序的一般流程

Springboot 设置统一的请求返回格式

现在开发过程中主要采用前后端分离的方式进行开发测试&#xff0c;也就是前端封装请求&#xff0c;后端提供标准的API接口服务。一般现在json 格式受到开发者们的青睐&#xff0c;学习过程中我们可以设置接口的返回类型&#xff0c;那么怎么做到设置统一的返回格式呢&#xff1…

数据在内存中的存储(二进制形式存储)

计算机要处理的信息是多种多样的&#xff0c;如数字、文字、符号、图形、音频、视频等&#xff0c;这些信息在人们的眼里是不同的。但对于计算机来说&#xff0c;它们在内存中都是一样的&#xff0c;都是以二进制的形式来表示。 要想学习编程&#xff0c;就必须了解二进制&…

Spark SQL优化:NOT IN子查询优化解决

背景 有如下的数据查询场景。 SELECT a,b,c,d,e,f FROM xxx.BBBB WHERE dt ${zdt.addDay(0).format(yyyy-MM-dd)} AND predict_type not IN ( SELECT distinct a FROM xxx.AAAAAWHERE dt ${zdt.addDay(0).format(yyyy-MM-dd)} ) 分析 通过查看SQL语句的执行计划基本…

Dubbo基础学习(笔记一)

目录 第一章、概念介绍1.1&#xff09;什么是RPC框架1.2&#xff09;什么是分布式系统1.3&#xff09;Dubbo概述1.3&#xff09;Dubbo基本架构 第二章、服务提供者2.1&#xff09;目录结构和依赖2.2&#xff09;model层2.3&#xff09;service层2.4&#xff09;resources配置文…

ARTS 挑战打卡的第8天 ---volatile 关键字在MCU中的作用,四个实例讲解(Tips)

前言 &#xff08;1&#xff09;volatile 关键字作为嵌入式面试的常考点&#xff0c;很多人都不是很了解&#xff0c;或者说一知半解。 &#xff08;2&#xff09;可能有些人会说了&#xff0c;volatile 关键字不就是防止编译器优化的吗&#xff1f;有啥好详细讲解的&#xff1…

HashMap底层相关内容

HashMap的底层结构&#xff1a; 1.7之前 数组加链表&#xff0c;当两个值进行插入的时候 采用头插法进行插入&#xff0c;可能会造成死循环 1.8之后 数组加链表/红黑树&#xff0c;当两个值进行插入的时候&#xff0c;采用尾插法进行插入&#xff0c;不会造成死循环 HashMap底…

xml转map工具类

背景&#xff1a;最近遇到接口返回是xml&#xff0c;所以需要整一个转换的工具类&#xff0c;方便后续其他xml处理。 依赖引入&#xff1a; <dependency><groupId>dom4j</groupId><artifactId>dom4j</artifactId><version>1.1</versi…