当前位置: 首页 > news >正文

IEEE802.11a中的同步

目录

  • 1.前言
  • 2.IEEE802.11a中的同步
  • 3.分组检测
  • 4.分组检测常用算法

微信公众号获取更多FPGA相关源码:
在这里插入图片描述

1.前言

  最近有其他很多事情要做,接收机这部分本身内容也更难,涉及很多理论知识,本来之前对于随机信号和假设检验就没怎么学习透彻。所以要理清这部分内容,更花时间,有时间会接着做,不过可能会出的比较慢。今天就先来对接收机部分的设计开一个头吧,内容参考《基于XILINX FPGA的OFDM通信系统基带设计》。

  首先,同步对于任何数字通信系统来说都是一个根本的任务。没有精确的同步很难对传输的数据进行可靠的恢复。因此,同步在数字基带的设计中起着至关重要的作用。

2.IEEE802.11a中的同步

  由于IEEE802.11aMAC协议本质上是随机访问网络的,且多普勒频移及发射接收机本振频率偏差容易造成载波频率偏差,因此基于IEEE802.11a协议的OFDM接收机中的同步主要包括定时同步、载波频率同步和采样时钟同步三个部分。

  • 定时同步主要包括帧(分组)同步和符号同步两种,其中帧(分组)同步用于确定数据分组的起始位置,而符号同步的目的在于正确地定出OFDM符号数据部分的开始位置,以进行正确的FFT操作。
  • 载波频率同步首先是要检测出频率偏移,然后加以补偿。频偏检测按精度要求可分为粗同步和细同步两个部分。
  • 采样时钟同步的目的在于消除接收端A/D采样的频率、相位与发送端的D/A时钟频率,以及相位的偏差对系统性能造成的影响。

3.分组检测

  分组检测是找寻数据分组起始的近似估算,是接收机工作的第一-步。其主要目的是判断接收数据的大概起始点,确定是否有新数据到达,其算法的好坏直接影响着接收机的后续工作。

  一般情况下分组检测可描述为二进制的假设检测,一个是空假设 H 0 H_0 H0,一个是二选一的
假设 H 1 H_1 H1,如下:

     H 0 H_0 H0:没有出现分组
     H 1 H_1 H1:出现分组

实际检测中通常将判决变量 m n m_n mn与预定阈值 T h T_h Th比较后判断分组检测情况:

     H 0 : m n < T h H_0:m_n < T_h H0:mn<Th 没有出现分组
     H 1 : m n ≥ T h H_1:m_n ≥ T_h H1:mnTh 出现分组

通常用检测概率 P D P_D PD和虚警概率 P F A P_{FA} PFA来衡量分组检测算法的性能,其中 P D P_D PD是正确检测到分组出现的概率, P F A P_{FA} PFA是错误判断分组出现而实际却没出现的概率,因此 P D P_D PD值要尽量地高,而 P F A P_{FA} PFA要尽可能地小。但一般情况下 P D P_D PD随着 P F A P_{FA} PFA的增加而增加,随着 P F A P_{FA} PFA的减小而减小,因此设计上必须要解决算法在这两个参数的优化中进行折中。假设检验算是比较复杂的一门学科,如果想要深入学习建议去自学相关书籍,一般在统计学以及随机信号处理或者通信原理里面都会有详细讲解。

相对于漏警(实际出现分组却未检测到)而言,虚警是较轻微的差错,这是因为如果发生虚警,虽然接收机会试图对并不存在的分组进行同步,但是一-旦进行数据完整性的检查便会发现差错;而如果一旦出现漏警,将会导致数据丢失。此外,在虚警的情况下,实际的数据分组如果在接收机还没有检测到本身错误期间就开始发送时,接收机将不能捕捉到分组,这时虚警差错也会导致数据的丢失,该情况发生概率取决于网络的负载及接收机检测到差错所需的时间。因此,为了确保好的 P D P_D PD,稍微高一些的 P F A P_{FA} PFA是可以容忍的。

4.分组检测常用算法

常用的分组检测算法包括能量检测算法、双滑动窗口能量检测算法、以及利用训练序列的同步算法等。

  • 能量检测算法:基于接收信号能量值的变化来实现分组检测,当有用数据分组信号到达时,检测到的能量会有明显的跳变。
  • 双滑动窗口能量检测算法:采用两个滑动窗口来比较接收信号能量的变化,通过比较两个窗口内的能量差异来判断数据分组的起始点。
  • 利用训练序列的同步算法:利用训练序列的周期性与相关性,通过计算当前数据与延时数据的相关性来判断是否有数据到达。IEEE802.11a通信协议中使用的Schmidl&Cox算法就是基于训练序列的同步算法。
    微信公众号获取更多FPGA相关源码:
    在这里插入图片描述

相关文章:

  • Java18新特性总结
  • kubesphere踩过的坑,持续更新....
  • 《C++ Primer》导学系列:第 4 章 - 表达式
  • [CODE:-5504]没有[SYS.SYSOBJECTS]对象的查询权限
  • 应变玻璃合金是航天产业重要弹性材料 研究开发意义重大
  • 北京十大金牌律师事务所(2024年权威高胜诉率推荐)
  • 轨迹优化 | 图解欧氏距离场与梯度场算法(附ROS C++/Python实现)
  • 模拟14位相机输出Verilog代码
  • CoppeliaSim机器人模拟器与Matlab Simulink环境
  • nodejs——原型链污染
  • web前端开发项目教学:深入剖析四大核心、五大技能、六大实战、七大建议
  • Swift Combine — Subject Publishers(PassthroughSubject CurrentValueSubject)
  • 使用ffmpeg进行音频处理
  • 牛客周赛 46 F 祥子拆团
  • UE5 发射物目标追踪
  • C++类中的特殊成员函数
  • golang 发送GET和POST示例
  • leetcode讲解--894. All Possible Full Binary Trees
  • Linux gpio口使用方法
  • Python 基础起步 (十) 什么叫函数?
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 人脸识别最新开发经验demo
  • 使用Swoole加速Laravel(正式环境中)
  • 手写一个CommonJS打包工具(一)
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • 积累各种好的链接
  • # 消息中间件 RocketMQ 高级功能和源码分析(七)
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (AngularJS)Angular 控制器之间通信初探
  • (function(){})()的分步解析
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (二)linux使用docker容器运行mysql
  • (二)构建dubbo分布式平台-平台功能导图
  • (十八)三元表达式和列表解析
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • (转)shell中括号的特殊用法 linux if多条件判断
  • ****三次握手和四次挥手
  • *2 echo、printf、mkdir命令的应用
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .NET Core/Framework 创建委托以大幅度提高反射调用的性能
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .NET/C# 使窗口永不获得焦点
  • .net对接阿里云CSB服务
  • .NET正则基础之——正则委托
  • ??如何把JavaScript脚本中的参数传到java代码段中
  • @DependsOn:解析 Spring 中的依赖关系之艺术
  • [ HTML + CSS + Javascript ] 复盘尝试制作 2048 小游戏时遇到的问题
  • [ 常用工具篇 ] AntSword 蚁剑安装及使用详解
  • [20150629]简单的加密连接.txt
  • [20170713] 无法访问SQL Server
  • [20171102]视图v$session中process字段含义