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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java 离散小波变换公式_一维离散小波变换函数使用总结

發布時間:2023/12/31 java 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java 离散小波变换公式_一维离散小波变换函数使用总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

matlab自帶的小波分析工具非常全!實際工作中直接用即可。但是剛開始使用會遇到挫折:它的函數太多,并且它們的"名稱、功能、配套使用"等要求都有些"相近",很容易導致糊涂!因此本文的總結與配套實例很具有參考價值!

下面先列舉3條關鍵理解,后面會用到:

小波分解,分解到的"不是頻率域"!可以抽象理解為"小波域",但其實沒有實際內涵!傅里葉變換到頻率域是有實際內涵的;

小波分解得到的"小波系數"是"沒有量綱"的!它其實是"沒有實際意義的數",需要做系數重構才能從"小波域"再轉回到"時域";

"系數重構"與"重構信號"不是一個東西!系數重構就是把無量綱的小波分解系數變回到有意義的"時域";"重構信號"就是把分解的完整恢復回去。

幾種函數的說法與適用處

下面介紹最容易讓人糊涂的matlab一些自帶函數的說法與用途(都是針對離散小波變換),不同的函數有不同的適用處于搭配函數.

分解與重構/恢復信號:

1級分解與重構原始信號函數為: dwt和dwt2 與 idwt和idwt2;

多級(包括1級)分解與重構原始信號函數為: wavedec和wavedec2 與 waverec和waverec2;所以wavedec可涵蓋dwt。

系數重構:需理解其作用 √ √ √

1級分解的系數重構用函數的是: upcoef和upcoef2;

多級分解的系數重構用函數的是: wrcoef和wrcoef2。

系數提取:

多級分解低頻近似系數提取:appcoef和appcoef2;

多解分解高頻細節系數提取:detcoef和detcoef2。

說明:"系數提取"只有"多級分解"才會用的到! 1級分解是不需要"系數提取"的!因為就分成了低頻和高頻2個部分,直接用1維或2維分解函數的返回結果就行了!所以:多級分解的系數提取,就相當于1級分解后的返回結果的直接畫圖。

上面就是容易搞混的幾個操作與使用搭配。

還是要著重強調一點:用自帶的函數做完"小波分解"后,得到的"小波系數"是"沒有量綱"的!可以理解為原始信號域映射到小波域(小波域不是什么具體的東西,只是為了方便理解)!只有把分解出來的"小波系數"再做"系數重構"后,才能回到原始的信號域,得到原始信號的不同的低頻和高頻子信號成分(還是時域的顯示)。

下面我們先給出具體的例子(一維離散數據),再總結每個函數具體的語法:

例子1:一維信號1級分解(dwt)、系數重構(upcoef)、重構/恢復信號(idwt):

clc; clear;

% 導入自帶的一個一維電壓信號, 取前4096個點

load leleccum;

s = leleccum(1:4096);

% 一級"分解": 時域 → 小波域

% 說明: 2個"系數(低+高)"的尺寸全部是一半 2048

% 命令: dwt

[cA1,cD1] = dwt(s,'haar');

figure(1);

subplot(2,2,1); plot(cA1); title('小波域: 低頻近似部分(點數少一半)'); grid on;

xlabel('小波域: 橫軸坐標無實際意義');

subplot(2,2,2); plot(cD1); title('小波域: 高頻細節部分(點數少一半)'); grid on;

xlabel('小波域: 橫軸坐標無實際意義');

% 1級分解系數"重構": 小波域 → 時域

% 說明: 2個"子信號(低+高)"的尺寸全部和原始大小一樣 4096!!

% 命令: upcoef

A1 = upcoef('a',cA1,'haar',1);

D1 = upcoef('d',cD1,'haar',1);

subplot(2,2,3); plot(A1); title('時域: 原始信號低頻近似部分(點數一樣)'); grid on;

xlabel('采樣點'); ylabel('振幅');

subplot(2,2,4); plot(D1); title('時域: 原始信號高頻細節部分(點數一樣)'); grid on;

xlabel('采樣點'); ylabel('振幅');

% 重構原始信號: 參數用的還是分解出的系數

% 命令: idwt

s_rec = idwt(cA1,cD1,'haar');

figure(2);

subplot(1,2,1); plot(s); title('原始時域信號: 4096個采樣點'); grid on;

xlabel('采樣點'); ylabel('振幅');

subplot(1,2,2); plot(s_rec); title('重構原始信號: 點數一樣'); grid on;

xlabel('采樣點'); ylabel('振幅');

suptitle('一維原始信號與重構原始信號');

figure(1)效果:

圖1:一維1級小波(域)系數圖像與系數重構時域子信號

figure(2)效果:

圖2:原始信號與一維1級分解后重構信號對比

例子2:一維信號多級分解(wavedec)、系數重構(wrcoef)、系數提取(appcoef + detcoef)、重構/恢復信號(idwt):

clc; clear;

% 導入自帶的一個一維電壓信號, 取前4096個點

load leleccum;

s = leleccum(1:4096);

% 多尺度/級分解:

% 命令: wavedec

[C,L]=wavedec(s,3,'db1');

% 系數提取: 提取經過變換之后的信號: 小波域下的低頻系數(近似信息)和高頻系數(細節信號), 即"時域→小波域"!

% 說明: 系數提取是多級分解才用!1級分解有就分成2個部分,不需要提取。

% 命令: appcoef低頻系數提取; detcoef高頻系數提取

cA3=appcoef(C,L,'db1',3); % 低: 3表示第三層

cD3=detcoef(C,L,3);

cD2=detcoef(C,L,2);

cD1=detcoef(C,L,1); % 3個高: 最后的數字表示的是層數

figure(1)

% 4個部分長度不一樣!

subplot(2,2,1); plot(cA3); title('3級分解中低頻近似部分'); grid on; % 長度 1/2^3 = 1/8

xlabel('小波域: 橫軸坐標無實際意義');

subplot(2,2,2); plot(cD3); title('3級分解中高頻細節部分'); grid on; % 長度 1/2^3 = 1/8

xlabel('小波域: 橫軸坐標無實際意義');

subplot(2,2,3); plot(cD2); title('2級分解中高頻細節部分'); grid on; % 長度 1/2^2 = 1/4

xlabel('小波域: 橫軸坐標無實際意義');

subplot(2,2,4); plot(cD1); title('1級分解中高頻細節部分'); grid on; % 長度 1/2^1 = 1/2

xlabel('小波域: 橫軸坐標無實際意義');

suptitle('時域→小波域');

% 多級重構系數: 從小波域還原出信號高頻部分的子信號, 即從"小波域→時域"!

% 命令: wrcoef 參數中a是低頻, d是高頻

A3=wrcoef('a',C,L,'db1',3); % 低

D3=wrcoef('d',C,L,'db1',3);

D2=wrcoef('d',C,L,'db1',2);

D1=wrcoef('d',C,L,'db1',1); % 3個高

figure(2)

subplot(2,2,1); plot(A3); title('原始信號中的低頻信號成分'); grid on;

xlabel('采樣點'); ylabel('振幅');

subplot(2,2,2); plot(D3); title('原始信號中的高頻信號成分1'); grid on;

xlabel('采樣點'); ylabel('振幅');

subplot(2,2,3); plot(D2); title('原始信號中的高頻信號成分2'); grid on;

xlabel('采樣點'); ylabel('振幅');

subplot(2,2,4); plot(D1); title('原始信號中的高頻信號成分3'); grid on;

xlabel('采樣點'); ylabel('振幅');

suptitle('小波域→時域');

% 重構原始信號: 濾波后單純的恢復原始信號

% 命令: waverec

s_rec = waverec(C,L,'db1');

figure(3);

subplot(1,2,1); plot(s); title('原始信號'); grid on;

xlabel('采樣點'); ylabel('振幅');

subplot(1,2,2); plot(s_rec); title('重構原始信號'); grid on;

xlabel('采樣點'); ylabel('振幅');

suptitle('時域原始與重構原始信號');

figure(1)效果:

圖3:一維多級分解后小波(域)系數圖像

figure(2)效果:

圖4:一維多級分解后系數重構時域子信號

figure(3)效果:

圖5:原始信號與一維多級分解后重構信號對比

函數語法總結

語法總結按照上面的2個例子(一維離散數據)進行。

(1)首先總結例1中的函數語法:

一維1級分解函數:dwt

[cA1,cD1] = dwt(x,'wavename');

% dwt參數:x是原始信號,'wavename'是自己選的小波基函數(例如'haar')

% 左邊返回值:cA1低頻近似系數,cD1高頻細節系數。

一維1級系數重構函數:upcoef

A1 = upcoef('a', cA1, 'wavename', 1); % 低頻系數重構

D1 = upcoef('d', cD1, 'wavename', 1); % 高頻系數重構

% upcoef參數:'a'表示低頻近似/'d'表示高頻細節,cA1與cD1系數,1就是當前是1解分解(不變);

% 左邊返回值:A1是低頻近似系數的重構結果,D1是高頻細節系數的重構結果。

一維1級分解重構/恢復信號函數:idwt

s_rec = idwt(cA1,cD1,'wavename');

% idwt參數:cA1和cD1就是dwt分解得到的低頻近似和高頻細節的系數;

% 左邊返回值:s_rec就是重構/恢復的原始信號。

(2)總結例2中的函數語法:

一維多級分解函數:wavedec

[C,L] = wavedec(s, N, 'wavename');

% wavedec參數:s是原始信號,N是分解級數,'wavename'小波基函數;

% 左邊返回值:C是小波分解后的各個系數,L是相應小波系數的個數;

這個函數的返回值可能憑語言不好理解,直接看圖6示意圖就很好理解。注意到:C中是所有分解出來的東西(系數)的一個大匯總,即都在一個大矩陣里!所以就需要從C中把各個系數提取出來。

圖6:wavedec返回值C和L的含義示意圖

一維多級系數提取函數:appcoef與detcoef

% 以3級分解為例:

[C,L] = wavedec(s,3,'db1');

% 各級系數提取:

% 最后剩的那個低頻近似部分(1個)的系數提取:appcoef

cA3 = appcoef(C, L, 'wavename', N);

% appcoef參數:C和L就是上面分解出來的東西,'wavename'和分解用的小波基一致,N和分解的級數一致;

% 左邊返回值:最后那個低頻近似的系數(從C和L中提取出來了)。

% 每一級中的高頻細節部分(N個)的系數提取:detcoef

cD3 = detcoef(C, L, 3);

cD2 = detcoef(C, L, 2);

cD1 = detcoef(C, L, 1);

% detcoef參數:C和L和同意,后面的數字就是分解的層數;

% 左邊返回值:每一級高頻近似部分的系數(從C和L中提取出來)

說明:分解N級,要做N個高頻細節部分的的系數提取,低頻近似只用做一次!

一維多級系數重構函數:wrcoef

% 以3級分解為例:

[C,L] = wavedec(s,3,'db1');

% 直接上實例說明:'wavename'用的是'db1'

A3 = wrcoef('a',C,L,'db1',3); % 最后那個低頻近似部分的系數重構

D3 = wrcoef('d',C,L,'db1',3); % 3級高頻細節部分系數重構

D2 = wrcoef('d',C,L,'db1',2); % 2級高頻細節部分系數重構

D1 = wrcoef('d',C,L,'db1',1); % 1級高頻細節部分系數重構

% wrcoef參數:'a'或'd'代表"低頻近似"或"高頻細節",C和L同意,最后的數字是該部分所在的級數;

% 左邊返回指:各個部分系數重構的結果。

說明:分解N級,要做N個高頻細節部分的的系數重構,低頻近似只用做一次!

一維多級分解重構/恢復信號函數:waverec

s_rec = waverec(C,L,'wavename');

% waverec參數:C和L還是同意,'wavename'和上面用的小波基保持一致;

% 左邊返回值:s_rec就是重構/恢復的原始信號。

注意:重構/恢復原始信號,用的是分解得到的系數!而不是系數重構后的東西。

至此,一維離散小波1級和多級分解所有會用到的函數就都介紹完畢了!以表總結:

一維1級分解

一維多級分解

分解函數

dwt

wavedec

系數提取函數

不需要

appcoef 和 detcoef

系數重構函數

upcoef

wrcoef

重構/恢復信號函數

idwt

waverec

總結

以上是生活随笔為你收集整理的Java 离散小波变换公式_一维离散小波变换函数使用总结的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 91在线视频播放 | 我的邻居在线观看 | 91精品国产综合久久国产大片 | 国产成人精品三级麻豆 | 91精品婷婷国产综合久久竹菊 | 超碰av人人 | 天天精品视频 | 五月天婷婷视频 | 沟厕沟厕近拍高清视频 | 一区二区亚洲视频 | 午夜国产一区二区 | 精品美女久久久久 | 久久久噜噜噜久久 | 偷拍视频久久 | 亚洲三级国产 | 欧美区二区三区 | 久久国产精品波多野结衣av | 久久久精品人妻一区二区三区色秀 | 在线看片你懂的 | 婷婷激情社区 | 男女午夜视频在线观看 | 欧美精品二区 | 成人影片在线播放 | 制服丝袜av一区二区三区下载 | 都市激情亚洲综合 | 国产www在线观看 | 天天摸天天做天天爽水多 | 亚洲每日更新 | 97成人人妻一区二区三区 | 波多野结衣av电影 | 依依成人在线视频 | 欧美理伦片在线播放 | 亚洲日本激情 | 国产日韩三级 | 国产偷人 | 性做久久久久久久久 | 国产群p| 毛片无码一区二区三区a片视频 | 中文字幕第一页在线视频 | 一本在线免费视频 | 久久中文字幕一区 | 九九热视频在线观看 | japanese国产在线观看 | 精品成人免费视频 | 97在线免费视频 | 天天躁日日躁狠狠躁av麻豆 | 日日躁夜夜躁狠狠久久av | 寂寞人妻瑜伽被教练日 | 国产黄色高清 | www久久精品 | 国产乱码精品一区二区三区精东 | 欧美片 | 免费成人深夜夜行p站 | 一区二区观看 | 视频区图片区小说区 | 免费一级毛片麻豆精品 | 亚洲性视频在线 | 丁香花电影在线观看免费高清 | 最近中文字幕无免费 | 黄色一级片| 色91精品久久久久久久久 | 黄色免费网站观看 | 污片网站在线观看 | 农村激情伦hxvideos | 亚洲涩色 | 欧美亚洲综合网 | 亚洲天堂男人 | 久久久久亚洲AV成人网人人小说 | 日韩中文字幕免费观看 | 成人免费网站视频 | 懂色av一区二区三区 | 国产h片在线观看 | 亚洲精品综合在线 | 进去里视频在线观看 | 国产精品h | 黄色网战大全 | 性欧美在线视频观看 | 免费av的网站 | 日韩欧美中文字幕一区 | 国产欧美又粗又猛又爽 | 免费毛片视频网站 | 亚洲成人黄色网址 | 黄色一级片免费播放 | 免费看的黄色小视频 | 九九热在线精品视频 | 97香蕉久久夜色精品国产 | 国产成人精品白浆久久69 | 欧美巨大荫蒂茸毛毛人妖 | 日韩在线三级 | 97成网| 夜夜嗨av一区二区三区免费区 | 久久黄色一级片 | 日韩最新视频 | 国产精品午夜未成人免费观看 | 久久国内精品视频 | 91精品国产手机 | 亚洲欧美另类视频 | 美女视频三区 | 久久久久久av无码免费网站下载 |