matlab中,連續(xù)小波變換、離散小波變換函數(shù)使用比較復(fù)雜,最近做了個總結(jié)。
參考連接
參考1:https://www.jianshu.com/p/56733f6c0a10
參考2:小波變換工具箱(7頁)-原創(chuàng)力文檔
參考3:《Matlab信號處理》 沈再陽,清華大學(xué)出版社,第8章
注意:以下所有函數(shù)均為matlab 2020a環(huán)境中測試,更早的版本未做測試。
一、連續(xù)小波變換
1.1 正變換cwt
1.1.1 語法
語法如下,詳細(xì)用法可通過命令【doc cwt】詳細(xì)了解,一般使用時只需用其中兩個參數(shù)即可:
①wname:小波基的名稱:分別對應(yīng)為:
wname的值 | 小波基 |
morse | Morse |
amor | Morlet(Gabor) |
bump | Bump |
②fs:x的抽樣頻率。當(dāng)給定fs時,畫出的時頻圖的XY軸分別為實(shí)際的時間和頻率;不指定時,畫出的時歸一化頻率和采樣點(diǎn)。
1.1.2 示例
cwt函數(shù) 用法比較簡單,可以舉個簡單例子如下:其中錐形虛線為影響錐,影響錐范圍內(nèi)的值可信度較高:
clc; clear; close all;
load sumsin;
x = sumsin(1:500);
x = x + randn(1, length(x));
Fs = 10;
figure; cwt(x, 'amor'); % 不指定Fs
figure; cwt(x, 'amor', Fs); % 指定Fs
1.2 反變換icwt
1.2 .1 語法
用法基本同正變換,其中參數(shù)說明如下:
wt:正變換得到的矩陣;
xrec:反變換重構(gòu)的信號。注意重構(gòu)的信號和原信號還是有區(qū)別的。
?1.2.2 示例
clc; clear; close all;
load sumsin;
x = sumsin(1:500);
x = x + randn(1, length(x));
Fs = 10;
[wt, f] = cwt(x, 'amor', Fs); % 指定Fs
xrec1 = icwt(wt, 'amor'); % 反變換,指定小波基
xrec2 = icwt(wt, f, [0.06, 0.31]); % 反變換,指定頻率范圍可實(shí)現(xiàn)濾波效果。
subplot(311); plot(x); title('x');
subplot(312); plot(xrec1); title('全頻率小波逆變換')
subplot(313); plot(xrec2); title('針對部分頻率范圍進(jìn)行小波逆變換')
二、離散小波變換?
2.1 函數(shù)總結(jié)
2.1.1 函數(shù)列表
?
?2.1.2 小波分解圖
2.1.2.1 小波分解的算法步驟
2.1.2.2 ?小波重構(gòu)的算法步驟
其實(shí)就是上采樣后分別通過低通、高通濾波器。
?2.2 小波基總結(jié)
使用離散小波變換時,經(jīng)常會設(shè)置錯小波基函數(shù)。因?yàn)殡x散小波變換的小波基參數(shù)wname的格式應(yīng)給為【wavelet_name】+[number]。具體總結(jié)如下:
wname的值 | 小波基名稱 | N取值 |
morl | Morlet小波 | - |
mexh | 墨西哥草帽小波 | - |
meyr | Meyer小波 | - |
haar | Haar小波 | - |
dbN | 緊支集正交小波 | 1,2,3,... |
symN | 近似對稱的緊支集正交小波 | 通常取2~8 |
coifN | Coiflet小波 | 1~5 |
biorNr,Nd | 雙正交樣條小波。r-重構(gòu);d-分解 | 1~6 |
2.3 示例
2.3.1 dwt、idwt
clear all;
load sumsin;
x = sumsin(1:500);
[cA, cD] = dwt(x, 'db2');
x_idwt = idwt(cA, cD, 'db2');
subplot(411); plot(x); title('x');
subplot(412); plot(cA); title('cA of dwt'); xlim([1, length(x)]);
subplot(413); plot(cD); title('cD of dwt'); xlim([1, length(x)]);
subplot(414); plot(x_idwt); title('idwt'); xlim([1, length(x)]);
?2.3.2 wavedec、waverec、wrcoef
clear;
load sumsin;
x = sumsin(1:500);
[c, l] = wavedec(x, 3, 'db3');
subplot(521); plot(x); title('x'); xlim([1, length(x)]);
xx = waverec(c,l,'db3');
subplot(522); plot(x); title('waverec重構(gòu)信號'); xlim([1, length(x)]);
subplot(523); plot(c); title('wavedec-3個尺度分解結(jié)果'); xlim([1, length(x)]);
for i=1:3
a1 = wrcoef('a', c, l, 'db3', i); % a-低頻重構(gòu),d-高頻重構(gòu)
subplot(5,2, 2*i + 3); plot(a1);
title(['wrcoef-從第', num2str(i),'個尺度的低頻分量重構(gòu)到0級']); xlim([1, length(x)]);
end
for i=1:3
a1 = wrcoef('d', c, l, 'db3', i); % a-低頻重構(gòu),d-高頻重構(gòu)
subplot(5,2, 2*i + 4); plot(a1);
title(['wrcoef-從第', num2str(i),'個尺度的高頻分量重構(gòu)到0級']); xlim([1, length(x)]);
end
文章來源:http://www.zghlxwxcb.cn/news/detail-433616.html
?2.2.3 upwlev、upcoef
文章來源地址http://www.zghlxwxcb.cn/news/detail-433616.html
到了這里,關(guān)于matlab小波變換、離散小波變換函數(shù)使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!