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

news2024/9/20 6:51:33

目录

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<=99
           Discriminator2(i) = mean(Discriminator(len+1:i));                
           fre2(i)           = mean(fre(len+1:i));
        else
           Discriminator2(i) = mean(Discriminator(i-99:i));
           fre2(i)           = mean(fre(i-99:i));
        end
    end         
   
    

if (sj==12 | sj==15)& ij==1

figure    
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; 

end
  
s_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));
end


figure;
semilogy(SNRss,BER,'b-o');
grid on

xlabel('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.coloradmin.cn/o/888473.html

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

相关文章

图数据库_Neo4j学习cypher语言_使用CQL_构建明星关系图谱_导入明星数据_导入明星关系数据_创建明星关系---Neo4j图数据库工作笔记0009

首先找到明星数据 可以看到有一个sheet1,是,记录了所有的关系的数据 然后比如我们搜索一个撒贝宁,可以看到撒贝宁的数据 然后这个是构建的CQL语句 首先我们先去启动服务 neo4j console 然后我们再来看一下以前导入的,可以看到导入很简单, 就是上面有CQL 看一下节点的属性

RTT(RT-Thread)IIC设备

目录 IIC设备 IIC介绍 电气连接 IIC总线时序 IIC协议 读协议 写协议 访问I2C总线设备 查找 I2C 总线设备 I2C数据读写&#xff08;数据传输&#xff09; 配置IIC步骤 IIC设备 IIC介绍 I2C&#xff08;Inter Integrated Circuit&#xff09;总线是 PHILIPS 公司开发…

【vue3】对axios进行封装,方便更改路由并且可以改成局域网ip访问(附代码)

对axios封装是在main.js里面进行封装&#xff0c;因为main.js是一个vue项目的入口 步骤&#xff1a; 在1处创建一个axios实例为http&#xff0c;baseURL是基础地址&#xff08;根据自己的需求写&#xff09;&#xff0c;写了这个在vue界面调用后端接口时只用在post请求处写路由…

【Git】(三)回退版本

1、git reset命令 1.1 回退至上一个版本 git reset --hard HEAD^ 1.2 将本地的状态回退到和远程的一样 git reset --hard origin/master 注意&#xff1a;谨慎使用 –-hard 参数&#xff0c;它会删除回退点之前的所有信息。HEAD 说明&#xff1a;HEAD 表示当前版本HEAD^ 上…

深入探究Linux黑客渗透测试:方法、工具与防御

&#x1f482; 个人网站:【工具大全】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 引言 随着信息技术的迅…

【idea工具报错】程序包sun.misc不存在 的问题如何解决

【idea工具报错】程序包sun.misc不存在 的问题如何解决 idea工具出现下面这个报错 &#xff1a; java: 程序包sun.misc不存在 赤裸裸的报错&#xff0c;但是idea在编译代码 build的时候就报上面这个错误。 先说我的解决办法吧&#xff1a; 上面第3步这里全部改成jdk1.8的配置…

数据血缘深度透析

学习数据血缘也好几个月了&#xff0c;网上的资料也看了很多&#xff0c;有了一些自己的理解&#xff0c;所以归纳一下&#xff0c;分享 出来&#xff0c;欢迎批评指正&#xff01; 数据血缘是什么&#xff1f; 我觉得刚开始学习数据血缘肯定会有这样一个问题。比较官方、比较…

Java线程池的七个参数

线程池的构造函数有7个参数&#xff0c;分别是corePoolSize、maximumPoolSize、keepAliveTime、unit、workQueue、threadFactory、handler。 一、corePoolSize 核心线程数&#xff0c;是指线程池中长期存活的线程数。int 类型。可以理解为长期存在的、“常驻的”线程。就好…

【OpenGauss源码学习 —— 列存储(创建表)】

列存储 什么是列存储&#xff1f;语法实现语法格式参数说明示例源码分析&#xff08;创建表&#xff09;语法层&#xff08;Gram.y&#xff09;子模块&#xff08;utility.cpp&#xff09; 总结 声明&#xff1a;本文的部分内容参考了他人的文章。在编写过程中&#xff0c;我们…

设置Windows主机的浏览器为wls2的默认浏览器

1. 准备工作 wsl是可以使用Windows主机上安装的exe程序&#xff0c;出于安全考虑&#xff0c;默认情况下改功能是无法使用。要使用的话&#xff0c;终端需要以管理员权限启动。 我这里以Windows Terminal为例&#xff0c;介绍如何默认使用管理员权限打开终端&#xff0c;具体…

煤矿调度IP语音对讲广播模块一键求助对讲矿用调度通信系统SIP语音对讲求助终端

硬件接口描述 SV-2101VP/ SV-2103VP系列网络音频模块&#xff0c;所有外部连接采用端子&#xff0c;电源采用2.0mm的端子&#xff0c;网络采用标准RJ45连接器&#xff0c;其他都是1.25mm的连接器。 端口类型定义 P ———— 电源 AI ———— 模拟输入&#xff08;在这里是音…

diffusion model classifier-guided与classifier-free的区别

classifier-guided 训练阶段 diffusion model 和 classifier分开训练。 diffusion model的数据训练数据为 classifier的数据训练数据为 生成图片阶段 每一个时间步的降噪中会用当前时间步图片在classifier的类别梯度来调整均值。&#xff08;如上图所示&#xff09; 之前写…

智慧云实训室建设方案

一、智慧云系统概述 智慧云系统是一种基于云计算技术和虚拟化技术的系统&#xff0c;用于实现各种仿真和模拟任务。它可以提供强大的计算能力和资源管理&#xff0c;为用户提供灵活、高效、可扩展的仿真环境。 该系统通常由一组服务器、网络和存储设备组成&#xff0c;这些设备…

Vue轻量级富文本编辑器-Vue-Quill-Editor

效果图&#xff1a; 下载Vue-Quill-Editor npm install vue-quill-editor --save 下载quill&#xff08;Vue-Quill-Editor需要依赖&#xff09; npm install quill --save vue项目中使用代码 <template><div class"edit_container"><quill-edito…

linux系统安装nginx操作步骤

话不多说&#xff0c;直接上教程 一&#xff1a;安装依赖 输入命令&#xff1a;yum install -y gcc-c pcre pcre-devel zlib zlib-devel openssl openssl-devel 二&#xff1a;下载nginx安装包 输入命令&#xff1a;wget http://nginx.org/download/nginx-1.24.0.tar.gz 用…

Flink内核源码解析

Flink内核源码 Flink RPC 网络通信框架Akka 以往&#xff0c;我们接触过非常多的大数据技术栈相关的框架&#xff0c;用的比较多的大数据相关组件&#xff0c;常用的RPC实现技术如下&#xff1a; 技术组件RPC实现HadoopNIO Protobuf (Protobuf即Protocol Buffers&#xff0…

iOS设计规范是什么?都有哪些具体规范

iOS设计规范是苹果为移动设备操作系统iOS制定的设计指南。iOS设计规范的制定保证了苹果应用在外观和操作上的一致性和可用性&#xff0c;从而提高了苹果界面设计的用户体验和应用程序的成功性。本文将从七个方面全面分析iOS设计规范。 1.iOS设计规范完整版分享 由「即时设计」…

VS2019+Qt5.15.2 编译 QtWebEngine(带音视频解码)

前言 QtWebEngine 是 Qt 框架的一部分&#xff0c;用于构建现代 Web 浏览器功能。本篇教程将向您展示如何在 Visual Studio 2019 中编译 QtWebEngine 5.15.2 源码&#xff0c;并配置以支持音视频解码功能。 准备工作 1、源码下载 2、源码修改&#xff0c;参考Qt Code Review…

Docker基础入门:镜像、容器导入导出与私有仓库搭建

Docker基础入门&#xff1a;镜像导入导出与私有仓库搭建 一、 Docker镜像、容器的导入和导出1.1、Docker镜像的导出1.2、Docker镜像的载入1.3、Docker容器的导出1.4、Docker容器的导入 二、 镜像和容器导出和导入的区别:三、commit操作_本地镜像发布到阿里云3.1、commit操作有关…

【正点原子STM32连载】第十二章 串口通信实验 摘自【正点原子】APM32F407最小系统板使用指南

1&#xff09;实验平台&#xff1a;正点原子stm32f103战舰开发板V4 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id609294757420 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html# 第十…