当前位置:首页 » 操作系统 » 小波变换算法

小波变换算法

发布时间: 2022-12-07 15:26:23

Ⅰ 小波变换(一)

由于项目可能会用到的原因,学一下,感觉已有的通俗易懂教程不够相应的学术性.

教程:《数字信号处理》陈后金着
视频教程: 中国大学mooc-数字信号处理

[TOC]

在正式进入小波变换之前,我们不妨来讨论一下傅里叶变换的局限性和为什么我们需要引入小波变换。
回想傅里叶变换的公式

怎么来解决以上的问题呢?有人提出了短时傅里叶变换来加以改善,我们先来看看短时傅里叶变换的表达式:


通过加入一个滑动的窗函数 (长度为N),来弥补傅里叶变换的频谱上没有时间信息这个弊端

其实原理很简单,就是原来一段的傅里叶变换,现在固定分成几段来分别进行傅里叶变换,那么分成的这几段,可以在时间上独立开来,就变成了 具有时间信息的傅里叶变换

但当然,这个加窗对整个变换也是有影响的,这里不妨先介绍两个术语:

时间分辨率由时窗宽度 决定,

,时间分辨率越高.

频谱分辨率是指分辩信号中相邻谱峰的能力

,频谱分辨率越高。

在对信号的时频分析中,我们希望时间分辨率和频谱分辨率都可以比较高,但是从定义式里面我们就知道,时 间分辨率和频谱分辨率是相互制约的 ,同时也说明,我们没办法 同时获得 较高的时间分辨率和频谱分辨率.

从这里我们可以再一步印证出,傅里叶变换(连续)具有无穷的频谱分辨率,而无时间分辨率.

现在我们回来讨论短时傅里叶变换的窗函数 的长度N,显然N如果变大,频谱分辨率肯定是越来越好的,时间分辨率确实便来越差的.同时N如果变小,频谱分辨率肯定是越来越差的,时间分辨率便是越来越差的.

既然上面说了时间分辨率和频谱分辨率已经是不可兼得的了,那么现在问题来了, 我们到底想得到什么东西?
回想一下:
傅里叶变换的缺点在他不能有效地处理非平稳信号,短时傅里叶变换的N是固定的,往两边变化都会有制约.

那我们能不能在分析的过程中让这个N变起来?让他 在信号变化快的时候窗变小一点 ,获得较高的时间分辨率,较低的频谱分辨率. 在信号变化慢的时候窗变大一点 ,获得较低的时间分辨率,较高的频谱分辨率.

这个时候就应该给大家引入小波变换了.大家可以先无道理地认为小波变换就是一个窗长度会变的傅里叶变换(虽然我一直不喜欢这个通俗的比喻...)

在正式讲小波变换前,需要先补充一些知识.

在信号分析中,我们常将信号展开成一组信号的线性组合,即有

其中,{ }为展开系数,{ }为展开函数
若展开式具有 唯一性 ,即不同的信号对应不同的展开系数 ,则该展开函数 称为基(basis)。

对基函数来说,若其内积满足:

称此基函数为 正交规范(orthonormal) 基函数.正交在于其他内积等于0,规范在于系数是1

在此基础上我们可以知道,由于每个基函数之间都是互相正交的,所以我们可以将x(t)和基函数 进行内积计算,便可以得到相应的展开系数 ,也就是:

稍微有点泛函常识的我们可以知道,这就是 将信号往给定基函数元素所张成的内积空间里面投射

比较出名的就是傅里叶级数,将信号往以 为基函数的内积空间(无穷维空间)内投射,得到的相应正交基函数的特征值(也就是展开系数 )这里的 就是傅里叶级数里面的 .大家大可看看表达式,都是一模一样的.

当然这个是反着来用的,根据每个维度的特征值来合成回x(t),也就是逆变换

这里要注意的还有一点是,所谓的基函数,其实不仅仅是一个函数,而是一些有相同特征且相互正交的函数族.

小波(wavelet)信号是一类衰减较快的波动信号,其能量有限,且相对集中在局部区域.
先来看看常用的小波函数:

和小波变换相关的还有尺度函数(父小波)(Scaling Function)

尺度函数族 定义为:

小波函数族和尺度函数族前面的系数 是为了保持基函数的能量始终为1

对于这两个后面会有更理性的认识,这里我们先直接介绍DWT和IDWT

有了小波函数和尺度函数,就相当于明确了我们的小波的基函数.
我们可以利用小波函数族 ,尺度函数族 ,来将信号进行小波展开:

同时,上式也被称为 离散小波逆变换 (IDWT)

相反地,由信号x(t)求解展开系数{ }称为 离散小波变换(Discrete Wavelet Transform, DWT)

我们常用 来表示信号的粗糙成分, 来表示信号的精细部分.详细内容会在下一篇博客继续阐述.

之前总有一段时间不想学小波,感觉这个名词有点高大上什么的,然后因为最近要涉及到相关的信息,所以不得不学一下.学完个基础之后不得不感叹的是,小波变换我觉得比傅里叶变换还要来得简单直接,演示的效果有时还蛮惊艳的.

形象易懂讲解算法I——小波变换
小波变换完美通俗讲解系列之 (一)
小波变换完美通俗讲解系列之 (二
Wavelet transform - Wikipedia
A Tutorial of the Wavelet Transform

Ruch, David K. And Van Fleet, Patrick J.《Wavelet Theory:An elementary Approach With Applications》

Wavelets in Engineering Applications 罗高涌 ( 这可是我们学院罗教授出的书喔 )
购买链接如下:
Wavelets in Engineering Applications

Ⅱ 小波算法

Function wavelet(s,wname,n,options);
Begin
{
功能:
一维序列小波消噪。
参数:
s:一维序列
wname:小波函数名
现有小波函数名(小波函数的选取依靠经验)
Daubechies:
'db1' , 'db2', ... ,'db45' 'db1' 就是haar 小波函数

Coiflets :
'coif1', ... , 'coif5'
Symlets :
'sym2' , ... , 'sym8'
Biorthogonal:
'bior1.1', 'bior1.3' , 'bior1.5'
'bior2.2', 'bior2.4' , 'bior2.6', 'bior2.8'
'bior3.1', 'bior3.3' , 'bior3.5', 'bior3.7'
'bior3.9', 'bior4.4' , 'bior5.5', 'bior6.8'.
Reverse Biorthogonal:
'rbio1.1', 'rbio1.3' , 'rbio1.5'
'rbio2.2', 'rbio2.4' , 'rbio2.6', 'rbio2.8'
'rbio3.1', 'rbio3.3' , 'rbio3.5', 'rbio3.7'
'rbio3.9', 'rbio4.4' , 'rbio5.5', 'rbio6.8'.

n :分解层数
options : 选项
选择字段说明
array('brief':1, // 默认为1 采用简单剔除高频谐波 达到消噪的目的
// 如果为 0 采用估计序列噪音标准差剔除噪音,
'sigma':0, // 为0 默认采用 序列的高阶谐波估计标准差;也可自己输入值
'which':1, // 以 某一层谐波作为噪音估计的数据,默认第一层
'alpha':2, // 阈值惩罚系数,默认为2
"thr":0, // 阈值大小,默认0 采用谐波估计,也可以直接给出
'sorh':'s', // 阈值方式设置,'s' 软阈值,'h'硬阈值 默认为's'
);

返回结果:
一维数字数组,消噪后的序列。
范例:
s := array(2484.82690429688,2479.05493164063,2482.34301757813,2437.794921875,
2447.7548828125,2512.962890625,2443.05688476563,2433.15893554688,
2393.18310546875,2415.05395507813,2392.06201171875,2365.34301757813,
2359.21997070313,2344.787109375,2348.51611328125,2420.00,2438.7900390625,
2431.375,2440.40209960938,2383.48510742188,2377.51196289063,2331.36596679688,
2317.27490234375,2370.3330078125,2409.67211914063,2427.47998046875,
2435.61401367188,2473.40991210938,2468.25,2470.01904296875,2504.10791015625,
2508.09008789063,2528.2939453125,2509.79907226563,2503.8359375,2524.9189453125,
2479.53588867188,2481.083984375,2528.71411132813,2529.76098632813,2466.958984375,
2463.0458984375,2416.56201171875,2415.1298828125,2412.625,2395.06494140625,
2397.55395507813,2380.22412109375,2383.03393554688,2412.39306640625,
2333.4140625,2386.86010742188,2360.6640625,2333.22900390625,2325.90502929688,
2332.72998046875,2329.82006835938,2315.27001953125,2291.544921875,2248.59008789063,
2228.52490234375,2180.89501953125,2224.84008789063,2218.23510742188,2215.92993164063,
2191.14794921875,2186.29711914063,2204.78393554688,2190.11010742188,2166.205078125,
2170.01293945313,2173.56103515625,2199.4169921875,2169.38989257813,2148.45190429688,
2163.39501953125,2225.88989257813,2285.74389648438,2276.0458984375,2275.01000976563,
2244.580078125,2206.19311523438,2298.3759765625,2266.38403320313,2296.07495117188,
2319.11791992188,2285.0380859375,2292.61010742188,2268.080078125,2312.55590820313,
2330.40502929688,2331.13598632813,2291.90209960938,2347.53002929688,2349.58911132813,
2351.98095703125,2351.85498046875,2344.77099609375,2366.70190429688,2356.86010742188,
2357.18090820313,2363.59692382813,2381.42993164063,2403.5869140625,2409.55395507813,
2439.6279296875,2447.05688476563,2451.85693359375,2428.48706054688,2426.11499023438,
2460.69311523438);
n := 2;
options := array('brief':1,'sigma':0,'which':1,'alpha':2,"thr":0,'sorh':'s');
return wavelet(s,wname,n,options) ;

天软数学组
20120627
}

if not ifarray(options) then options := array();
defaut := wavedefaut() union options;
cout := 4;
cl:=wavedec(s,n,wname); //小波分解
if defaut['brief']=1 then
ret :=wrcoef('a',cl[0],cl[1],wname,n);
else
begin
//***************小波消噪*************************************************
k := defaut['which']; //标准差估计选项 ,k 为 1 到 n的整数 默认为1;
if defaut['sigma']=0 then sigma := wnoisest(cl[0],cl[1],k);
else //通过小波第k层细节系数(谐波)估计 ,噪音标准差
sigma := defaut['segma'];
if defaut['alpha']=0 then alpha :=2; // alpha 惩罚因子 大于1 的数 一般为默认2;
else alpha := defaut['alpha'];
if defaut['thr']=0 then
thr := wbmpen(cl[0],cl[1],sigma,alpha); //噪音信号全局阈值
else thr := defaut['thr'];
sorh := defaut['sorh'];
ret:=wdencmp('gbl',cl[0],cl[1],wname,n,thr,sorh)[0]; //采用软阈值和近似信号进行消噪;
end //第一个参数为'gbl'为扩展接口备用,可以随意输入
return ret;
end;
function wavedefaut();
begin
return array('brief':1,'sigma':0,'which':1,'alpha':2,
"thr":0,'sorh':'s'
);

end

Ⅲ 一维,二维小波变换过程是怎样的

1,一维小波变换可以对图像进行处理和分解;2,确定1成立,一维小波分析总体上时离散的,串行的;二维小波分析总体上是非离散的,并行的;3,确定1成立,由2所述可知,在计算机计算能力许可前提下,后者速度高于前者,效果优于前者。附带说几句:目前基于小波变换的相关图像处理技术已经从军事、天气、地理逐渐过渡到医学、生物学等方面,在软件发展的情况下,硬件也有了对应的发展,很多算法都已经固化在硬件里或者由硬件直接完成了。

热点内容
android弹出通知 发布:2025-05-16 14:59:20 浏览:509
数据库EST 发布:2025-05-16 14:59:15 浏览:196
android版本号修改 发布:2025-05-16 14:53:48 浏览:172
android相机闪光灯 发布:2025-05-16 14:35:49 浏览:259
服务器无法通过ip访问 发布:2025-05-16 14:26:13 浏览:540
网吧u盘拒绝访问 发布:2025-05-16 14:13:50 浏览:260
无线网检查网络配置是怎么回事 发布:2025-05-16 14:04:03 浏览:220
网络爬虫python代码 发布:2025-05-16 14:03:26 浏览:516
汽车小组件怎么弄到安卓桌面 发布:2025-05-16 13:51:12 浏览:220
linuxg编译器下载 发布:2025-05-16 13:50:58 浏览:776