0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于蓝牙spec5.3中“白话”和“去白话

电子工程师 来源:嵌入式开发AIoT 作者:嵌入式开发AIoT 2022-08-08 16:40 次阅读

一、前言

今天分享的话题是在蓝牙spec5.3中有关于“白话”和“去白话”这一名词,做过这方面研究的相信都有所了解,在BLE中bit stream processing的处理流程就有包含这一过程,如下图所示。其最终终目的很简单就是为了让发视和接收的数据不要重复的出现0和1,降低数据的冗余性。例如:0b0000000或0b1111111,那其原理究竟是什么呢,小编头铁非要一探究竟!

23080866-16c0-11ed-ba43-dac502259ad0.png

二、何为白话

“白化”这个词最早来源于信号处理领域,跟其中最常见的一种噪声——白噪声有很大的联系。在信号处理理论中,白噪声指的是一种在不同频率都有相同功率的随机信号,即其功率谱密度为常数,功率与频率无关。“白噪声”这个名字来源于白光,白光包含了光谱中所有的颜色,其功率谱密度也呈平坦状,类似地,“白噪声”这种噪声中包含了所有频率的噪声,因此被冠上了“白”的称号。其他不满足该功率谱密度特性的噪声也被称为有色噪声,类似于非白光的其他颜色光。

上述关于白色信号(白光,白噪声)的定义是一个通俗的定义,其严格数学定义为:一个随机向量w称为一个白色随机向量当且仅当其平均值函数为0且自相关函数为一个单位矩阵的倍数。简单来讲,就是该信号的平均值为0,且各个分量之间互不相关。

当然这些解释都是网上可以找到的,无非就是信号处理的一种手段,在“机器学习”领域中对数据处理经常会用到,但其实现方式是怎样的呢?不妨看看下图,这是spec里的一种算法,从图中不难理解,是通过线性反馈移位的方式来处理数据,以达到白话效果。23414752-16c0-11ed-ba43-dac502259ad0.png

三、白话代码实现方式

那这种算法在代码里是怎么体现的呢,以下是一些白话处理的相关sample,希望对大家理解起来有帮助:

sample1235fc1e6-16c0-11ed-ba43-dac502259ad0.png

237ae822-16c0-11ed-ba43-dac502259ad0.png23909e88-16c0-11ed-ba43-dac502259ad0.png23ac5fd8-16c0-11ed-ba43-dac502259ad0.png23c63106-16c0-11ed-ba43-dac502259ad0.png

#includeDatawhitening.h

staticunint8_tWhiteningKeyMSB=0x01;
staticunint8_tWhiteningKeyLSB=0xFF;
voidRadioComputeWhitening(uint8_t*buffer,uint16_tbufferSize)
{
uint8_ti=0;
uint16_tj=0;
uint8_tWhiteningKeyMSBPrevious=0;

for(j=0;j>5)&0x01);
WhiteningKeyLSB=((WhiteningKeyLSB>>1)&0xFF)|((WhiteningKeyMSBPrevious<< 7) & 0x80);
  }
 }
}

sample2

uint8_tswapBits(uint8_ta)
{
uint8_tv=0;
if(a&0x80)
v|=0x01;
if(a&0x40)
v|=0x02;
if(a&0x20)
v|=0x04;
if(a&0x10)
v|=0x08;
if(a&0x08)
v|=0x10;
if(a&0x04)
v|=0x20;
if(a&0x02)
v|=0x40;
if(a&0x01)
v|=0x80;
returnv;
}

/**
*@briefImplementswhiteningwithLFSR
*@note
*@paramdata:locationofthedatatobewhiten
*len:datalength
*whitenCoeff:whiteningcoefficient
*它是一种7位线性移位反馈样式,并通过等于(channelNum<< 1)+ 1的值进行初始化
 * @retval
 */
void bleWhiten(uint8_t *data, uint8_t len, uint8_t whitenCoeff)
{
    uint8_t m;
    while (len--)
    {
        for (m = 1; m; m <<= 1)
        {
            if (whitenCoeff & 0x80)
            {
                whitenCoeff ^= 0x11;
                (*data) ^= m;
            }
            whitenCoeff <<= 1;
        }
        printf("0x%x 
 ", *data);
        data++;
    }
}  
审核编辑:彭静
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 蓝牙
    +关注

    关注

    112

    文章

    5426

    浏览量

    165619
  • 代码
    +关注

    关注

    30

    文章

    4554

    浏览量

    66720
  • 机器学习
    +关注

    关注

    66

    文章

    8105

    浏览量

    130541
  • AIoT
    +关注

    关注

    8

    文章

    1255

    浏览量

    30045

原文标题:whitening

文章出处:【微信号:嵌入式开发AIoT,微信公众号:嵌入式开发AIoT】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    求助,关于蓝牙mac地址的批量写入问题求解

    在批量生产中,我需要每一个产品都有唯一的MAC地址。 我在调试的时候配置蓝牙组件的时候MAC地址都是一样的。 1.请问关于蓝牙的名称,MAC地址等信息,在批量生产的时候如何更改?是不是都写在了特定
    发表于 02-21 06:30

    关于蓝牙和wifi的学习资料

    求助:大家有没有关于蓝牙和wifi的学习资料呢?求分享。
    发表于 01-12 23:05

    如何实现一种基于蓝牙4.0的设备通信系统?

    如何实现一种基于蓝牙4.0的设备通信系统?
    发表于 05-20 06:18

    关于蓝牙安全机制的研究,不看肯定后悔

    关于蓝牙安全机制的研究,不看肯定后悔
    发表于 05-26 06:24

    关于蓝牙与WiFi共处技术的介绍

    关于蓝牙与WiFi共处技术的介绍
    发表于 05-28 07:21

    你听过蓝牙的知识产权吗?关于蓝牙的知识产权你了解多少?

    你听过蓝牙的知识产权吗?关于蓝牙的知识产权你了解多少?蓝牙的测试认证可以分为哪几个方向?
    发表于 06-17 08:04

    【原创视频】白话讲解ADC&剖析影响ADC结果关键因素-2

    大家上午好!今天由黄忠老师为大家讲解ADC,剖析影响ADC结果关键因素,欢迎大家留言讨论与交流!前期回顾:【原创视频】白话讲解ADC&剖析影响ADC结果关键因素-1
    发表于 06-23 10:54

    如何实现一种基于蓝牙与STM32的智能家居监测系统设计呢

    于蓝牙与STM32的智能家居监测系统的软硬件该如何实现呢?如何实现一种基于蓝牙与STM32的智能家居监测系统设计呢?
    发表于 11-04 07:07

    讲述关于蓝牙的基础知识和蓝牙模块的选型介绍

    的HC-053.HC蓝牙模块选型结语前言本文将讲述关于蓝牙的基础知识和蓝牙模块的选型介绍。对于开始学习蓝牙或者要用蓝牙做项目的你有一定的帮助
    发表于 01-18 07:40

    HarmonyOS关于蓝牙的相关资料下载

    版本3.0以下的蓝牙,低功耗蓝牙指的是蓝牙版本4.0以上的蓝牙。如果你对蓝牙感兴趣,可以看看 HarmonyOS
    发表于 04-01 10:21

    关于蓝牙技术的详细讲述

    关于蓝牙技术的详细讲述的主要内容:第1章 概述第2章 基带层协议第3章 链路管理器协议第4章 逻辑链路控制和适配协议第5章 服务搜索协议(SDP)第6章
    发表于 07-20 08:54 0次下载

    关于蓝牙无线通信资料下载

    关于蓝牙无线通信资料下载
    发表于 05-21 11:24 2次下载

    关于蓝牙的一些小知识你知道哪些

    蓝牙技术在耳机、手机、手表及汽车领域的普及为人们带来了许多便利,却也引发了人们对于蓝牙的一些误解。目前
    发表于 03-07 09:08 5295次阅读

    关于蓝牙模块的简易小车(基于51单片机)

    关于蓝牙模块的简易小车(基于51单片机)文章目录关于蓝牙模块的简易小车(基于51单片机)一、HC-05蓝牙模块及其引脚连接二、使用步骤1.蓝牙模块配对2.设置串口3.小车驱动部分代码4
    发表于 11-23 16:20 26次下载
    <b class='flag-5'>关于蓝牙</b>模块的简易小车(基于51单片机)

    蓝牙5.1和5.3有什么区别?

    略有不同。蓝牙5.1的传播范围大约为300米,比之前版本的蓝牙技术有了显著提升。而蓝牙5.3进一步扩大了传播范围,可以达到更远的距离,最新版本的传播范围可达到480米。此外,
    的头像 发表于 12-09 15:06 1.1w次阅读