一、前言
今天分享的話題是在藍牙spec5.3中有關于“白話”和“去白話”這一名詞,做過這方面研究的相信都有所了解,在BLE中bit stream processing的處理流程就有包含這一過程,如下圖所示。其最終終目的很簡單就是為了讓發(fā)視和接收的數(shù)據(jù)不要重復的出現(xiàn)0和1,降低數(shù)據(jù)的冗余性。例如:0b0000000或0b1111111,那其原理究竟是什么呢,小編頭鐵非要一探究竟!
二、何為白話
“白化”這個詞最早來源于信號處理領域,跟其中最常見的一種噪聲——白噪聲有很大的聯(lián)系。在信號處理理論中,白噪聲指的是一種在不同頻率都有相同功率的隨機信號,即其功率譜密度為常數(shù),功率與頻率無關。“白噪聲”這個名字來源于白光,白光包含了光譜中所有的顏色,其功率譜密度也呈平坦狀,類似地,“白噪聲”這種噪聲中包含了所有頻率的噪聲,因此被冠上了“白”的稱號。其他不滿足該功率譜密度特性的噪聲也被稱為有色噪聲,類似于非白光的其他顏色光。
上述關于白色信號(白光,白噪聲)的定義是一個通俗的定義,其嚴格數(shù)學定義為:一個隨機向量w稱為一個白色隨機向量當且僅當其平均值函數(shù)為0且自相關函數(shù)為一個單位矩陣的倍數(shù)。簡單來講,就是該信號的平均值為0,且各個分量之間互不相關。
當然這些解釋都是網(wǎng)上可以找到的,無非就是信號處理的一種手段,在“機器學習”領域中對數(shù)據(jù)處理經(jīng)常會用到,但其實現(xiàn)方式是怎樣的呢?不妨看看下圖,這是spec里的一種算法,從圖中不難理解,是通過線性反饋移位的方式來處理數(shù)據(jù),以達到白話效果。
三、白話代碼實現(xiàn)方式
那這種算法在代碼里是怎么體現(xiàn)的呢,以下是一些白話處理的相關sample,希望對大家理解起來有幫助:
sample1
#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++; ????} }
-
藍牙
+關注
關注
114文章
5827瀏覽量
170403 -
代碼
+關注
關注
30文章
4790瀏覽量
68654 -
機器學習
+關注
關注
66文章
8420瀏覽量
132685 -
AIoT
+關注
關注
8文章
1409瀏覽量
30712
原文標題:whitening
文章出處:【微信號:嵌入式開發(fā)AIoT,微信公眾號:嵌入式開發(fā)AIoT】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論