mallat算法分析及c语言实现,一种基于Mallat算法提高小波包分解速度的方法与流程...
本发明涉及信号处理技术领域,具体涉及一种在mallat算法的基础上利用半小波包和改进卷积过程算法提高小波包分解速度的方法。
背景技术:
随着信息技术的发展,探索人体生理问题的研究深入,研究脑电信号,并且处理脑电信号反应人的生理信息显得尤为重要。脑电信号是脑神经细胞电生理活动在大脑皮层或头皮表面的总体反映。其中脑电信号中包含了大量的生理与疾病的信息。在这个高速发展的社会,通过对脑电波的分析进而分析个人的心理情绪,用于舒缓紧张,焦躁的情绪。由于现在设备的进步,采集到数据是一个非常庞大的数据。1989年mallat在小波变换多分辨分析理论与图像处理的应用研究中受到burt与a的朗诵塔式算法的启发,提出信号的塔式多分辨率分解与重构算法。
目前在针对脑电信号特征提取算法中,常用的是小波包分解和小波分解。“小波包分解”法会把信号的高频和低频完全分解。但在此过程中,无关的信号频率也会被分解,算法复杂度被迫提升。故又引入了只对低频信号分解的“小波分解”方法。但此时又出现了新的问题,那就是如果假设信号中包含高频信号,则经小波分解后,得到的信号会以丢失高频信息为代价,换取算法在复杂度上的优势,这显然不是处理人员所希望的。
本专利主要是实现实时分析情绪分类,利用从脑电信号中提取四种脑电节律波形即delta波(0.78~3.91hz)、theta波(3.91~7.81hz)、alpha波(7.81~13.28hz)、beta波(13.28~30.47hz)的波形作为特征值对情绪分类进行加速。具体实现时在提出半小波概念及其理论推导的基础上,使用改良mallat算法加半小波实现alpha,beta,delta,theta波形加速,将分解重构四种波形的精度达到小数点后两位,速度提升到传统使用mallat算法时间的3/14。无论是在脑电数据的在线处理的速度方面,还是利用脑电信号进行情感分类在处理效果上都有大幅度的提升。
技术实现要素:
本发明为解决现有脑电信号特征提取过程中,采用小波分解只分解低频信号,对低频信号存在丢失信息的问题,提供一种基于mallat算法提高小波包分解速度的方法。
一种基于mallat算法提高小波包分解速度的方法,该方法可由以下步骤实现:
步骤一、选择小波分解类型和分解层数;
选择deap数据库中的一组脑电数据,采用daubechies小波,对一组脑电波中单个通道频率为7.81~13.28hz的alpha波形进行提取后,进行小波分解,所述小波分解层数选择为9层;
步骤二、计算目标信号频率;
根据香农采样定理和步骤一中确定的小波分解层数,获得平均频率步长值δf,根据目标频率范围确定分解的目标数据范围,并在所述的目标数据范围区间内进行数据分解;获得目标数据所在的信号片段;
步骤三、采用逆推算法,获得全部分解的信号;
采用小波包分解信号,将小波包分解看作一个二叉树,然后给小波包编号,获得半小波包的分解信号,其中奇数为高频信号,偶数为低频信号;
步骤四、重构小波;
根据步骤二计算的目标信号频率对应的二叉树根节点编号,对目标信号频率进行重构,将卷积信号的步长设为2,最终卷积获得有用的目标频率信号。
本发明的有益效果:本发明所述的方法通过利用半小波包和改进卷积过程相结合的算法,既解决了小波分解只分解低频信号的不足,又解决了小波包的冗余分解,从而提高了信号分解的准确度,降低了算法的复杂度,达到了加速小波分解的效果。
1)本发明所述的方法能够克服傅里叶变换无法表达信号在时域局部的性质,并且可以把数据、函数或者算子分割成不同频率的成分,从而再利用分解的方法来研究对应尺度下的成分,从而提高小波包分解效率。
2)本发明所述方法采用daubechies小波算法,选择小波及其分解层数,并且利用香农采样定理,进而可以得出小波包分解后的每一个片段的频率范围。
附图说明
图1为本发明所述的一种基于mallat算法提高小波包分解速度的方法的流程图;
图2为重构信号和源信号对比图,其中,图2a为重构总体图,图2b为重构对比细节图;图中,直线b为源信号波形图,圆圈a为重构波形,两个波形图放在一幅图中显示,重构信号对比源信号基本吻合,最后单独的圆圈a波形是重构信号多出的采样点。经过对比大量的数据和图像,分析得出多出的重构的信号不会影响源信号,可以只用截断法直接把多出的信号截短舍弃,重构信号和源信号就吻合了。
图3为小波包分解图。
图4为半小波包的分解图。
图5为mallat算法示意图。
具体实施方式
具体实施方式一、结合图1至图5说明本实施方式,一种基于mallat算法提高小波包分解速度的方法,该方法由以下步骤实现:
以对脑电信号进行半小波包分解为例,完整的处理过程主要包括以下四个步骤:
步骤一、选择小波分解类型和分解层数。采用daubechies小波进行分解。设滤波器h(ω),有
|h(ω)|2+|h(ω+π)|2=1(2)
其中daubechies小波的滤波器为共轭滤波器,且h(0)=1。式中的n为滤波器的阶数,ω表示信号频率。根据系数有限共轭滤波器,构造得到的滤波器系数列为h0,h1……h2k+1,尺度方程为:
由此得到尺度函数由构造函数得出紧支小波函数ψ(t)为:
接着利用正交多分辨分析、尺度方程以及小波方程的系数,可以得到信号小波变换的正交和逆变换的递推算法,即基于mallat算法的小波分解方法。具体过程为将l2(r)空间上的多分辨率分析记为对于任意整数j,k有如下公式:
约束条件为:
根据空间正交值和分解关系可得,小波包分解的mallat分解算法公式为
由上述公式获得某一分解层数下小波分解产生的低频信号与高频信号;式中,偶数项样本是经过分解后的近似信号,而奇数项样本为分解后的细节信号。为取共轭后的低频滤波器系数和为取共轭后的高频滤波器系数,两者的关系可表示为:
根据公式(7),选择deap数据库中的数据,对一组脑电波的一个通道的alpha波形进行提取。alpha波的频率为7.81~13.28hz,要想小波分解达到alpha波的精度,则需要分解9层。
步骤二、计算有用的信号频率。步骤一种设定的有用频率为7.81~13.28hz。根据香农采样定理和小波分解层数得到每个分解片段的平均步长关系如下:
由此可以得出进行小波包分解后每一个片段的频率范围。由于deap数据集的采样频率f=128hz,分解层数n=9,故计算可得δf=64/512=0.125hz。所得到的频率步长为0.125hz。由于alpha波的起始频率为7.81hz,可以得出alpha波是在分解第九层的第63的分解信号,根据alpha波的终止信号为13.28hz可以得出alpha波的终止信号在分解第九层的第107的分解信号(起始分解信号以1为起始标号,如第九层分解得到的信号为s01,s02,s03…,s512)。根据以上计算可推出,只需要关心s63到s107之间的分解数据即可。
表1是分解信号的频率范围,这是根据香农采样定理和小波分解层数得到每个分解的目标信号频率范围。
表1分解信号的频率范围
步骤三、逆推出需要分解的信号,把小波包分解看成一个完全二叉树。给小波包进行编号。首先被分解的信号的编号为1号。结合图3,这是一个4层的二叉树,对应小波包分解为3层分解(小波包分解的层数不算需要分解的信号)。假设需要9号10号和11号这三个分解信号的频率重构。而这三个波形的上一层的编号为4号和5号。得出4号和5号的就是对9号10号和11号同时向下取整。同理对4号和5号向下取整得到2号,2号向下取整得到1号。
得出半小波包的分解图为图3。为了得到9号10号和11号的分解信号,只需要知道1号,2号,4号,5号的分解信号,至于其他信号不需要考虑。其中奇数为高频信号,偶数为低频信号。
步骤四、重构小波。根据步骤二计算出所需目标频率对应的二叉树根节点的编号,在重构过程中只选择所需频率的节点进行重构,卷积过程中,由于单步卷积之后还需要进行采样,所以为了解决算法复杂度,直接将卷积信号的步长设为2,可以直接得到重构信号。
先对该部分小波信号进行延拓处理以克服数据溢出问题,如图5,分别采用四个低通滤波器系数h0,h1,h2,h3和四个高通滤波器系数g0,g1,g2,g3做卷积。传统的卷积过程通常对小波信号进行补偿为1的卷积,其次在经过隔点抽取,最终得到小波信号的上采样。而本实施方式中选择卷积过程的步长为2,这样不会产生卷积中间值,可经过上采样后直接得出最终的有用信号。
最后经过试验对比发现重构信号比源信号长,究其原因在于对比数据增长的长度跟分解层数和分解最后一层的结果和数据本身的是奇数还是偶数有直接的关系,解决方案为利用截断法把多余的信号截断舍弃,这样并不影响数据的可信度。
mallat算法分析及c语言实现,一种基于Mallat算法提高小波包分解速度的方法与流程...相关推荐
- c语言编程图像拼接,一种基于Lucas-Kanade算法的图像配准和拼接方法
一种基于Lucas-Kanade算法的图像配准和拼接方法 [技术领域] [0001 ]本发明涉及图像处理技术领域,具体涉及一种基于Lucas-Kanade算法的图像配准 和拼接方法. [背景技术] [ ...
- matlab血糖预测,一种基于VMD-PACF-BP模型的动态血糖在线预测方法与流程
本发明属于血糖预测技术领域,尤其涉及一种基于VMD-PACF-BP模型的动态血糖在线预测方法. 背景技术: 目前,中国患有糖尿病人数已成为在世界上拥有糖尿病患者最多的国家.为了降低糖尿病患者长期处于高 ...
- aes子密钥生成c语言_一种基于流密码算法的子密钥生成方法与流程
本发明涉及一种用于分组加解密算法的子密钥的生成方法. 背景技术: 随着信息技术的发展,信息安全性的问题却愈来愈显得突出,保证信息安全的一个重要技术就是密码学.密码学在信息安全技术中扮演着基础的角色,是 ...
- matlab识别中国象棋棋盘,一种基于图像处理的中国象棋识别系统及方法与流程
本发明涉及计算机图像识别技术,具体涉及一种基于图像处理的中国象棋识别系统及方法. 背景技术: 数字图像处理技术在机器感知领域应用十分广泛,主要目标是通过一些图像处理技术从图像中提取信息,该信息类似于人 ...
- grub2引导linux内核,一种基于grub2的linux系统启动bootloader的制作方法与流程
技术领域 本发明涉及服务器应用技术领域,具体涉及一种基于grub2的linux系统启动bootloader的制作方法. 背景技术: 当前linux系统的内核版本已经升级至4.0以上,最新的linux系 ...
- 一种基于说话人识别和数字语音识别的身份认证方法与流程
本发明属于语音处理技术领域,具体涉及到对数字语音序列进行说话人识别和语音识别,确定说话人身份的身份认证方法. 背景技术: 说话人识别也称为声纹识别,可以从说话人发出的声音中提取其个性特征,从而识别出当 ...
- matlab生成s加减速曲线,一种基于移动平均算法的S曲线加减速控制方法与流程
本发明属于运动控制领域,具体涉及一种基于移动平均算法的S曲线加减速控制方法. 背景技术: 加减速技术是数控系统的关键技术之一,算法的优劣直接决定着加工效率和加工精度.一种优秀的加减速算法既可以保证机床 ...
- 极坐标梯度公式_一种基于极坐标系梯度变化的类圆环边缘检测方法与流程
本发明涉及图形处理技术领域,具体地说是一种基于极坐标系梯度变化的类圆环边缘检测方法. 背景技术: 边缘检测是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点.图像属性中 ...
- matlab 零速检测,一种基于车辆零速检测的惯性导航误差修正方法与流程
本发明涉及车载导航与定位领域,尤其是涉及一种基于车辆零速检测的惯性导航误差修正方法. 背景技术: 惯性导航系统(inertialnavigationsystem,ins)能根据惯性传感器(陀螺仪.加速 ...
最新文章
- Android 白天/夜间模式切换
- elasticsearch 常用命令
- Python小游戏(并夕夕版飞机大战)
- C#WebApi路由机制详解
- MFC中打开文件对话框:CFileDlg
- 鸿蒙HI3516-HAP的编译打包和安装
- 【Android】Listview返回顶部,快速返回顶部的功能实现,详解代码。
- 【重点:BFS】LeetCode 407. Trapping Rain Water II
- redis memcache rabbitMQ
- java 覆盖文件_java复制文件(如果目标文件存在,是否覆盖)
- python网络爬虫实践收获_python网络爬虫实习报告
- python用于pmc排产可以吗_有没有免费的PMC生产排程软件啊?
- python中的snip用法_mac版截图软件Snip详细使用教程及常见问题
- Qt系列文章之 QAbstractItemModel(中)
- 数三退一问题||拉手成圈出圈问题
- 产品经理那些事:产品经理成长的有利因素
- php自动上传到onedrive,让iPhone里的照片自动上传备份到OneDrive
- 制作一个每日一图小工具
- 网站向bing搜索提交URL
- Snell法则的推导