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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

小波包分解、重构、去噪与matlab函数使用

發(fā)布時間:2023/12/31 循环神经网络 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 小波包分解、重构、去噪与matlab函数使用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

小波包分解與重構目錄

  • 1 小波包分解、重構原理
    • 1.1 小波變換
    • 1.2 小波包變換
  • 2 小波包使用到的函數(shù)及示例代碼
    • 2.1 小波包分解
      • 2.1.1 T = wpdec(X,N,'wname')
      • 2.1.2 X = wpcoef(T,N)
    • 2.2 小波包重構
      • 2.2.1 X = wprcoef(T,N)
      • 2.2.2 [T,X] = wpjoin(T,N)
      • 2.2.3 T = write(T,'cfs',NODE,COEFS)
      • 2.2.4 X = wprec(T)
      • 2.2.5 原始信號小波包分解后的重構方法
    • 2.3 小波包去噪
      • 2.3.1 [THR,SORH,KEEPAPP,CRIT] = ddencmp(IN1,IN2,X)
      • 2.3.2 [XC,CXC,LXC,PERF0,PERFL2] = wdencmp('gbl',X,'wname',N,THR,SORH,KEEPAPP)
  • 參考文獻

1 小波包分解、重構原理

1.1 小波變換

小波變換只對信號的低頻部分做進一步分解,而對高頻部分也即信號的細節(jié)部分不再繼續(xù)分解,所以小波變換能夠很好地表征一大類以低頻信息為主要成分的信號,不能很好地分解和表示包含大量細節(jié)信息(細小邊緣或紋理)的信號,如非平穩(wěn)機械振動信號、遙感圖象、地震信號和生物醫(yī)學信號等。

1.2 小波包變換

小波包變換既可以對低頻部分信號進行分解,也可以對高頻部分進行分解,而且這種分解既無冗余,也無疏漏,所以對包含大量中、高頻信息的信號能夠進行更好的時頻局部化分析。

2 小波包使用到的函數(shù)及示例代碼


以上即是小波包樹,其中節(jié)點的命名規(guī)則是從(1,0)開始,叫1號, (1,1)是2號………依此類推,(3,0)是7號,(3,7)是14號。 每個節(jié)點都有對應的小波包系數(shù),這個系數(shù)決定了頻率的大小,也就是說頻率信息已經(jīng)有了,但是時域信息在哪里呢? 那就是 order。 這個order就是這些節(jié)點的順序,也就是頻率的順序。

2.1 小波包分解

2.1.1 T = wpdec(X,N,‘wname’)

T = wpdec(X,N,‘wname’) 小波分解函數(shù)
T為小波包分解樹,X為待分解信號,N分解層數(shù),'wname’小波基選擇

% Load signal. 載入原始信號 load noisdopp; x = noisdopp;figure(1); subplot(211); plot(x); title('Original signal');% Decompose x at depth 3 with db1 wavelet packets % using Shannon entropy. wpt = wpdec(x,3,'db1'); plot(wpt) % 打印小波包分解樹


2.1.2 X = wpcoef(T,N)

X = wpcoef(T,N) 小波包分解系數(shù)函數(shù)
X為返回的小波包系數(shù),T為小波包分解樹,N為小波樹節(jié)點

% Read packet (2,1) coefficients. 讀取小波包(2,1)節(jié)點系數(shù) cfs = wpcoef(wpt,[2 1]);figure(1); subplot(212); plot(cfs); title('Packet (2,1) coefficients');


需要注意的是:小波包節(jié)點系數(shù)的長度等于250,為原始信號長度1000/N = 250。其中N為2^2,為第N層小波包樹的節(jié)點個數(shù)

2.2 小波包重構

2.2.1 X = wprcoef(T,N)

X = wprcoef(T,N) 小波包重構系數(shù)函數(shù)
X為重構后的小波包節(jié)點系數(shù),T為小波包分解樹,N為小波分解節(jié)點數(shù)

% Reconstruct packet (2,1). 重構小波包節(jié)點系數(shù)(2,1) rcfs = wprcoef(wpt,[2 1]);figure(1); subplot(212); plot(rcfs); title('Reconstructed packet (2,1)');


需要注意的是:小波重構系數(shù)的信號長度與原始信號長度一致

2.2.2 [T,X] = wpjoin(T,N)

[T,X] = wpjoin(T,N) 用于合并小波包樹的節(jié)點
返回T:為修改后的小波包樹T
返回X:合并后的節(jié)點系數(shù)
T:輸入的小波包數(shù)T
N:為合并的節(jié)點

% Recompose packet (1,1) 重寫小波包節(jié)點(1,1) wpt = wpjoin(wpt,[1 1]);% Plot wavelet packet tree wpt. plot(wpt)

% 創(chuàng)建小波包樹 load noisdopp; x = noisdopp; t = wpdec(x,3,'db3'); t = wpjoin(t,[4;5]); % 合并第45個小波樹節(jié)點 plot(t);

2.2.3 T = write(T,‘cfs’,NODE,COEFS)

T = write(T,‘cfs’,NODE,COEFS) 將
返回T:修改后的小波包樹
T:輸入的小波包樹
NODE:小波包節(jié)點序號
COEFS:小波包系數(shù)

% 將值寫入第456個小波包樹節(jié)點中 sNod = read(t,'sizes',[4,5,7]); cfs4 = zeros(sNod(1,:)); cfs5 = zeros(sNod(2,:)); cfs7 = zeros(sNod(3,:)); t = write(t,'cfs',4,cfs4,'cfs',5,cfs5,'cfs',7,cfs7);% Plot tree t and click the node (0,0) (see the plot function). % 打印原始節(jié)點(0,0,即小波包重構信號的節(jié)點 plot(t)

2.2.4 X = wprec(T)

對于一位小波包分解重構
X = wprec(T) 重組小波包
X:為小波包分解樹
T:重構后的信號

wpt = write(t,'cfs',4,cfs4,'cfs',5,cfs5,'cfs',7,cfs7);% 將值寫入第456個小波包樹節(jié)點中 xrec = wprec(wpt); % 重構后的信號

2.2.5 原始信號小波包分解后的重構方法

  • 可由小波包分解后,利用wprcoef(T,N)函數(shù),對最后一層的小波包進行系數(shù)重構,得到與原始數(shù)據(jù)長度一樣的重構小波包系數(shù),然后將小波包系數(shù)相加,可以得到原始信號
  • 可以使用write(T,‘cfs’,NODE,COEFS)函數(shù),將小波包系數(shù)加入小波包分解樹,然后利用wprec(T) 函數(shù)進行原始信號重構,即可得到原始信號
  • 2.3 小波包去噪

    2.3.1 [THR,SORH,KEEPAPP,CRIT] = ddencmp(IN1,IN2,X)

    [THR,SORH,KEEPAPP,CRIT] = ddencmp(IN1,IN2,X)
    THR是閾值,SORH是閾值函數(shù),KEEPAPP近似系數(shù),CRIT熵的選擇(僅用于小波包)
    KEEPAPP:選擇0或1可對近似系數(shù)進行閾值處理
    IN1:‘den’ 表示去噪, ‘cmp’ 表示壓縮.
    IN2:'wv’用于小波,'wp’用于小波包
    X:表示待去噪的信號

    下面是小波去噪代碼:

    [thr,sorh,keepapp] = ddencmp('den','wv',x); [A,D] = dwt(x,'db1'); noiselev = median(abs(D))/0.6745; thresh = sqrt(2*log(length(x)))*noiselev;

    2.3.2 [XC,CXC,LXC,PERF0,PERFL2] = wdencmp(‘gbl’,X,‘wname’,N,THR,SORH,KEEPAPP)

    [XC,CXC,LXC,PERF0,PERFL2] = wdencmp(‘gbl’ or ‘lvd’,X,‘wname’,N,THR,SORH,KEEPAPP)
    返回值XC:
    返回值CXC:XC的小波包分解結構
    返回值LXC:XC的小波包分解結構
    返回值PERF0:恢復L^2的范數(shù)百分比, 是用百分制表明降噪所保留的能量成分
    返回值PERFL2:壓縮L^2的范數(shù)百分比, 是用百分制表明壓縮所保留的能量成分
    ‘gbl’:表示每層都采用同一個閾值進行處理
    ‘lvd’:對每層采用不同的閾值進行處理
    X:輸入的信號
    ‘wname’:小波基
    N:小波分解的層數(shù)
    THR:閾值向量的長度
    SORH:閾值函數(shù),'s’軟閾值,'h’硬閾值
    KEEPAPP:0對低頻近似系數(shù)不進行閾值量化處理;1對低頻近似系數(shù)進行閾值量化處理

    [thr,sorh,keepapp] = ddencmp('den','wv',x); xd = wdencmp('gbl',x,'db3',2,thr,sorh,keepapp); subplot(211) plot(x); title('Original Signal'); subplot(212) plot(xd); title('Denoised Signal');

    參考文獻

    1.matlab自帶的help
    2. https://blog.csdn.net/cqfdcw/article/details/84995904.

    總結

    以上是生活随笔為你收集整理的小波包分解、重构、去噪与matlab函数使用的全部內容,希望文章能夠幫你解決所遇到的問題。

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