WiFi系统中基于adaboost算法的帧检测方法
技术领域
本发明涉及一种WiFi系统中的帧检测算法,尤其涉及适用于类似IEEE 802.11a/b/g/n/ac系统中从噪声干扰中检测得到数据帧的方法。
背景技术
帧检测又叫做载波侦听,目的是检测信道是否空闲。空闲信道只能检测到噪声,而非空闲信道会检测到数据帧。在发送端,载波侦听将信道是否空闲的信息提交给媒体访问控制层(MAC,Media Access Control),如果信道空闲则可以发送数据帧。在接收端,如果帧检测模块检测到信道非空闲,则接收系统开启接收模式,开始进行信号处理。
WiFi信号的前导序列具有明显的周期性。按照协议规定,WiFi信号的前导序列周期为0.8us,所以延时为0.8us的两段同样长度数据做相关运算得到相关系数的理论值为1。但是实际接收系统中,由于噪声的干扰且自相关计算长度有限,导致前导部分的延时自相关系数小于1,而噪声做同样的延时自相关后系数却大于0.一般接收系统使用一个周期长度的信号与下一个周期长度的信号做延时自相关运算并给出一个阈值,当自相关系数不低于该阈值时,认为检测到数据帧;而自相关系数低于该阈值则认为是噪声。由于自相关计算长度限制,噪声的自相关系数和信号的自相关系数均在实数轴上的[0,1]区间内呈一定分布,具有明显的交叠区域,这就使得单一一次延时自相关运算结果做出的判断性能并不理想。
WiFi系统采用误检率和漏检率来作为帧检测算法的性能评价标准。误检率表示没有数据帧出现而检测到WLAN信号的概率,误检造成信号处理模块运行增大功耗同时占用信道。漏检率表示有WLAN信号出现而没有检测到的概率,漏检造成丢帧,使得信号传输效率下降。在系统设计中要求这两种错误出现的概率都要很低。
发明内容
本发明的目的是提供一种提高帧检测准确度的WiFi系统中基于adaboost算法的帧检测方法。
为达到上述目的,本发明采用的技术方案是:
一种WiFi系统中基于adaboost算法的帧检测方法,用于对WiFi系统的WiFi信号进行帧检测,所述帧检测方法为:由所述WiFi信号中选取多个样本,并基于所述样本采用adaboost算法训练获得用于进行帧检测的分类器,并采用所述分类器对当前接收数据进行区分,以判断所述当前数据为噪声或WiFi数据帧。
所述帧检测方法通过以下步骤实现:
第一步,由所述WiFi信号中选取一定数量的信号数据样本,并进行多种不同长度数据的自相关运算,获得一系列信号数据样本的自相关系数;
第二步:由所述WiFi系统中选取一定数量的噪声数据样本,并进行多种不同长度数据的自相关运算,获得一系列噪声数据样本的自相关系数;
第三步:将所述一系列信号数据样本的自相关系数作为一类多维数据,将所述一系列噪声数据样本的自相关系数作为另一类多维数据;
第四步:使用adaboost算法对两类所述多维数据进行区分训练,从而获得所述分类器;
第五步:对所述当前接收数据在滑动窗内进行多种自相关运算,获得一系列当前接收数据的自相关系数,并将所述一系列当前接收数据的自相关系数作为当前的多维数据,采用所述分类器对所述当前的多维数据进行区分,以判断所述当前数据为噪声或数据帧。
所述第一步中对所述信号数据样本进行的自相关运算、所述第二步中对所述噪声数据样本进行的自相关运算、所述第五步中对所述当前接收数据进行的自相关运算均采用一致的计算方法和计算长度。
所述自相关运算为对所述信号数据样本或所述噪声数据样本或所述当前接收数据进行的延时自相关运算,所述延时自相关运算的延时固定为前导数据的一个周期;所述信号数据样本或所述噪声数据样本或所述当前接收数据在进行所述多种自相关运算时,其数据选取的起始点保持一致,选定运算长度后,由所述起始点开始选取所述运算长度的数据以及延时一个周期后的具有相同运算长度的数据,对二者进行所述自相关运算。
所述第一步中,所述信号数据样本为经过信道并添加无线通信系统干扰后的数据样本;所述无线通信系统干扰包括但不限于高斯白噪声、频偏。
所述第一步中,每个所述信号数据样本的采样点数能够满足完成长度最长的所述自相关运算。
所述第二步中,所述噪声数据样本为高斯白噪声数据样本或者同频段非WiFi无线信号样本。
所述第三步的两类所述多维数据中和所述第五步的当前的多维数据中,三者各自的第n维数据所对应的自相关运算长度相一致。
所述第四步中,针对所使用的所述adaboost算法设定有错误率,且使用的所述adaboost算法进行的迭代达到所设定的错误率,所述分类器为多个简单分类器的加权和。
所述第五步中,所述滑动窗的长度为自相关运算的长度与所述WiFi信号的前导周期长度之和,且所述滑动窗内的第一点为所述自相关运算的起始点。
由于上述技术方案运用,本发明与现有技术相比具有下列优点:本发明对大量的噪声和数据样本进行多种自相关运算,通过Adaboost算法训练获得最终的分类器,并使用Adaboost分类器对多维数据进行分类,完成最终的帧检测,充分利用了每个不同长度的延时自相关系数的分类信息,提高了帧检测的准确度,其不仅可以应用于WiFi系统中,对其他具有周期性前导结构的帧数据也可以使用,尤其在低信噪比环境下,依然具有较好的识别性能。
附图说明
附图1为WiFi系统的短前导结构示意图。
附图2为二维情况下自相关系数的分布图。
附图3为本发明在实际应用中的处理流程图。
具体实施方式
下面结合附图所示的实施例对本发明作进一步描述。
实施例一:一种适用于IEEE 802.11a/b/g/n/ac等WiFi系统中而用于对WiFi系统的WiFi信号进行帧检测的WiFi系统中基于adaboost算法的帧检测方法,该方法为:由WiFi信号中选取多个样本,并基于样本采用adaboost算法训练获得用于进行帧检测的分类器,并采用分类器对当前接收数据进行区分,以判断当前数据为噪声或WiFi数据帧,即该方法的实施主要分两个阶段,第一阶段是训练阶段,即产生大量的噪声数据和信号数据样本,在预先设定的漏检率和误检率指标下,经过训练得到Adaboost分类器;第二阶段为检测阶段,即对接收数据经过处理得到多维数据,使用该分类器对其进行分类判断。在本实施例中,为便于直观表示,我们采用二维情况下对待检测数据进行分析。
具体的,上述帧检测方法通过以下步骤实现:
第一步,由接收到的WiFi信号中选取一定数量的经过信道并添加高斯白噪声、频偏等无线通信系统干扰后的信号数据样本,WiFi系统的短前导结构如附图1所示,分别提取其前导部分,并进行多种不同长度数据的自相关运算,获得一系列信号数据样本的自相关系数。这里的自相关运算为延时自相关运算,延时自相关运算的延时固定为前导数据的一个周期,在进行多种自相关运算时,其数据选取的起始点保持一致,选定运算长度后,由起始点开始选取运算长度的数据以及延时一个周期后的具有相同运算长度的数据,对二者进行自相关运算,即对每个信号数据样本的前导部分,分别计算长度为L1=0.8us*fs和长度为L2=1.2us*fs的延时自相关系数,其中fs为采样率,两个系数分别记为cor_sig1和cor_sig2。该步骤要求每个信号数据样本的采样点数能够满足完成长度最长的自相关运算。
第二步:由WiFi系统中选取一定数量的噪声数据样本,并进行多种不同长度数据的自相关运算,获得一系列噪声数据样本的自相关系数。这里的噪声数据样本为高斯白噪声数据样本或者同频段非WiFi无线信号样本,该同频段非WiFi无线信号样本为蓝牙、无绳电话等使用的信号。与第一步采用一致的计算方法和计算长度,即采用延时自相关运算,噪声数据样本在进行自相关运算时,其数据选取的起始点保持不变,选定运算长度后,由起始点开始选取运算长度的数据以及延时一个周期后的具有相同运算长度的数据,对二者进行自相关运算,分别计算长度为L1和L2的延时自相关系数,得到cor_noi1和cor_noi2。该步骤要求每个噪声数据样本的采样点数和采样间隔与第一步中数据样本的采样点数和采样间隔相一致,能够满足完成长度最长的自相关运算。
上述第一步和第二步中,用于训练的样本(包括信号数据样本和噪声数据样本)数量不宜太小。
第三步:将一系列信号数据样本的自相关系数作为一类多维数据,将一系列噪声数据样本的自相关系数作为另一类多维数据,这两类多维数据中,要求对应的第n维数据所对应的自相关运算长度相同,且每个多维数据对应一个信号数据样本或者一个噪声数据样本。即将cor_sig1和cor_noi1对应第一维,将cor_sig2和cor_noi2对应第二维,得到平面分布下的两类数据x_sig=[cor_sig1 cor_sig2]'和x_noi=[cor_noi1 cor_noi2]',如图2所示。其中信号自相关结果使用“+”表示,噪声信号的自相关结果使用“□”表示。
第四步:使用adaboost算法对两类多维数据进行区分训练,从而获得分类器。针对所使用的adaboost算法设定有错误率(包括误检率和漏检率),且使用的adaboost算法进行的迭代达到所设定的错误率,分类器为多个简单分类器的加权和。具体的,设定误检率和漏检率的指标,并依据该指标给定噪声数据样本和信号数据样本以不同的权重并归一化,分别为wn和ws;首先给出第一个弱分类器h1(xi),该弱分类器如果对xi分类正确,则输出1,否则输出-1;该弱分类器保证输出错误分类点的权重和最小;如果该权重和不低于1/2则终止,否则计算权重更新系数其中表示采用这个分类器所有正确点的权重减去所有错误点的权重。这样计算α之后更新错误点的权重,再找一个分类器保证错误点的权重和最小,如此反复,直到权重和不低于1/2。最后的强分类器结构为并保存后续使用。
第五步:如附图3所示,对当前接收数据在滑动窗内进行多种自相关运算,获得一系列当前接收数据的自相关系数,并将一系列当前接收数据的自相关系数作为当前的多维数据。滑动窗的长度为自相关运算的长度与WiFi信号的前导周期长度的和,且滑动窗内的第一点为自相关运算的起始点。这里,当前的多维数据中与第三步的两类多维数据中,三者各自的对应的第n维数据所对应的自相关运算长度相一致,且进行自相关运算同样为延时自相关运算,运算中采用的计算方法和计算长度均与第一步或第二步中的计算方法和计算长度相一致。最后采用分类器对当前的多维数据进行区分,以判断当前数据为噪声或数据帧。具体为,对当前接收数据分别计算长度为L1和L2的延时自相关系数cor_i1和cor_i2,记为x_i=[cor_i1 cor_i2]',使用第四步得到的强分类器H对x_i进行分类,判断所接收数据为噪声还是数据帧。
上述帧检测方法中的延时自相关运算可以采用滑动窗的方式实现,即每次移动滑动窗,减去离开滑动窗的数据的乘积,加上新进入滑动窗的数据的乘积,得到新的自相关结果。从而减少了运算量。
本发明提供了一种在低信噪比下具有较低误检率和漏检率的帧检测方法,其可适用于各种复杂的信道环境且可经受较强的噪声干扰。根据所公开的实施例,本领域技术人员能够实现或者使用该发明。以上所述的实施例仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应在本发明的保护范围之内。