日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Matlab系列之小波分析基础

發(fā)布時(shí)間:2023/12/31 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Matlab系列之小波分析基础 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Matlab系列之小波分析基礎(chǔ)

  • 前言
  • 介紹
    • 1、waveinfo函數(shù)
    • 2、wfilters函數(shù)
      • 應(yīng)用實(shí)例
      • 運(yùn)行結(jié)果
    • 3、dwt函數(shù)
      • 應(yīng)用實(shí)例
      • 運(yùn)行結(jié)果
    • 4、wavedec
      • 應(yīng)用實(shí)例
      • 運(yùn)行結(jié)果
    • 5、wrcoef
      • 應(yīng)用實(shí)例
      • 運(yùn)行結(jié)果
  • 結(jié)語(yǔ)
  • 更多精彩,等你發(fā)現(xiàn)~

前言

原本想把MATLAB里關(guān)于概率論的相關(guān)進(jìn)行記錄,不過(guò)概率論學(xué)得不好,感覺在該部分的表達(dá)上還存在很大不足,就放棄了相關(guān)的篇章,直接開始了本篇,本篇主要是記錄小波分析的一些東西,小波分析的原理就不細(xì)說(shuō)了,所以還是老樣子,主要介紹小波分析在MATLAB中的相關(guān)知識(shí),不足之處請(qǐng)指出。

介紹

小波分析是數(shù)學(xué)分析方法里的一種,主要應(yīng)用于信號(hào)處理、圖像處理、語(yǔ)音分析以及其他的非線性科學(xué)領(lǐng)域,它被認(rèn)為是繼Fourier分析之后的又一有效的時(shí)頻分析方法。小波變換與Fourier變換相比,是一個(gè)時(shí)間和頻域的局域變換因而能有效地從信號(hào)中提取信息,通過(guò)伸縮和平移等運(yùn)算功能對(duì)函數(shù)或信號(hào)進(jìn)行多尺度細(xì)化分析(Multiscale Analysis),解決了Fourier變換不能解決的許多困難問(wèn)題。

MATLAB提供了小波分析工具箱,在主界面的命令窗口輸入:wavemenu,就可以打開工具箱,如下所示。

常用的就是小波基函數(shù)、連續(xù)小波變換及其應(yīng)用、離散小波變換及其應(yīng)用、小波包變換、信號(hào)和圖像的多尺度分解、基于小波變換的信號(hào)去噪、信號(hào)壓縮,在上圖也可以找到與這些對(duì)應(yīng)的選項(xiàng)。常用的小波基函數(shù)如下表:

函數(shù)表示函數(shù)描述
morlMorlet小波
mexh墨西哥草帽小波
meyrMeyer小波
haarHaar小波
dbN緊支集正交小波
symN近似對(duì)稱的緊支集正交小波
coifNCoifmant小波
biorNr.Nd雙正交樣條小波

以下記錄的是一些常用指令和語(yǔ)法使用,工具箱的操作就不弄了,自行根據(jù)指令進(jìn)行對(duì)應(yīng)和補(bǔ)充即可。

1、waveinfo函數(shù)

note:information on wavelets.

該語(yǔ)法的功能是提供工具箱中所有小波的信息查詢,使用格式:waveinfo(‘wname’)

wname指代的小波有

'haar' : Haar wavelet. 'db' : Daubechies wavelets. 'sym' : Symlets. 'coif' : Coiflets. 'bior' : Biorthogonal wavelets. 'rbio' : Reverse biorthogonal wavelets. 'meyr' : Meyer wavelet. 'dmey' : Discrete Meyer wavelet. 'gaus' : Gaussian wavelets. 'mexh' : Mexican hat wavelet. 'morl' : Morlet wavelet. 'cgau' : Complex Gaussian wavelets. 'cmor' : Complex Morlet wavelets. 'shan' : Complex Shannon wavelets. 'fbsp' : Complex Frequency B-spline wavelets. 'fk' : Fejer-Korovkin orthogonal wavelets

使用舉例:waveinfo(‘haar’)

結(jié)果:

查詢小波包的信息,則使用:waveinfo(‘wsys’)

2、wfilters函數(shù)

note:Wavelet filters.

這個(gè)函數(shù)有兩種用法,結(jié)果也不太相同;

第一種:[LO_D,HI_D,LO_R,HI_R] = wfilters(‘wname’)

計(jì)算正交小波或雙正交小波(wname)有關(guān)聯(lián)的四個(gè)濾波器,分別為:

LO_D,分解低通濾波器 HI_D,分解高通濾波器 LO_R,重構(gòu)低通濾波器 HI_R,重構(gòu)高通濾波器

第二種:[F1,F2] = wfilters(‘wname’,‘type’)

直接通過(guò)‘type’來(lái)返回對(duì)應(yīng)的濾波器,對(duì)應(yīng)如下:

如果'type'='d',則為L(zhǎng)O_D和HI_D(分解濾波器) 如果'type'='r',則為L(zhǎng)O_R和HI_R(重構(gòu)濾波器) 如果'type'='l',則為L(zhǎng)O_D和LO_R(低通濾波器) 如果'type'='h' 則為HI_D和HI_R(高通濾波器)

應(yīng)用實(shí)例

clc; clear all; [LO_D,HI_D,LO_R,HI_R]=wfilters('db45');%多貝西小波 %stem產(chǎn)生離散序列的圖形,xlim限制x軸的長(zhǎng)度,另外三個(gè)就是對(duì)圖形做描述 subplot(221);stem(LO_D);xlim([0 95]);title('分解低通濾波器'); xlabel('x');ylabel('y'); subplot(222);stem(HI_D);xlim([0 95]);title('分解高通濾波器'); xlabel('x');ylabel('y'); subplot(223);stem(LO_R);xlim([0 95]);title('重構(gòu)低通濾波器'); xlabel('x');ylabel('y'); subplot(224);stem(HI_R);xlim([0 95]);title('重構(gòu)高通濾波器'); xlabel('x');ylabel('y');

運(yùn)行結(jié)果

3、dwt函數(shù)

note:Single-level discrete 1-D wavelet transform.

該函數(shù)是通過(guò)指定小波‘wname’或者指定小波的分解濾波器LO_D和HI_D執(zhí)行單層一維小波分解。

使用方法:

[CA,CD] = dwt(X,'wname')或[CA,CD] = dwt(X,LO_D,HI_D)

還有一種是指定模式計(jì)算小波分解

[cA,cD] = dwt(…,‘mode’,MODE)

該用法的舉例:[cA,cD] = dwt(x,‘db1’,‘mode’,‘sym’);

mode對(duì)應(yīng)值及其英語(yǔ)表述如下:

'mode'DWT Extension Mode
'sym' or 'symh'Symmetric-padding (half-point): boundary value symmetric replication — default mode
'symw'Symmetric-padding (whole-point): boundary value symmetric replication
'asym' or 'asymh'Antisymmetric-padding (half-point): boundary value antisymmetric replication
'asymw'Antisymmetric-padding (whole-point): boundary value antisymmetric replication
'zpd'Zero-padding
'spd' or 'sp1'Smooth-padding of order 1 (first derivative interpolation at the edges)
'sp0'Smooth-padding of order 0 (constant extension at the edges)
'ppd'Periodic-padding (periodic extension at the edges)

二維的類似,函數(shù)為dwt2,使用語(yǔ)法為:

[CA,CH,CV,CD] = dwt2(X,'wname')[CA,CH,CV,CD] = dwt2(X,Lo_D,Hi_D) [CA,CH,CV,CD] = dwt2(...,'mode',MODE)

小波分解的逆過(guò)程就是小波重構(gòu),類似FFT和IFFT,很多時(shí)候傅里葉變換也被人拿來(lái)和小波變換作一些比對(duì)。

iwdt和iwdt2的使用語(yǔ)法分別如下所示:

%iwdt使用語(yǔ)法 X = idwt(CA,CD,'wname',L) X = idwt(CA,CD,LO_R,HI_R,L) X = idwt(...,'mode',MODE) %iwdt2使用語(yǔ)法 X = idwt2(CA,CH,CV,CD,'wname') X = idwt2(CA,CH,CV,CD,Lo_R,Hi_R) X = = idwt2(...,'mode',MODE)

除了以上的語(yǔ)法以外,在這些基礎(chǔ)上還有一些擴(kuò)展的語(yǔ)法,這些就留給“help”了。

應(yīng)用實(shí)例

clc; clear all; close all; n=randn(1,256); z=1.5*sin(1:256); s=n+z; [ca1,cd1]=dwt(s,'haar');%%等同于db1 subplot(311);plot(s,'b-');title('原始信號(hào)'); xlabel('x');ylabel('y'); subplot(323);plot(ca1,'b-');title('haar低頻系數(shù)1'); xlabel('x');ylabel('y'); subplot(324);plot(cd1,'b-');title('haar高頻系數(shù)1'); xlabel('x');ylabel('y'); %計(jì)算濾波器的相關(guān)值,再直接指定分解濾波器進(jìn)行系數(shù)的計(jì)算 [LO_D,HI_D]=wfilters('haar','d'); [ca2,cd2]=dwt(s,LO_D,HI_D); subplot(325);plot(ca2,'b-');title('haar低頻系數(shù)2'); xlabel('x');ylabel('y'); subplot(326);plot(cd2,'b-');title('haar高頻系數(shù)2'); xlabel('x');ylabel('y');

運(yùn)行結(jié)果

4、wavedec

note:Multi-level 1-D wavelet decomposition.

該函數(shù)的功能依然是小波分解,只是其層級(jí)變多了,所以可以猜到其語(yǔ)法和dwt會(huì)有點(diǎn)相似,如下:

[C,L] = wavedec(X,N,'wname') [C,L] = wavedec(X,N,LO_D,HI_D),

N必須是正整數(shù),其用意就是,返回信號(hào)X在N層的小波分解,C代表的是分解向量,L代表一個(gè)記錄向量。

應(yīng)用實(shí)例

%對(duì)音頻進(jìn)行小波分解 clc; clear all; close all; %產(chǎn)生聲音文件 load handel.mat filename = 'dzkr_SoundTest.wav'; audiowrite(filename,y,Fs); clear y Fs %將生成的音頻導(dǎo)入 s=audioread('dzkr_SoundTest.wav');%舊版本可能用的是wavread(),需要自行比對(duì)下版本差別 n=length(s); figure; subplot(211);plot(4000:n,s(4000:n)); xlim([4000 6200]);ylim([-1 1]); xlabel('信號(hào)序列');ylabel('信號(hào)值'); title('原始聲音圖像'); [C,L]=wavedec(s(4000:n),2,'db2'); subplot(212);plot(C);xlim([0 2200]);ylim([-2 2]); title('小波分解結(jié)構(gòu)'); xlabel('低頻系數(shù) and 第二層及第一層高頻的信號(hào)序列');ylabel('信號(hào)值');

運(yùn)行結(jié)果

wavedec也有二維的形式,即wavedec2,語(yǔ)法如下:

[C,S] = wavedec2(X,N,'wname') [C,S] = wavedec2(X,N,LO_D,HI_D)

其中S則變成了記錄矩陣,C依然還是分解向量,其他的參數(shù)與以上的一致。

很理所當(dāng)然的就可以想到逆過(guò)程了,不過(guò)可不再是加個(gè)i了,其逆過(guò)程變成了waverec,二維則是waverec2,兩者的語(yǔ)法分別為:

%waverec X = waverec(C,L,'wname') X = waverec(C,L,LO_R,HI_R) %waverec2 X = waverec2(C,S,'wname') X = waverec2(C,S,LO_R,HI_R)

5、wrcoef

這個(gè)函數(shù)也是重構(gòu)的功能,和waverec有點(diǎn)類似,用法如下:

X = wrcoef('type',C,L,'wname',N) X = wrcoef('type',C,L,LO_R,HI_R,N) X = wrcoef('type',C,L,'wname') X = wrcoef('type',C,L,LO_R,HI_R)

參數(shù)上和waverec的也基本一致,不過(guò)多了一個(gè)‘type’,而且N

有N的就是相當(dāng)于進(jìn)行N層重構(gòu),且N的值和‘type’有關(guān)系,type可取低頻‘a(chǎn)’或高頻’d’,取低頻‘a(chǎn)’的時(shí)候,N最小可以為0;兩種類型下N的值都得滿足于:N <= length(L)-2,若沒有指定N,則默認(rèn)在N = length(L)-2進(jìn)行重構(gòu)。

應(yīng)用實(shí)例

clc; clear all; close all; N=1000; t=1:N; %產(chǎn)生信號(hào) sig1=sin(0.3*t);%正弦波 %三角波 sig2(1:500)=((1:N/2)-1)/500; sig2(501:N)=(N-((N/2+1):1000))/500; sig=sig1+sig2;%疊加信號(hào) [C,L]=wavedec(sig,2,'db6');%進(jìn)行小波分解 a1=wrcoef('a',C,L,'db6',1);%重構(gòu)第1層逼近系數(shù) a2=wrcoef('a',C,L,'db6',2);%重構(gòu)第2層逼近系數(shù) d1=wrcoef('d',C,L,'db6',1);%重構(gòu)第1層細(xì)節(jié)系數(shù) d2=wrcoef('d',C,L,'db6',2);%重構(gòu)第2層細(xì)節(jié)系數(shù) subplot(511);plot(sig);xlabel('信號(hào)序列');ylabel('原始信號(hào)'); subplot(512);plot(a1);xlabel('信號(hào)序列');ylabel('a1'); subplot(513);plot(a2);xlabel('信號(hào)序列');ylabel('a2'); subplot(514);plot(d1);xlabel('信號(hào)序列');ylabel('d1'); subplot(515);plot(d2);xlabel('信號(hào)序列');ylabel('d2');

運(yùn)行結(jié)果

結(jié)語(yǔ)

本篇暫告一段落,仔細(xì)看完的話,你會(huì)發(fā)現(xiàn)本篇介紹到的小波分析展示了其”選取濾波器“的功能,之后還會(huì)寫一篇用小波分析的知識(shí)做一些圖像處理,比如圖像去噪和圖像壓縮,音頻的話,本篇已經(jīng)略微涉及到了音頻信號(hào)簡(jiǎn)單分解,深入了解就不折騰了,還是等該系列的下篇關(guān)于小波分析在圖像處理的部分應(yīng)用吧~


更多精彩,等你發(fā)現(xiàn)~


總結(jié)

以上是生活随笔為你收集整理的Matlab系列之小波分析基础的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。