早教吧 育儿知识 作业答案 考试题库 百科 知识分享

请问:离散一维小波分析在Mallat运算之后,如何计算模极大值?用Mallat算法算出各级小波系数序列d1(n)、d2(n)、.、dj(n)之后,如何计算模极大值?这里的所谓的“模”,是不是对单个系数来

题目详情
请问:离散一维小波分析在Mallat运算之后,如何计算模极大值?
用Mallat算法算出各级小波系数序列d1(n)、d2(n)、.、dj(n)之后,如何计算模极大值?
这里的所谓的“模”,是不是对单个系数来说的?
例如,对于系数序列d1(n)来说,是否就是对序列内各个系数值d1(1)、d1(2)、.、d1(n)分别求各自的绝对值?
模极大值是不是就是在一定的预设窗口内系数绝对值序列里面的最大的值?还是窗口内的若干个尖峰都算是模极大值?
▼优质解答
答案和解析
你对“模”的理解正确,都是对某一阶次的系数序列求模(如果系数是复数就是求模,如果是实数就是绝对值).一个序列中只有一个最大值,会有多个极值.
对于人工方法,最为简单的方法是求完这个序列(例如d1(1)、d1(2)、.、d1(n))所有的模,再根据其中的模最大值设定一个阈值,低于这个阈值的模值归为0,那么你将得到一个和原始序列等长的,可能有几个极大值的新序列.建议先对原始序列的小波系数使用wcodemat函数进行量化编码,这样你的数据的极值会很明显,选择阈值就方便了.每一尺度或阶次(层次)的系数可能要选择不同阈值,得到各个尺度与阶次的模极大值,连成线就是传说中的小波脊(模极值轴线).
另一方式就比较麻烦,属于自动检测,检测时段(窗口)内如果某时刻的模值大于该时段内信号均值的6倍且该点均比与其相邻的左右5个时刻模值大,则认为该点为模极大值点.这玩意比较麻烦,而且没法人工干预,可能会漏掉有用的极值,得不到你满意的结果.所以matlab中模极值轴线图只能是个参考,通常满足不了实际处理的需求.