分组检测常用算法

news2024/12/26 21:55:44

目录

  • 4.分组检测常用算法
    • 4.1 接收信号能量检测
    • 4.2 双滑动窗口分组检测
    • 4.3 采用前导结构进行分组检测
  • 总结

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

4.分组检测常用算法

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

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

4.1 接收信号能量检测

测量接收信号的能量是一种最简单的分组检测算法。当没有数据分组到来时,接收信号 r n r_n rn中只有噪声,即 r n = w n r_n=w_n rn=wn;而当数据分组到来时,接收信号 r n r_n rn中加入了信号的成分,即 r n = s n + w n r_n=s_n+w_n rn=sn+wn

因此,可以根据接收信号能量值的变化进行分组检测。为了避免突发大噪声的影响,判决变量 m n m_n mn,选为接收信号能量在窗口长度L下的累积和,其可表示为
m n = ∑ k = 0 L − 1 r n − k r ∗ n − k = ∑ k = 0 L − 1 ∣ r n − k ∣ 2 m_n=\sum_{k=0}^{L-1}r_{n-k}r{^*}_{n-k}=\sum_{k=0}^{L-1}|r_{n-k}|^2 mn=k=0L1rnkrnk=k=0L1rnk2

其实, m n m_n mn是接收信号能量的移动求和,该类型求和也叫滑动窗口,其基本原理是在每一个时刻n,求和会加入一个新的数值同时丢弃一个旧的数值。下式即为这种移动递归求和的计算:
m n + 1 = m n + ∣ r n + 1 ∣ 2 − ∣ r n − L + 1 ∣ 2 m_{n+1}=m_n+|r_{n+1}|^2-|r_{n-L+1}|^2 mn+1=mn+rn+12rnL+12
如下图所示是IEEE 802. 11a数据分组在信噪比为15dB、滑动窗口长度L=32下的判决变量 m n m_n mn值的变化情况。使用Matlab仿真时,开始一段时间假设只有噪声,在n=500的时刻发射机开始发送数据分组。可以看出,使用滑动窗口能量检测的方法,在有数据分组到达时,接收能量信号将发生明显的跳变。为了进行是否有分组达到的判断,接收机中进行能量判决的阈值可以设定在10到20之间。

接收信号能量检测

这部分的实现可以参考前面的文章,基于FPGA的任意点滑动平均(滑动窗长度和数据位宽参数化,例化时参数可设置)实现思路都是一样的,不过是这里只用求和,而不必求平均,稍微修改一下即可。

这种滑动窗口能量检测的方法虽然比较简单,但它有一个重大缺陷,即判断阈值需要由接收信号的能量而定。当接收机搜索数据分组时,接收信号中只有噪声,而噪声的功率值一般是不可知的,并且当接收机调整射频放大器设置或者在所需系统内出现同频干扰的波动,都会使其发生变化。当接收数据分组到来时,接收信号的强度依赖于发射机的功率设置以及发射机和接收机之间的传播损耗。如此种种的不确定因素是很难固定–个用来确定数据分组起始点的判断阈值的。事实上,凡是要使用阈值进行判断的地方,阈值的选取都是一个较为困难的问题。

4.2 双滑动窗口分组检测

双滑动窗口分组检测算法,基本原则是通过计算两个连续滑动窗口的接收能量的比值作
为判决变量 m n m_n mn。下图说明了窗口A、B和接收数据分组判决变量 m n m_n mn的情况。

双滑动窗口分组检测示意图

图中,窗口A和窗口B在向右滑动的过程中是相对静止的。当没有数据分组到来时,两个窗口中都只包含了噪声,由于在理想情况下噪声的能量是相等的,因此得到的响应是平坦的。当数据分组边沿到达窗口A时,A中的能量将一直增加到整个窗口都包含进数据分组。相应的,判决变量 m n m_n mn,也将跟着增加并达到一个峰值(峰值点对应窗口A中刚好全部有数据而窗口B中尚未有数据的时刻)。过了这一时刻,窗口B开始包含信号能量,判决变量 m n m_n mn开始减小,当B也全部有数据分组通过时,判决变量 m n m_n mn,又恢复平坦。事实上,判决变量 m n m_n mn,可以看成是微分器,当输人信号能量变化剧烈时它的值会比较大。可以根据判决变量 m n m_n mn的变
化进行是否有分组到达的判断,当 m n m_n mn超过某个阈值时,即可判断有新分组到达。

窗口A与窗口B数值的计算方法如下:
a n = ∑ m = 0 M − 1 r n − m r ∗ n − m = ∑ m = 0 M − 1 ∣ r n − m ∣ 2 a_n=\sum_{m=0}^{M-1}r_{n-m}r{^*}_{n-m}=\sum_{m=0}^{M-1}|r_{n-m}|^2 an=m=0M1rnmrnm=m=0M1rnm2
b n = ∑ l = 0 L r n + l r ∗ n + l = ∑ l = 0 L ∣ r n + l ∣ 2 b_n=\sum_{l=0}^{L}r_{n+l}r{^*}_{n+l}=\sum_{l=0}^{L}|r_{n+l}|^2 bn=l=0Lrn+lrn+l=l=0Lrn+l2
式中: a n 、 b n a_n、b_n anbn,实际上表示的都是滑动窗口内的能量,因而可以采用与能量检测窗口相同的递归
方式进行计算简化,然后将 a n 、 b n a_n、b_n anbn相除得到判决变量:
m n = a n b n m_n= {{a_n} \over {b_n}} mn=bnan

下图所示是IEEE 802. 11a数据分组在信噪比15dB、滑动窗口长度L=32下,利用双滑动窗口检测算法的 m n m_n mn值变化情况。可以发现 m n m_n mn的值是独立于接收总功率的;峰值过后,虽然接收能量的值增加了,但是响应将回复到峰值前的水平。进一步考虑,在数据分组没有到达时,两个滑动窗口中都是噪声,理想情况下 m n m_n mn取值为1;而在数据分组充满两个窗口后 m n m_n mn取值也近似为1。

双滑动窗口分组检测

4.3 采用前导结构进行分组检测

一般通信系统的工程原则是接收机要充分利用所有可以利用的信息,这就意味着已知的前导结构要并入算法中考虑。对于IEEE 802.1la系统,其前导结构正是为了帮助同步而设计的,而且标准上还给出了向导指南,如图所示。

IEEE 802.1la前导结构

T1到T10为长度为16的短训练序列,这16个短训练序列是一样的(即训练序列是周期结构的),可完成分组检测、自动增益控制(AGC)、分集选择、粗频偏估计和符号同步等功能。图中,LTS1和LTS2同为长度为64的长训练序列符号,可用于信道估计和细频偏估计等。短训练符号和长训练符号之间的GI2是长度32取样的循环前缀(CP),是为了保证长训练符号不受短训练符号码间干扰(ISI)的影响。
前导结构实现了接收机采用一种非常简单有效的分组检测算法,该算法利用了前导中短训练符号的周期性,称为延时相关算法。其信号流程如下图所示。

延时相关算法

窗口C为接收信号与其延时D个时刻的相关系数,称为延时相关;延时 z − D z^{-D} zD等于前导起始的周期,对于IEEE802.11a,D=16,即短训练符号的周期;窗口P计算相关系数窗口期间内接收信号的能量,用于判决统计的归一化处理,使得判决变量 m n m_n mn,独立于接收功率。

延时相关 C n C_n Cn的值如下:
C n = ∑ k = 0 L − 1 r n − k r ∗ n − k − D C_n=\sum_{k=0}^{L-1}r_{n-k}r{^*}_{n-k-D} Cn=k=0L1rnkrnkD

上式为当前接收到的L个数据与D个时刻前收到的L个数据进行的互相关。
接收信号能量 P n P_n Pn的值可表示为:
P n = ∑ k = 0 L − 1 r n − k − D r ∗ n − k − D = ∑ k = 0 L − 1 ∣ r n − k − D ∣ 2 P_n=\sum_{k=0}^{L-1}r_{n-k-D}r{^*}_{n-k-D}=\sum_{k=0}^{L-1}|r_{n-k-D}|^2 Pn=k=0L1rnkDrnkD=k=0L1rnkD2

则延时相关算法的判决变量 m n m_n mn为:
m n = ∣ C n ∣ P n = ∑ k = 0 L − 1 r n − k r ∗ n − k − D ∑ k = 0 L − 1 ∣ r n − k − D ∣ 2 m_n={|C_n| \over P_n}={\sum_{k=0}^{L-1}r_{n-k}r{^*}_{n-k-D} \over \sum_{k=0}^{L-1}|r_{n-k-D}|^2} mn=PnCn=k=0L1rnkD2k=0L1rnkrnkD

下图所示为IEEE802.11a数据分组在15dB信噪比条件下,采用延时相关算法进行分组检测时,判决变量 m n m_n mn的变化情况。当接收的信号只有噪声时,理想情况下输出的延时相关值 C n C_n Cn为0,因为噪声取样值的互相关系数为0,因此在数据分组开始前 m n m_n mn值很小;当接收到第2个短训练符号时, C n C_n Cn为相同短训练符号的互相关系数 m n m_n mn开始明显增加,并且出现一个持续9个短训练符号长度的相关平坦。

延时相关分组检测算法

虽然延时相关算法可以较好的实现分组检测,但是在低信噪比条件下,判决变量 m n m_n mn可能由于受到信道中较大随机噪声的影响而超过预先设定的门限值,从而错误的判断有分组到来。因此,为了降低这种低信噪比条件下的高差错虛警概率 P F A PFA PFA,提高分组检测算法的可靠性,可以在延时相关算法的基础上增加保持长度的要求,即判决变量要在预设门限值之上保持一定的采样周期数才判决有分组的到来,从而避免了较大随机噪声的影响。

延时相关加长度保持的分组检测算法

下图所示为采用延时相关算法及延时相关加长度保持算法在AWGN信道和多径信道下的正确检测概率的仿真图。可以明显发现,采用延时相关加长度保持的算法较大程度上提高分组检测的可靠性。

AWGN信道和多径信道下分组检测算法性能比较

总结

对上述几种分组检测算法进行一个简单的总结:能量检测算法虽然简单但是计算出的能量值容易受到发射、信道、噪声等外界因素影响,阈值不好确定,估计误差较大;双滑动窗口算法通过计算出两个窗口的能量而产生一个三角形响应.该算法不需要人T确定阈值(只需取三角形的最大值),其性能要好于能量检测算法;延时相关分组检测算法是利用发射信号中前导结构中短训练符号的周期性而产生的相关,同上面两种算法比较,这种相关性不易受外界因素如发射功率、信道、噪声等影响,具有更好的性能,而延时相关加长度保持算法具有更高的可靠性。因此,在设计中可以选择延时相关加长度保持的算法。
微信公众号获取更多FPGA相关源码:
在这里插入图片描述

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

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

相关文章

MySQL8新特性实现无限层级依赖SQL查询

前言 看IT老齐视频,学到了一招MySQL8的新特性,特此记录一下,大家可以去看原视频: 【IT老齐173】学到就是赚到,利用MySQL8新特性实现无限层级依赖SQL查询 准备 MySQL至少需要8以上的版本哦! 1.创建表 C…

石墨消解仪 石墨炉加热 热传导率高 平均温差小

GS系列石墨消解仪是一款专为实验室加热设计制造的加热装置,可用于样品加热、培养、烘干。采用国际先进技术,具有消解快速、高效、节能、方便等优点,采用数字电路PID方式控制温度,更加准确。高纯优质石墨加热载体,表面喷…

代码随想录——电话号码的字母组合(Leetcode17)

题目链接 回溯 class Solution {List<String> res new ArrayList<String>();StringBuilder str new StringBuilder();HashMap<String, String> Sites new HashMap<String, String>();public List<String> letterCombinations(String digit…

《汇编语言程序设计》例子出现segmentation fault

照着例子抄写了一下&#xff0c;直接用的 gcc 编译&#xff0c;源码如下&#xff0c;因为不支持 pushl&#xff0c;所以改成了 pushq #cpuid.s View the CPUID Vendor ID string using C library calls .section .data output:.asciz "The processor Vendor ID is %s \n&…

揭秘:边缘智能网关P1600在智慧灯杆上的应用

智慧灯杆作为智慧城市建设的重要组成部分&#xff0c;集成了照明、通信、安防、环境监测等多重功能&#xff0c;是实现城市智能化的关键载体。边缘智能网关P1600在这一系统中扮演着至关重要的角色&#xff0c;它不仅连接和管理各种传感器和设备&#xff0c;还负责数据的采集、处…

python操作注册表没有权限(error:5拒绝访问)

在IDE中运行 1. Openkey( , , accesswinreg.KEY_ALL_ACCESS) 2. 管理员方式运行Vscode或PyCharm 如果要打包成应用呢&#xff1f; 怎么处理权限问题&#xff1f;

从Instance classifier重新思考多实例学习

弱监督的WSI分类通常被形式化为多实例学习&#xff08;MIL&#xff09;问题&#xff0c;其中每张slide都被视为一个bag&#xff0c;从中切出的patch被视为实例。现有的方法要么通过伪标记训练实例分类器&#xff0c;要么通过注意力机制将实例特征聚合为bag特征&#xff0c;然后…

【递归、搜索与回溯】综合练习二

综合练习二 1.组合2.目标和3.组合总和4.字母大小写全排列 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; 你的支持是对我最大的鼓励&#xff0c;我们一起努力吧!&#x1f603;&#x1f603; 1.组合 题目链接&#xff1a;77. 组…

电脑剪贴板历史记录查看,让你的信息管理更加有序!

剪贴板是电脑中一个非常实用的功能&#xff0c;允许用户在不同的应用程序之间复制和粘贴文本、图像、文件等内容。然而&#xff0c;默认情况下&#xff0c;剪贴板只能存储最近一次复制的内容&#xff0c;这可能会限制我们的工作效率。幸运的是&#xff0c;电脑剪贴板历史记录查…

MySQL中实现行列转换的示例

在 MySQL 中进行行列转换&#xff08;即&#xff0c;将某些列转换为行或将某些行转换为列&#xff09;通常涉及使用条件逻辑和聚合函数。虽然 MySQL 没有像 Oracle/SQL Server 中的 PIVOT 和 UNPIVOT 那样的直接功能&#xff0c;但你可以通过结合 CASE 语句、UNION 或 UNION AL…

c语言哈夫曼中英文混合编码

一.需求文档 c语言实现哈夫曼编码 1.中文编码 2.英文编码 3.中英文混合编码 4.从文件读取进行编码 5.编码生成编码文件 6.从生成的编码文件进行解码 二.运行截图

香港优才计划中介避坑,深圳哪家优才中介有实力?

随着香港优才计划取消配额限制以来&#xff0c;优才计划递交申请量骤增&#xff0c;许多DIY的申请人在递交申请后&#xff0c;长时间未能收到审批结果&#xff0c;甚至有人等待了12个月之久仍对审批进展一无所知。 而一些有中介协助的申请人&#xff0c;在等待审批的过程中&am…

如何在WIndows虚拟机安装 macOS 黑苹果系统?

在本教程中&#xff0c;我们将介绍如何在虚拟机上安装 macOS 黑苹果系统。黑苹果系统是非苹果公司官方支持的 macOS 系统的非官方版本&#xff0c;可以在普通 PC 上运行。请注意&#xff0c;安装黑苹果系统可能违反苹果的许可协议&#xff0c;请自行承担风险。参考视频教程&…

二、C#基本语法

C#是一种面向对象的编程语言。在面向对象的程序设计方法中&#xff0c;程序由各种相互交互的对象组成。相同种类的对象通常具有相同的类型&#xff0c;或者说&#xff0c;是相同的class中。 例如&#xff0c;以rectangle&#xff08;矩形&#xff09;对象为例。它具有length和…

有声读物管理平台Booksonic-Air

老苏最近在听评书&#xff0c;所以想找个软件来管理和收听&#xff0c;找了一圈&#xff0c;感觉 Booksonic-Air 可能能满足老苏的需求。 什么是 Booksonic-Air &#xff1f; Booksonic-Air 是一个用于流式传输有声读物的服务器&#xff0c;是原始 Booksonic 服务器的后继者。…

docker镜像拉取K8s的calico,Pod报错Init:ImagePullBackOff及kubekey生成离线包报错error: Pipeline[ArtifactExportpipe的解决

配置k8s集群出现问题 起初以为是版本问题&#xff0c;最后比对了一下发现没有问题。使用 kubectl describe calico-node-mg9xh -n kube-system命令查看发现docker pull 镜像失败&#xff0c;但是docker国内镜像源早就配置过了。 猜测Docker的缓存可能会导致拉取镜像失败。尝试…

深入探究MySQL的B+树索引

一、索引概述 在MySQL中&#xff0c;索引是一种数据结构&#xff0c;它可以帮助数据库系统更快地检索数据。索引可以比作一本书的目录&#xff0c;它可以让我们不必翻阅整本书就能找到所需的信息。没有索引&#xff0c;MySQL必须从头到尾扫描整个表来找到相关的行&#xff0c;…

Hack The Box-Editorial

总体思路 SSRF->敏感信息泄露->CVE-2022-24439 信息收集&端口利用 nmap -sSVC editorial.htb目标机器开放22、80和1027端口&#xff0c;这里先查看80端口 进去后是一个图书收集界面&#xff0c;对网站进行扫描 dirsearch -u http://editorial.htb逐一访问 about界…

数据分析:微生物组差异丰度方法汇总

欢迎大家关注全网生信学习者系列&#xff1a; WX公zhong号&#xff1a;生信学习者Xiao hong书&#xff1a;生信学习者知hu&#xff1a;生信学习者CDSN&#xff1a;生信学习者2 介绍 微生物数据具有一下的特点&#xff0c;这使得在做差异分析的时候需要考虑到更多的问题&…

示例:WPF中应用MarkupExtention自定义IValueConverter

一、目的&#xff1a;应用MarkupExtention定义IValueConverter&#xff0c;使得应用起来更简单和高效 二、实现 public abstract class MarkupValueConverterBase : MarkupExtension, IValueConverter{public abstract object Convert(object value, Type targetType, object …