一种基于支持向量机的信道估计方法转让专利

申请号 : CN201110162135.4

文献号 : CN102202018B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张黎杨睿哲宋治坤张延华

申请人 : 北京工业大学

摘要 :

一种使用支持向量机SVM的信道估计方法属于无线信道估计技术领域,其特征在于,先取出信道的大概位置及误差半径,取观测值、导频符号、噪声方差、信道变化量以及用最小二乘法LS直接判决反馈值作为信道大概位置的五个属性值以及误差半径内当用均值表示各网格信道数值的排序号作标签值作在支持向量机的初始赋值。用K-CV法确定惩罚参数c及函数参数g,径向基核函数作为支持向量机参数来建立支持向量机模型并计算信道估计值。本发明能在不增加支持向量机复杂度的条件下,保证信道估计准确性以及收敛的快速性,便于推广使用。

权利要求 :

1.一种使用支持向量机SVM的信道估计方法,其特征在于是用专用数字集成电路芯片ASIC依次按以下步骤实现的,步骤(1),所述ASIC芯片初始化,设置以下模块:

误差半径确定模块、信道大概位置确定模块,用于确定误差半径和信道大概位置;

划分误差半径内网格模块、计算网格偏观测值模块、信道变化量计算模块、随机噪声生成模块、噪声方差计算模块、最小二乘法计算信道模块,以及数据库,用于确定训练集;

模型参数配置模块和建立支持向量机模型并控制、计算信道估计值模块,用于信道估计并判断当前时刻是否为最后一个时刻,以及判断所估计得到的信道是否与上一时刻的估计信道相同;

步骤(2),依次将以下步骤进行信道估计:

步骤(2.1),利用所述信道大概位置确定模块和误差半径确定模块确定不同信噪比下各信道的大概位置和误差半径步骤如下:步骤(2.1.1)当借助参考信号进行信道估计时,其n时刻的观测值Yn用下式表示:Yn=Xn×Hn+noise,

其中,n=1,2,…,N,N≥1,当n=1时表示为第一时刻,Yn为第n时刻的观测值,Xn为第n时刻的导频符号,Hn为第n时刻的实际信道,noise为噪声;

所述信道大概位置确定模块按下式计算第一时刻的最小二乘法LS直接判决反馈值并以此作为信道的大概位置:其中,Y1表示为第一时刻的观测值,X1为第一时刻的导频符号;

步骤(2.1.2),所述误差半径确定模块通过对各信号的5000次测试,得到各信道第一时刻的所述最小二乘法LS直接反馈值 与对应的实际信道的差值的模,成为误差半径,然后取得各误差半径的95%置信区间,作为最终的误差半径;

步骤(2.2),按以下步骤确定训练集中的属性值:N≥2时的信道大概位置、信道变化量和噪声方差:步骤(2.2.1),在第n时刻,把所述信道的大概位置和误差半径输入所述划分误差半径内网格模块,以所述的信道大概位置为中心,两倍所述最终误差半径为边长的正方形,在所述正方形内平均划分为M个网格,M取值区间为16至64之间的能被开平方的自然数,为M的开平方,即 统计各网格内的所有信道数值,求取所述各网格内的所有信道数值的平均值 作为各网格内的信道数值并输出,i,j为正整数, i,j为所述正方形的直角坐标,并把各个 按逐行的顺序排列,把排列序号作为所述训练集的标签值,以便与相应的属性值对应;

步骤(2.2.2),按下列公式计算当前时刻n≥2时导频符号的网格偏观测值,用yn表示:在当前时刻为第一时刻时,yn=Y1,已知;

步骤(2.2.3),通过所述随机噪声生成模块,用一个Matlab函数生成当前信噪比下的随机噪声,该随机噪声生成模块的初始输入是当前情况下的信噪比和生成随机噪声的个数,输出为对应于所述随机噪声个数且符合当前信噪比的随机噪声;

步骤(2.2.4),所述噪声方差计算模块利用设定的方差公式对从步骤(2.2.3)输出的设定个数且符合当前信噪比的随机噪声进行方差计算;

步骤(2.2.5),所述信道变化量计算模块从所述计算网格偏观测值模块输入当前时刻导频符号的网格偏观测值yn,其中n≥2,当n=1时,即为第一时刻,yn=Y1,已知,从所述随机噪声生成模块输入当前时刻信噪比下设定数量的随机噪声,按下式计算当前时刻对应信噪比下的信道变化量eH:其中n≥2;i,j为正整数, 在当前时刻为第一时刻,即n=1时,eH=

0;

步骤(2.2.6),所述最小二乘法计算信道模块从所述随机噪声生成模块输入当前时刻下所对应信噪比的设定数量的随机噪声,按下式计算最小二乘法LS直接判决反馈值步骤(3),按以下步骤建立缓存存储器:从所述信道变化量计算模块输入作为训练集的属性值之一的当前时刻对应信噪比下的信道变化量eH,从所述最小二乘法计算信道模块输入作为训练集的属性值之一的当前时刻最小二乘法LS直接判决反馈值 从所述噪声方差计算模块输入作为训练集属性值之一的噪声方差,还有所述训练集的两个属性值导频符号Xn和观测值Yn,n=1,2,…,N,在输入了上述共五个属性值后,再从所述计算网格偏观测值模块输入作为训练集标签值的所述误差半径内各网格的信道数值均值 的排列序号,即标签值,存储到缓存存储器;

步骤(4),判断当前网格是否为最后一网格:

所述建立支持向量机模型并控制、计算信道估计值模块从所述计算网格偏观测值模块输入作为训练集标签值的所述误差半径内各网格的所有信道的数值的平均值 的排列序号,判断当前网格是否为最后一网格,即 是否与 相等:若不相等,则输入步骤(2.2.2),并继续向下执行;

若相等,则输出控制信号,转入步骤(5);

步骤(5),对于属性值及标签值进行串并转换:

从所述缓存存储器中,串行输入所述共M组的五个属性值及一个标签值,进行串并转换,并行输出M组的五个属性值及一个标签值;

步骤(6),按以下步骤建立支持向量机模型并计算信道估计值:

步骤(6.1),对于所述模型参数配置模块做如下初始化赋值:惩罚函数c的选择范围为[-4,4],函数参数g的选择范围为[-4,4],再输入利用K重交叉验证(K-CV,K-fold Cross Validation)方法确定并输出最佳的惩罚参数c和函数参数g;

步骤(6.2),按以下步骤建立支持向量机模型并控制、计算信道估计值模块:步骤(6.2.1),所述建立支持向量机模型并控制、计算信道估计值模块从所述串并转换模块输入作为训练集的属性值的当前时刻对应信噪比下的信道变化量eH,当前时刻最小二乘法LS直接判决反馈值 噪声方差,导频符号Xn,观测值Yn和训练集的标签值,以及所述配置模型参数模块输出的在libsvm工具箱配置的最佳的惩罚参数c和函数参数g,并以径向基函数为支持向量机核函数,然后,建立所述五个属性值和一个标签值之下的所述支持向量机模型模块;

步骤(6.2.2),利用所述数据库的libsvm工具箱,初始化赋值为当前时刻的观测值Yn,当前时刻的导频符号Xn,n=1,2,…,N,前时刻的信道大概位置 当前时刻的信道变化量eH,当前时刻的噪声方差以及网格内信道数值均值 的排列序号,其中 可由当前时刻的Yn和Xn通过步骤(2.2.6)中最小二乘法LS直接判决反馈值计算得到, 为随机选取的排列序号值;

步骤(7),所述建立支持向量机模型并控制、计算信道估计值模块判断当前时刻是否为最后一个时刻,即n是否与N相等:若不相等,则转入步骤(2.2);

若相等,则结束。

说明书 :

一种基于支持向量机的信道估计方法

技术领域

[0001] 本发明涉及一种使用支持向量机(Support vector machines)的信道估计方法。

背景技术

[0002] 1、无线信道估计背景技术
[0003] 在现代无线通信系统中,实际的信道不可能满足信号传输无失真条件,而是具有衰落特性。接收端接收信号的相位特性通常由衰落过程的频域特性、时域特性和空域特性描述,这些特性分别又与多径信号的时延扩展、多普勒扩展和角度扩展有关,它们都是无线信道的参数。根据信号参数(如带宽、码元间隔等)和信道参数之间的关系,不同的发射信号会发生不同类型的衰落,目前研究的通信系统中,这些衰落分别具有频率选择性(多径传播造成信道在频域上的变化)、时间选择性(收发端移动造成信道在时间上的变化)和空间选择性(天线配置),统称选择性衰落,它们严重影响着通信质量。
[0004] 己有的信道估计方法可以大致分类为:借助于参考信号(训练序列、导频)的估计,盲信道估计,半盲信道估计方法。
[0005] 借助参考信号估计:通过设计训练序列(慢时变信道中)或在数据分组中周期性地插入导频(快变、复杂的信道环境中)作为参考信号来实现信道估计。其中,基于信道模型和估计算法设计参考信号及其与数据符号的复用方式(周期、位置、正交性、功率)是重要研究之一,它直接影响信道估计的准确度和系统的传输效率。
[0006] 盲估计方法:不需要辅助信息,利用信道潜在的结构特征和输入信号的特征,如常模量、有限符号集、循环平稳等特性来完成信道估计和均衡。相对借助参考信号估计方法,盲估计能够提高传输效率。目前此方向的研究重点主要集中在如何加快算法的收敛速度、如何改善对快衰落信道的跟踪等。
[0007] 半盲估计方法:将盲估计与基于参考信号估计两种方法相结合,既利用调制信号本身所固有的特征,也利用少量导频或训练序列的信息来进行估计,在传输效率、算法复杂度、性能多个方面折中优化。
[0008] 2、支持向量机背景技术
[0009] 支持向量机(SVM,Support Vector Machine)是由Vapnik首先提出的,可用于模式分类和非线性回归。支持向量机的主要思想是建立一个分类超平面作为决策曲面,使得正例和反例之间的隔离边缘被最大化。支持向量机的理论基础是统计学习理论,是结构风险最小化的近似实现。这个原理基于:学习机器在测试数据上的误差率(即泛化误差率)以训练误差率和一个依赖于VC维数(Vapnik-Chervonenkis dimension)的项的和为界,在可分模式情况下,支持向量机对于前一项的值为零,并且使第二项最小化。因此,尽管它不利用问题的领域内部问题,但在模式分类问题上支持向量机能提供好的泛化性能,这个属性是支持向量机特有的。
[0010] 在传统的使用支持向量机进行信道估计时,为了保证信道估计的准确性通常使用多核或者核函数复杂度很高的支持向量机,例如在IEEE检索到的由Garcia,M.J.F.-G.、Rojo-Alvarez,J.L.等人编写的Support vector machines for robust channel estimation in OFDM,论文中提出使用二次—线性核函数。

发明内容

[0011] 针对无线衰落信道中信道估计问题的复杂性,以及传统支持向量机使用多核或者复杂度很高的核函数估计信道的方法进行了改进。传统支持向量机使用多核或者复杂度很高的核函数会造成计算量的大幅增加,不便于实际使用。
[0012] 本发明在不使用多核或者复杂度很高的核函数情况下,提出一种新的训练方法,利用信道中噪声对信道估计造成影响的特点,先确定出信道的大概位置及误差半径,再利用对信道各种特征的描述,选取其中有效的特征描述值,作为支持向量机的属性值,建立相应的支持向量机模型,由于支持向量机模型自身的可预测性,完成对信道的估计。经过对算法的不断优化和改进,能够在不增加支持向量机复杂度的情况下,保证信道估计的准确性,以及收敛的快速性,便于实际的使用。
[0013] 由于支持向量机的使用特性,是需要先对已知样本数据集进行训练,并建立出支持向量机模型,实际数据集才能根据所建立的模型,完成实际数据的分类、预测工作。
[0014] 在进行信道估计时,需要先确定出信道的大概位置和误差半径,明确所使用的训练集,将惩罚参数c和函数参数g进行合理的配置,最后完成模型训练工作在使用实际数据进行信道估计时,只需将相关数据通过支持向量机模型,即可得到估计信道值结果。与传统支持向量机相比,传统支持向量机为了保证信道估计的准确性,使用了多核或者核函数复杂度很高的支持向量机,本发明通过新设计的训练集可以避免高复杂度的支持向量机,并能很好对信道进行跟踪。
[0015] 本发明的基本原理流程图见图1。
[0016] 本发明的特征在于,是用专用数字集成电路芯片ASIC依次按以下步骤实现的,[0017] 步骤(1),所述ASIC芯片初始化,设置以下模块:
[0018] 误差半径确定模块、信道大概位置确定模块,用于确定误差半径和信道大概位置;
[0019] 划分误差半径内网格模块、计算网格偏观测值模块、信道变化量计算模块、随机噪声生成模块、噪声方差计算模块、最小二乘法计算信道模块,以及数据库,用于确定训练集;模型参数配置模块和建立支持向量机模型并控制、计算信道估计值模块,用于信道估计并判断当前时刻是否为最后一个时刻,以及判断所估计得到的信道是否与上一时刻的估计信道相同;
[0020] 步骤(2),依次将以下步骤进行信道估计:
[0021] 步骤(2.1),利用所述信道大概位置确定模块和误差半径确定模块确定不同信噪比下各信道的大概位置和误差半径步骤如下:
[0022] 步骤(2.1.1)当借助参考信号进行信道估计时,其n时刻的观测值Yn用下式表示:
[0023] Yn=Xn×Hn+noise,
[0024] 其中,n=1,2,…,N,N≥1,当n=1时表示为第一时刻,Yn为第n时刻的观测值,Xn为第n时刻的导频符号,Hn为第n时刻的实际信道,noise为噪声;
[0025] 所述信道大概位置确定模块按下式计算第一时刻的最小二乘法LS直接判决反馈值 并以此作为信道的大概位置:
[0026]
[0027] 其中,Y1表示为第一时刻的观测值,X1为第一时刻的导频符号;
[0028] 步骤(2.1.2),所述误差半径确定模块通过对各信号的5000次测试,得到各信道第一时刻的所述最小二乘法LS直接反馈值 与对应的实际信道的差值的模,成为误差半径,然后取得各误差半径的95%置信区间,作为最终的误差半径;
[0029] 步骤(2.2),按以下步骤确定训练集中的属性值:N≥2时的信道大概位置、信道变化量和噪声方差:
[0030] 步骤(2.2.1),在第n时刻,把所述信道的大概位置和误差半径输入所述划分误差半径内网格模块,以所述的信道大概位置为中心,两倍所述最终误差半径为边长的正方形,在所述正方形内平均划分为M个网格,M取值区间为16至64之间的能被开平方的自然数,为M的开平方,即 统计各网格内的所有信道数值,求取所述各网格内的所有信道数值的平均值 作为各网格内的信道数值并输出,i,j为正整数,i,j为所述正方形的直角坐标,并把各个 按逐行的顺序排列,把排列序号作为所述训练集的标签值,以便与相应的属性值对应;
[0031] 步骤(2.2.2),按下列公式计算当前时刻n≥2时导频符号的网格偏观测值,用yN表示:
[0032]
[0033] 在当前时刻为第一时刻时,yn=Y1,已知;
[0034] 步骤(2.2.3),通过所述随机噪声生成模块,用一个Matlab函数生成当前信噪比下的随机噪声,该随机噪声生成模块的初始输入是当前情况下的信噪比和生成随机噪声的个数,输出为对应于所述随机噪声个数且符合当前信噪比的随机噪声;
[0035] 步骤(2.2.4),所述噪声方差计算模块利用设定的方差公式对从步骤(2.2.3)输出的设定个数且符合当前信噪比的随机噪声进行方差计算;
[0036] 步骤(2.2.5),所述信道变化量计算模块从所述计算网格偏观测值模块输入当前时刻导频符号的网格偏观测值yn,其中n≥2,当n=1时,即为第一时刻,yn=Y1,已知,从所述随机噪声生成模块输入当前时刻信噪比下设定数量的随机噪声,按下式计算当前时刻对应信噪比下的信道变化量eH:
[0037]
[0038] 其中n≥2;i,j为正整数, 在当前时刻为第一时刻,即n=1时,eH=0;
[0039] 步骤(2.2.6),所述最小二乘法计算信道模块从所述随机噪声生成模块输入当前时刻下所对应信噪比的设定数量的随机噪声,按下式计算最小二乘法LS直接判决反馈值[0040]
[0041] 步骤(3),按以下步骤建立缓存存储器:
[0042] 从所述信道变化量计算模块输入作为训练集的属性值之一的当前时刻对应信噪比下的信道变化量eH,从所述最小二乘法计算信道模块输入作为训练集的属性值之一的当前时刻最小二乘法LS直接判决反馈值 从所述噪声方差计算模块输入作为训练集属性值之一的噪声方差,还有所述训练集的两个属性值导频符号Xn和观测值Yn,n=1,2,…,N,在输入了上述共五个属性值后,再从所述计算网格偏观测值模块输入作为训练集标签值的所述误差半径内各网格的信道数值均值 的排列序号,即标签值,存储到缓存存储器;
[0043] 步骤(4),判断当前网格是否为最后一网格:
[0044] 所述建立支持向量机模型并控制、计算信道估计值模块从所述计算网格偏观测值模块输入作为训练集标签值的所述误差半径内各网格的所有信道的数值的平均值的排列序号,判断当前网格是否为最后一网格,即 是否与相等:
[0045] 若不相等,则输入步骤(2.2.2),并继续向下执行;
[0046] 若相等,则输出控制信号,转入步骤(5);
[0047] 步骤(5),对于属性值及标签值进行串并转换:
[0048] 从所述缓存存储器中,串行输入所述共M组的五个属性值及一个标签值,进行串并转换,并行输出M组的五个属性值及一个标签值;
[0049] 步骤(6),按以下步骤建立支持向量机模型并计算信道估计值:
[0050] 步骤(6.1),对于所述模型参数配置模块做如下初始化赋值:惩罚函数c的选择范围为[-4,4],函数参数g的选择范围为[-4,4],再输入利用K重交叉验证(K-CV,K-fold Cross Validation)方法确定并输出最佳的惩罚参数c和函数参数g;
[0051] 步骤(6.2),按以下步骤建立支持向量机模型并控制、计算信道估计值模块:
[0052] 步骤(6.2.1),所述建立支持向量机模型并控制、计算信道估计值模块从所述串并转换模块输入作为训练集的属性值的当前时刻对应信噪比下的信道变化量eH,当前时刻最小二乘法LS直接判决反馈值 噪声方差,导频符号Xn,观测值Yn和训练集的标签值,以及所述配置模型参数模块输出的在libsvm工具箱配置的最佳的惩罚参数c和函数参数g,并以径向基函数为支持向量机核函数,然后,建立所述五个属性值和一个标签值之下的所述支持向量机模型模块;
[0053] 步骤(6.2.2),利用所述数据库的libsvm工具箱,初始化赋值为当前时刻的观测值Yn,当前时刻的导频符号Xn,n=1,2,…,N,前时刻的信道大概位置 当前时刻的信道变化量eH,当前时刻的噪声方差以及网格内信道数值均值 的排列序号,其中可由当前时刻的Yn和Xn通过步骤(2.2.6)中最小二乘法LS直接判决反馈值计算得到,为随机选取的排列序号值;
[0054] 步骤(7),所述建立支持向量机模型并控制、计算信道估计值模块判断当前时刻是否为最后一个时刻,即n是否与N相等:
[0055] 若不相等,则转入步骤(2.2);
[0056] 若相等,则结束。
[0057] 本发明在不使用复杂核函数的情况下,通过对相关数据值的选取,得到建立支持向量机模型的有效属性值,从而将信道估计问题转化为以上一点为中心值的预测问题,整个过程可视为连续的递推过程。本发明可以有效对信道进行跟踪,并获得了较为满意的信道估计结果,且具有较快的收敛速度。

附图说明

[0058] 图1,相邻两时刻支持向量机信道估计基本原理流程。
[0059] 图2,ASIC功能实现图。
[0060] 图3,15dB时最小二乘法LS直接判决反馈值的误差半径。
[0061] 图4,大致信道范围内划分网格示意图。
[0062] 图5,数据串并转换示意图。
[0063] 图6,基于支持向量机与其他方法的信道估计均方误差图,图中[0064] 图7,25dB下基于支持向量机与卡尔曼收敛速度比较图,图中

具体实施方式

[0065] 本发明的基于支持向量机的信道估计方法主要包含下列步骤:
[0066] 步骤一:确定信道的大概位置和误差半径
[0067] 在借助参考信号进行信道估计时,用下式表示:
[0068] Yn=Xn×Hn+noise,
[0069] 其中n≥1,Yn为第n时刻的观测值,Xn为第n时刻的导频符号,Hn为第n时刻的实际信道,noise为白噪声。当n=1时,表示为第一时刻。
[0070] 由于支持向量机是通过训练集数据建立的模型,因此就需要知道信道的大致位置,信道第一个数值大概位置可以通过最小二乘法(Least Square,LS)直接判决反馈得到,信道第一个数值的LS直接判决反馈公式用下式表示:
[0071]
[0072] 其中,Y1为第一时刻的观测值,X1为第一时刻的导频符号, 为第一时刻的LS直接判决反馈值。通过大量测试,得到第一时刻的LS直接判决反馈值与实际信道的差值的模,即误差半径,然后取得误差半径的95%置信区间。其中置信区间是指由样本统计量所构造的总体参数的估计区间,在统计学中,一个概率样本的置信区间(Confidence interval)是对这个样本的某个总体参数的区间估计,置信区间展现的是这个参数的真实值有一定概率落在测量结果的周围的程度。
[0073] 由于信噪比的不同,由噪声造成的影响也会不同。信噪比越低,噪声越大,对信道估计造成的误差越大;反之信噪比越高,噪声越小,对信道估计造成的误差也就越小,所以在误差半径的设置方面也是随着信噪比的不断升高,误差半径在不断的减小。
[0074] 步骤二:确定训练集
[0075] 训练集是为了建立支持向量机模型而设立的必要相关数据集,其中包括属性值和标签值,属性值表示事物本身的特征值,标签值表示不同事物之间的类别。
[0076] 由于信道的大概位置和误差半径已经确定,因此可以将以信道的大概位置为中心,以两倍误差半径为边长的正方形内的信道数值划分为M个网格,取该网格的均值其中i,j为正整数, i,j为所述正方形的直角坐标,并把各个按逐行的顺序排列,把排列序号作为所述训练集的标签值,标签值需要与相应的属性值对应,以便后续建立支持向量机模型。
[0077] 在对信道进行分块后,计算当前时刻导频符号的网格标准观测值,用下式表示:
[0078]
[0079] 其中n≥1。由于在实际信道中,是不知道当前时刻信道值的,且信道是属于慢变化,因此可以使用前一时刻的信道值代替当前时刻的信道值,得到当前时刻导频符号的网格偏观测值公式,用下式表示:
[0080]
[0081] 其中n≥2,当n=1时,表示为第一时刻,yn=Y1。
[0082] 用现在时刻的观测值与公式4求得的当前时刻导频符号的网格偏观测值做差,得到信道变化量eH,eH用下式表示:
[0083]
[0084] 其中n≥2;i,j为正整数, 由于各个时刻间的信道H变化量较小,为了减少训练集,在这里是使用该时刻H所在网格块的均值 进行代替。得到新的信道变化量eH,eH用下式表示:
[0085]
[0086] 其中n≥2,当n=1时,表示为第一时刻,eH=0;i,j为正整数,为了保证训练集的全面性, 需要选取所划分的全部M个网格的信道均值,所得到的eH为训练集的属性值。
[0087] 由于支持向量机的原理是利用数据集中的规律来进行分类的,而公式中的噪声则是随机的,对于支持向量机分类的准确性影响是很大的,尤其当信噪比很低时,将噪声有效的滤除是十分困难的。为了确保支持向量机分类的准确,因此还需要添加LS直接判决反馈值,作为训练集的另一项属性值。LS直接判决反馈值 用下式表示:
[0088]
[0089] 其中n≥1;i,j为正整数, 为了保证训练集的全面性, 需要选取所划分的全部M个网格的信道均值。
[0090] 除了eH,LS直接判决反馈值外,训练集的其他属性值还包括了噪声的方差,导频符号X以及观测值Y等共三项内容。
[0091] 对于存入缓存存储器的五个属性值与一个标签值,还需要判断当前网格是否为最后一网格,如果不是,则以下一个网格值,重新计算五个属性值,并以下一个网格的排列顺序作为重新计算五个属性值的标签值;如果是,则将缓存存储器内的数据输出,并进行串并转换,得到M组的五个属性值和一个标签值。
[0092] 步骤三:确定支持向量机模型
[0093] 本文是利用支持向量机的预测功能完成对信道的估计,而预测功能是建立在支持向量机模型已经确定的前提下,因此根据训练集,完成支持向量机模型的建立是十分重要的。
[0094] 对于模型的建立,不仅需要将训练集的属性值与训练集的标签值建立起对应关系,还需要大量训练集数据作为训练模型的依据,训练集数据量越大,模型将会越加精准,但是训练量也会随之上升。
[0095] 建立支持向量机模型是根据前一时刻的信道数值 通过训练当前刻所有的可能状态 完成模型的建立。由于误差以及信道变化的原因,每一时刻得到的信道值有可能是不一样的,可重新设置信道的大概位置,以当前的信道数值为中心,以两倍误差半径为边长重新建立支持向量机模型。
[0096] 在建立模型时,需要考虑到惩罚参数c和函数参数g的合理配置,过高的c会导致过学习状态发生,即训练集分类准确率很高而实际应用时的分类的准确率很低(分类器的泛化能力降低),所以在能够达到最高验证分类准确率中,选取最小的c和相应的g。
[0097] 可以使用交叉验证(CV,Cross Validation)的方法,找到在一定意义下最佳的参数c和g,可以有效的避免过学习和欠学习状态的发生。CV是用来验证分类器性能的一种统计分析方法,基本思想是把某种意义下将训练集数据进行分类,一部分做为训练集,另一部分做为验证集。其方法是首先用训练集对分类器进行训练,再利用验证集来测试训练得到的模型,以得到的分类准确率做为评价分类器的性能指标。
[0098] 本发明是使用K重交叉验证(K-CV,K-fold Cross Validation)方法确定的惩罚参数c和函数参数g。训练集数据被均分成K组,将每个子集数据分别做一次验证集,同时其余的K-1组子集数据做为训练集,这样可得到K个模型,然后将c和g划分网格分别进行计算,用这K个模型最终的验证集的分类准确率的平均数作为此K–CV下分类器的性能指标。
[0099] 步骤四:信道估计
[0100] 通过上述步骤完成了模型的建立,对于模型的使用,也需要输入相应的属性值,其中信道变化量eH用下式表示:
[0101]
[0102] LS直接判决反馈值 用下式表示:
[0103]
[0104] 噪声的方差也可以很容易求得。确定了相应的属性值,即可使用之前建立的支持向量机模型,完成结果的预测,即信道估计结果。
[0105] 对于信道估计时的第一个数值点,由于不存在当前时刻导频符号的网格偏观测值,因此可将eH直接设定为0。
[0106] 对于经过支持向量机得出的信道值,还需判断当前时刻是否为最后一个时刻,如果不是,则以当前时刻的信道值为信道的大致位置,误差半径为半径,重新确定训练集、惩罚参数c、函数参数g,并需建立新的模型;如果是,则结束。
[0107] 本发明是使用专用数字集成电路芯片ASIC以实现的,ASIC功能实现图如图2所示。
[0108] 通过使用Matlab函数,仿真生成导频符号、瑞丽信道、在信噪比为0dB、5dB、10dB、15dB、20dB、25dB的情况下所产生的噪声,并根据步骤一中计算Yn公式得出通过信道后的观测值,生成的数据赋值到相关模块。
[0109] 模块一:信道大概位置确定模块
[0110] 该模块的功能为确定出信道的大概位置,利用步骤一中 公式计算出信道的大概位置。初始化赋值为第一时刻的观测值和第一时刻的导频符号值,输出为第一时刻的最小二乘法LS直接判决反馈值,即信道的大概位置。
[0111] 模块二:误差半径确定模块
[0112] 该模块的功能为确定出误差半径,在不同信噪比都经过5000次的测试下,得到不同信噪比时,第一时刻的最小二乘法LS直接判决反馈值,即信道的大概位置与实际信道的差值的模,即误差半径,并求出误差半径的95%置信区间。初始化赋值为信道的大概位置和实际信道数值,输出为误差半径。15dB时的误差半径分布情况见图3,信噪比在0dB、5dB、10dB、15dB、20dB、25dB时的误差半径及误差半径的95%置信区间见表1。
[0113] 表1不同信噪比时的误差半径和95%置信区间
[0114]
[0115] 模块三:划分误差半径内网格模块
[0116] 该模块的功能为划分误差半径内的网格,做以信道的大概位置为中心,误差半径为一半边长的正方形,在该正方形内平均划分为M个网格,计算得到每个网格的均值其中i,j为正整数, 以i,j为正方形的直角坐标,把各个按逐行的顺序进行排列并标记序号。初始化赋值为信道的大概位置、误差半径和划分网格个数M,输出为代替网格内所有信道数值的 其中i,j为正整数, 以
及排列顺序的序号。
[0117] 模块四:计算网格偏观测值模块
[0118] 该模块的功能为计算出网格的偏观测值,利用步骤二中计算yn公式进行计算。初始化赋值为当前时刻导频符号值和前一时刻代替实际信道数值的 输出为前一时刻导频符号的网格偏观测值。大致信道范围内划分网格示意图如图4所示。
[0119] 模块五:生成随机噪声模块
[0120] 该模块的功能为生成当前信噪比情况下的随机噪声。初始化赋值为当前情况下的信噪比和生成随机噪声的个数100,输出为100个符合当前信噪比的随机噪声。
[0121] 模块六:计算噪声方差模块
[0122] 该模块的功能为计算噪声的方差,利用方差公式Var(X)=E{[X-E(X)]2}进行计算。初始化赋值为符合当前信噪比的随机噪声,输出为噪声的方差。
[0123] 模块七:计算信道变化量模块
[0124] 该模块的功能为计算出信道的变化量,利用步骤二中计算新的信道变化量eH公式进行计算。初始化赋值为当前时刻导频符号值、所有网格块的均值 i,j为正整数, 随机噪声和前一时刻导频符号的网格偏观测值,输出为信道变化量。
[0125] 模块八:最小二乘法计算信道模块
[0126] 该模块的功能为利用最小二乘法计算出信道,利用步骤二中计算 公式进行计算。初始化赋值为当前时刻导频符号值、所有网格块的均值 i,j为正整数,随机噪声,输出为当前时刻的LS直接判决反馈值,即最小二乘法计算信道位置值。
[0127] 模块九:缓存存储器模块
[0128] 该模块的功能为存储数据。初始化赋值为将当前时刻的观测值、当前时刻的导频符号值、最小二乘法计算信道位置值、信道变化量、噪声的方差,即五个属性值,当前 的排列序号,即一个标签值,以及之前时刻的五个属性值和标签值,在得到模块十二的控制信号之后,输出为串行的缓存存储器中的所有数据。
[0129] 模块十:串并转换模块
[0130] 该模块的功能为数据流的串并转换。初始化赋值为缓存存储器中的所有数据,输出为经过并行的缓存存储器中的所有数据。数据串并转换示意图如图5所示。
[0131] 模块十一:配置模型参数模块
[0132] 该模块的功能为配置支持向量机模型中必要的惩罚参数c和函数参数g,利用K-fold Cross Validation(K-CV)方法确定参数值。初始化赋值为惩罚参数c的选择范围[-4,4]和函数参数g的选择范围[-4,4],输出为最佳的惩罚参数c和函数参数g。
[0133] 模块十二:建立支持向量机模型并控制、计算信道估计值模块
[0134] 该模块的功能为建立支持向量机模型,利用数据库中台湾大学林智仁(Lin Chih-Jen)教授等开发设计的libsvm工具箱。初始化赋值为当前时刻的观测值、当前时刻的导频符号值、最小二乘法计算信道位置值、信道变化量、噪声的方差,按照顺序排列 的排列序号,以及libsvm工具箱的配置参数,即最佳的惩罚参数c和函数参数g,支持向量机所选择的核函数径向基核函数。建立支持向量机模型。赋值当前时刻的观测值、当前时刻的导频符号值、当前时刻的最小二乘法计算信道位置值、当前时刻的信道变化量以及原始噪声的方差,输出为排序序号。
[0135] 判断一:当前网格是否为最后一网格,即 是否与 相等。若不相等,则转至模块七;若相等,则向模块九输出控制信号;
[0136] 判断二:当前时刻是否为最后一个时刻,即n是否与N相等。若不相等,则转至模块三;若相等,则结束;
[0137] 在对本发明提出的算法进行检验后,所得结果能够比较准确的对信道值进行估计,并且具有较快的收敛性。图6为基于支持向量机与其他方法的信道估计均方误差图,图7为25dB下基于支持向量机与卡尔曼收敛速度比较图。
[0138] 本发明在PC机上实现是使用Matlab语言进行编程,它是一种高级的矩阵语言,包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。MATLAB是一个包含大量计算算法的集合。其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。在通常情况下,可以用它来代替底层编程语言,如C和C++。在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少,并且允许用户编写可以和MATLAB进行交互的C或C++语言程序。在本发明中所使用的libsvm工具箱是使用C语言编程的,因此,在使用之前,需要在Matlab的Command Window窗口中进行相关编译,编译工作只需在第一次使用libsvm工具箱之前完成,以后再次使用libsvm工具箱可无需再次编译。使用支持向量机SVM信道估计方法的程序的自然语言如下:
[0139] 开始
[0140] 生成信噪比分别为0dB、5dB、10dB、15dB、20dB、25dB情况下的5000组随机噪声、5000组导频符号、5000个瑞利信道,每组为64个;
[0141] 利用步骤一中 公式,计算出每种信噪比情况下,5000次的第一时刻LS直接判决反馈值,即信道的大概位置;
[0142] 在每种信噪比情况下,用5000次确定出的信道大概数值与信道实际数值做差,并取95%的置信区间,即信噪比分别为0dB、5dB、10dB、15dB、20dB、25dB情况下的误差半径;%以下程序循环6次,每次循环分别为信噪比为0dB、5dB、10dB、15dB、20dB、25dB的情况[0143] 生成当前信噪比情况下64个随机噪声、64个导频符号、1个瑞利信道,并计算原始随机噪声的方差;
[0144] 利用步骤一中 公式,计算出当前信噪比情况下的第一时刻LS直接判决反馈值,即信道的大概位置;
[0145] 做以信道的大概位置为中心,误差半径为一半边长的正方形,在该正方形内平均划分为36个网格,计算得到每个网格块的均值 i,j为正整数,i,j∈[0,6];以i,j为正方形的直角坐标,把各个 按逐行的顺序进行排列并标记序号;
[0146] 利用步骤二中计算yn公式,计算出前一时刻导频符号的网格偏观测值;
[0147] 生成当前信噪比情况下的100个随机噪声,并利用方差公式,计算得出随机噪声的方差,并保存;
[0148] 利用步骤二中计算新的信道变化量eH公式,计算出信道变化量,并保存;
[0149] 利用步骤二中计算 公式,计算出当前时刻的LS直接判决反馈值,即最小二乘法计算信道位置值,并保存;
[0150] 判断当前网格是否为最后一个网格;
[0151] 如果不是;
[0152] 则继续计算下一个网格的信道变化量及最小二乘法计算信道位置值;
[0153] 如果是;
[0154] 则将支持向量机训练集的属性值(信道变化量、信道位置值、随机噪声的方差、当前时刻的观测值、当前时刻的导频符号值)与支持向量机训练集的标签值(排列顺序的序号)进行对应;
[0155] 设定惩罚参数c的选择范围[-4 4]和函数参数g的选择范围[-4 4];
[0156] 遍历组合惩罚参数c和函数参数g;
[0157] 将支持向量机训练集平均分为3个部分,分别让每一部分作为测试集进行预测,剩下的部分作为训练集对分类器进行训练,取最后得到的所有分类准确率的平均数;
[0158] 取遍历组合中分类准确率平均数最高时的惩罚参数c和函数参数g;
[0159] 设置libsvm工具箱参数,使用径向基函数;
[0160] 将训练集输入到libsvm工具箱函数中,得到当前情况下的支持向量机模型;
[0161] 利用步骤四中计算信道变化量eH公式,计算出实际情况下的信道变化量;
[0162] 利用步骤四、中计算 公式,计算出实际情况下的最小二乘法计算信道位置值;
[0163] 将测试集(测试集包括支持向量机属性值:实际情况下的信道变化量、实际情况下的最小二乘法计算信道位置值、原始随机噪声的方差、当前时刻的观测值、当前时刻的导频符号值,以及支持向量机标签值,为了保证函数的正常运行,标签值需要设定数值,但数值可任意设定,不影响信道估计结果)进行对应;
[0164] 将完成对应的测试集输入到支持向量机,得到当前情况下的信道估计值;
[0165] 判断当前时刻是否为最后一个时刻;
[0166] 如果不是;
[0167] 则需要重新建立符合当时情况的支持向量机模型;
[0168] 如果是,则结束。