『壹』 MATLAB 小波包分解與重構
我想問你可以給我小波包分解的程序參考一下嗎?我也在做這部分,相信你已經完成了,幫我個忙,謝了!
『貳』 怎麼用matlab實現小波變換急!!!
Allnodes 計算樹結點
appcoef 提取一維小波變換低頻系數
appcoef2 提取二維小波分解低頻系數
bestlevt 計算完整最佳小波包樹
besttree 計算最佳(優)樹
biorfill 雙正交樣條小波濾波器組
biorwavf 雙正交樣條小波濾波器
centfrq 求小波中心頻率
cgauwavf Complex Gaussian小波
cmorwavf coiflets小波濾波器
cwt 一維連續小波變換
dbaux Daubechies小波濾波器計算
dbwavf Daubechies小波濾波器 dbwavf(W) W='dbN' N=1,2,3,...,50
ddencmp 獲取默認值閾值(軟或硬)熵標准
depo2ind 將深度-位置結點形式轉化成索引結點形式
detcoef 提取一維小波變換高頻系數
detcoef2 提取二維小波分解高頻系數
disp 顯示文本或矩陣
drawtree 畫小波包分解樹(GUI)
dtree 構造DTREE類
dwt 單尺度一維離散小波變換
dwt2 單尺度二維離散小波變換
dwtmode 離散小波變換拓展模式
dyaddown 二元取樣
dyap 二元插值
entrupd 更新小波包的熵值
fbspwavf B樣條小波
gauswavf Gaussian小波
get 獲取對象屬性值
idwt 單尺度一維離散小波逆變換
idwt2 單尺度二維離散小波逆變換
ind2depo 將索引結點形式轉化成深度—位置結點形式
intwave 積分小波數
isnode 判斷結點是否存在
函數指 含義
istnode 判斷結點是否是終結點並返回排列值
iswt 一維逆SWT(Stationary Wavelet Transform)變換
iswt2 二維逆SWT變換
leaves
mexihat 墨西哥帽小波
meyer Meyer小波
meyeraux Meyer小波輔助函數
morlet Morlet小波
nodease 計算上溯結點
nodedesc 計算下溯結點(子結點)
nodejoin 重組結點
nodepar 尋找父結點
nodesplt 分割(分解)結點
noleaves
ntnode
ntree
orthfill 正交小波濾波器組
plot 繪制向量或矩陣的圖形
qmf 鏡像二次濾波器
rbiowavf
read 讀取二進制數據
readtree 讀取小波包分解樹
scal2frq
set
shanwavf
swt 一維SWT(Stationary Wavelet Transform)變換
swt2 二維SWT變換
symaux
symwavf Symlets小波濾波器
thselect 信號消噪的閾值選擇
thodes
treedpth 求樹的深度
treeord 求樹結構的叉數
函數指令 含義
upcoef 一維小波分解系數的直接重構
upcoef2 二維小波分解系數的直接重構
upwlev 單尺度一維小波分解的重構
upwlev2 單尺度二維小波分解的重構
wavedec 單尺度一維小波分解
wavedec2 多尺度二維小波分解
wavedemo 小波工具箱函數demo
wavefun 小波函數和尺度函數
wavefun2 二維小波函數和尺度函數
wavemenu 小波工具箱函數menu圖形界面調用函數
wavemngr 小波管理函數
waverec 多尺度一維小波重構
waverec2 多尺度二維小波重構
wbmpen
wcodemat 對矩陣進行量化編碼
wdcbm
wdcbm2
wden 用小波進行一維信號的消噪或壓縮
wdencmp
wentropy 計算小波包的熵
wextend
wfilters 小波濾波器
wkeep 提取向量或矩陣中的一部分
wmaxlev 計算小波分解的最大尺度
wnoise 產生含雜訊的測試函數數據
wnoisest 估計一維小波的系數的標准偏差
wp2wtree 從小波包樹中提取小波樹
spbmpen
wpcoef 計算小波包系數
wpcutree 剪切小波包分解樹
wpdec 一維小波包的分解
wpdec2 二維小波包的分解
wpdencmp 用小波包進行信號的消噪或壓縮
wpfun 小波包函數
wpjoin
wprcoef 小波包分解系數的重構
wprec 一維小波包分解的重構
wprec2 二維小波包分解的重構
wpsplt 分割(分解)小波包
wpthcoef 進行小波包分解系數的閾值處理
wptree
wpviewcf
wrcoef 對一維小波系數進行單支重構
wrcoef2 對二維小波系數進行單支重構
wrev 向量逆序
write 向緩沖區內存寫進數據
wtbo
wthcoef 一維信號的小波系數閾值處理
wthcoef2 二維信號的小波系數閾值處理
wthresh 進行軟閾值或硬閾值處理
wthrmngr 閾值設置管理
wtreemgr 管理樹結構
wvarchg
『叄』 我想對一個0-32Hz頻率范圍的信號進行3層小波包分解,並看第3層中子波的頻率范圍,可是對應不上,求幫忙
樓主這樣濾波估計得不到0-32Hz的頻率,應該引入了很多高頻雜訊。
『肆』 matlab中怎樣實現多層小波重構
(1)程序所用的小波函數只有非標準的Haar小波,其濾波器組為 Lo_D=[1/2 1/2], Hi_D=[-1/2 1/2],是固化在 mydwt2.m 的程序中的,不能選擇其他的小波函數;
(2)非標準的Haar小波,其分解出來的系數矩陣中,高頻系數的細節內容(輪廓、邊緣等特徵)不明顯;
(3)函數 mydwt2 中列變換的矩陣對象為輸入矩陣,這是錯誤的,其矩陣對象應該是行變換後的緩存矩陣;
(4)函數 mydwt2 的輸出用[LL,HL,LH,HH]表示,不是很規范,應改為[cA,cV,cH,cD]來表示,即一級小波變換輸出的系數矩陣有4個部分:平均部分、垂直細節部分、水平細節部分和對角線細節部分。
(5)函數 mywavedec2 的輸出 y 是與輸入矩陣 x 相同大小的矩陣,並且已將N級分解後所有的平均、細節系數組合成一體的。實際上,這種定義只對Haar小波有效。
(6)原程序中要調用 modmat 函數對圖像矩陣進行修剪,使之能被 2 的 N 次方整除,主要是為了生成塔式結構圖像而設的,對上述問題修正後,這個 modmat 函數已不需使用了。
針對上述問題,我對程序作了修正,發布在今天的3篇文章里,請大家點擊查看。新修正的程序更為簡潔易懂,功能也有所增強,可以用任意的小波函數進行小波分解,可根據小波分解系數矩陣重構出指定分解級的低頻系數和原始圖像。
(原)自己動手編寫小波信號分解與重構的Matlab程序
下面,我把自己編寫的小波一維、二維信號分解和重構Matlab程序共享出來,也希望有朋友共享自編的程序,共同學習,提高程序的效率和簡潔性。
1、《小波圖像分解與重構程序存在的問題與解決辦法》
首先要說明的一點是,雖然是自己編寫Matlab程序,但並不是說一點也不用Matlab的自帶函數。我們要編寫的是實現小波變換的主要功能函數,而繪圖等基本功能還是要用到Matlab函數的。而且,根據小波變換的濾波器組原理,原始信號要通過低通、高通濾波器處理,這里就涉及到卷積這一運算步驟。卷積——FFT演算法的實現,相信很多朋友都能用Matlab、C語言等來實現,不過與Matlab自帶的用機器語言編寫的FFT程序相比,運算速度一般會慢幾倍、幾十倍。所以,我的程序里邊涉及卷積的就直接調用Matlab的conv()函數了。
我們知道,小波變換的一級分解過程是,原始信號分別進行低通、高通濾波,再分別進行二元下抽樣,就得到低頻、高頻(也稱為平均、細節)兩部分系數;而多級分解則是對上一級分解得到的低頻系數再進行小波分解,是一個遞歸過程。以下是一維小波分解的程序:
function [cA,cD] = mydwt(x,lpd,hpd,dim);
% 函數 [cA,cD]=MYDWT(X,LPD,HPD,DIM) 對輸入序列x進行一維離散小波分解,輸出分解序列[cA,cD]
% 輸入參數:x——輸入序列;
% lpd——低通濾波器;
% hpd——高通濾波器;
% dim——小波分解級數。
% 輸出參數:cA——平均部分的小波分解系數;
% cD——細節部分的小波分解系數。
cA=x; % 初始化cA,cD
cD=[];
for i=1:dim
cvl=conv(cA,lpd); % 低通濾波,為了提高運行速度,調用MATLAB提供的卷積函數conv()
dnl=downspl(cvl); % 通過下抽樣求出平均部分的分解系數
cvh=conv(cA,hpd); % 高通濾波
dnh=downspl(cvh); % 通過下抽樣求出本層分解後的細節部分系數
cA=dnl; % 下抽樣後的平均部分系數進入下一層分解
cD=[cD,dnh]; % 將本層分解所得的細節部分系數存入序列cD
end
function y=downspl(x);
% 函數 Y=DOWMSPL(X) 對輸入序列進行下抽樣,輸出序列 Y。
% 下抽樣是對輸入序列取其偶數位,舍棄奇數位。例如 x=[x1,x2,x3,x4,x5],則 y=[x2,x4].
N=length(x); % 讀取輸入序列長度
M=floor(N/2); % 輸出序列的長度是輸入序列長度的一半(帶小數時取整數部分)
i=1:M;
y(i)=x(2*i);
而重構則是分解的逆過程,對低頻系數、高頻系數分別進行上抽樣和低通、高通濾波處理。要注意重構時同一級的低頻、高頻系數的個數必須相等。
function y = myidwt(cA,cD,lpr,hpr);
% 函數 MYIDWT() 對輸入的小波分解系數進行逆離散小波變換,重構出信號序列 y
% 輸入參數:cA —— 平均部分的小波分解系數;
% cD —— 細節部分的小波分解系數;
% lpr、hpr —— 重構所用的低通、高通濾波器。
lca=length(cA); % 求出平均、細節部分分解系數的長度
lcd=length(cD);
while (lcd)>=(lca) % 每一層重構中,cA 和 cD 的長度要相等,故每層重構後,
% 若lcd小於lca,則重構停止,這時的 cA 即為重構信號序列 y 。
upl=upspl(cA); % 對平均部分系數進行上抽樣
cvl=conv(upl,lpr); % 低通卷積
cD_up=cD(lcd-lca+1:lcd); % 取出本層重構所需的細節部分系數,長度與本層平均部分系數的長度相等
uph=upspl(cD_up); % 對細節部分系數進行上抽樣
cvh=conv(uph,hpr); % 高通卷積
cA=cvl+cvh; % 用本層重構的序列更新cA,以進行下一層重構
cD=cD(1:lcd-lca); % 舍棄本層重構用到的細節部分系數,更新cD
lca=length(cA); % 求出下一層重構所用的平均、細節部分系數的長度
lcd=length(cD);
end % lcd < lca,重構完成,結束循環
y=cA; % 輸出的重構序列 y 等於重構完成後的平均部分系數序列 cA
function y=upspl(x);
% 函數 Y = UPSPL(X) 對輸入的一維序列x進行上抽樣,即對序列x每個元素之間
% 插零,例如 x=[x1,x2,x3,x4],上抽樣後為 y=[x1,0,x2,0,x3,0,x4];
N=length(x); % 讀取輸入序列長度
M=2*N-1; % 輸出序列的長度是輸入序列長度的2倍再減一
for i=1:M % 輸出序列的偶數位為0,奇數位按次序等於相應位置的輸入序列元素
if mod(i,2)
y(i)=x((i+1)/2);
else
y(i)=0;
end
end
我們知道,二維小波分解重構可以用一系列的一維小波分解重構來實現。以下程序是基於Haar小波的二維小波分解和重構過程:
function [LL,HL,LH,HH]=mydwt2(x);
% 函數 MYDWT2() 對輸入的r*c維矩陣 x 進行二維小波分解,輸出四個分解系數子矩陣[LL,HL,LH,HH]
% 輸入參數:x —— 輸入矩陣,為r*c維矩陣。
% 輸出參數:LL,HL,LH,HH —— 是分解系數矩陣的四個相等大小的子矩陣,大小均為 r/2 * c/2 維
% LL:低頻部分分解系數; HL:垂直方向分解系數;
% LH:水平方向分解系數; HH:對角線方向分解系數。
lpd=[1/2 1/2];hpd=[-1/2 1/2]; % 默認的低通、高通濾波器
[row,col]=size(x); % 讀取輸入矩陣的大小
for j=1:row % 首先對輸入矩陣的每一行序列進行一維離散小波分解
tmp1=x(j,:);
[ca1,cd1]=mydwt(tmp1,lpd,hpd,1);
x(j,:)=[ca1,cd1]; % 將分解系數序列再存入矩陣x中,得到[L|H]
end
for k=1:col % 再對輸入矩陣的每一列序列進行一維離散小波分解
tmp2=x(:,k);
[ca2,cd2]=mydwt(tmp2,lpd,hpd,1);
x(:,k)=[ca2,cd2]; % 將分解所得系數存入矩陣x中,得到[LL,Hl;LH,HH]
end
LL=x(1:row/2,1:col/2); % LL是矩陣x的左上角部分
LH=x(row/2+1:row,1:col/2); % LH是矩陣x的左下角部分
HL=x(1:row/2,col/2+1:col); % HL是矩陣x的右上角部分
HH=x(row/2+1:row,col/2+1:col); % HH是矩陣x的右下角部分
function y=myidwt2(LL,HL,LH,HH);
% 函數 MYIDWT2() 對輸入的子矩陣序列進行逆小波變換,重構出矩陣 y
% 輸入參數:LL,HL,LH,HH —— 是四個大小均為 r*c 維的矩陣
% 輸出參數:y —— 是一個大小為 2r*2c 維的矩陣
lpr=[1 1];hpr=[1 -1]; % 默認的低通、高通濾波器
tmp_mat=[LL,HL;LH,HH]; % 將輸入的四個矩陣組合為一個矩陣
[row,col]=size(tmp_mat); % 求出組合矩陣的行列數
for k=1:col % 首先對組合矩陣tmp_mat的每一列,分開成上下兩半
ca1=tmp_mat(1:row/2,k); % 分開的兩部分分別作為平均系數序列ca1、細節系數序列cd1
cd1=tmp_mat(row/2+1:row,k);
tmp1=myidwt(ca1,cd1,lpr,hpr); % 重構序列
yt(:,k)=tmp1; % 將重構序列存入待輸出矩陣 yt 的相應列,此時 y=[L|H]
end
for j=1:row % 將輸出矩陣 y 的每一行,分開成左右兩半
ca2=yt(j,1:col/2); % 分開的兩部分分別作為平均系數序列ca2、細節系數序列cd2
cd2=yt(j,col/2+1:col);
tmp2=myidwt(ca2,cd2,lpr,hpr); % 重構序列
yt(j,:)=tmp2; % 將重構序列存入待輸出矩陣 yt 的相應行,得到最終的輸出矩陣 y=yt
end
y=yt;
『伍』 matlab小波信號導入
matlab左下角start->toolboxes->more->wavelet->wavelet
toolbox
main
menu,此操作完成打開小波工具箱,小波包分析的話在工具箱中找到左上邊一塊的第二個wavelet
packet1-D,就進入小波包分析窗口,在該窗口上面的菜單欄,看到file點擊並進入load
有兩個選項,選signal,然後導入一維信號的.mat文件即可
『陸』 MATLAB里的Toolboxes怎麼使用急求高手指點!!!
MATLAB工具箱介紹
有三十多個工具箱大致可分為兩類:功能型工具箱和領域型工具箱。
功能型工具箱主要用來擴充MATLAB的符號計算功能、圖形建模模擬功能、文字處理功能以及與硬體實時交互功能,能用於多種學科。
領域型工具箱是專業性很強的。如圖像處理工具箱(Image Processing Toolbox)、控制工具箱(Control Toolbox)、信號處理工具箱(Signal Processing Toolbox)等。下面,將MATLAB工具箱內所包含的主要內容做簡要介紹:
1) 圖像處理工具箱(Image Processing Toolbox)。
* 二維濾波器設計和濾波
* 圖像恢復增強
* 色彩、集合及形態操作
* 二維變換
* 圖像分析和統計
可由結構圖直接生成可應用的C語言源代碼。
2)控制系統工具箱(Control System Toolbox)。
魯連續系統設計和離散系統設計
* 狀態空間和傳遞函數
* 模型轉換
* 頻域響應:Bode圖、Nyquist圖、Nichols圖
* 時域響應:沖擊響應、階躍響應、斜波響應等
* 根軌跡、極點配置、LQG
3)財政金融工具箱(FinancialTooLbox)。
* 成本、利潤分析,市場靈敏度分析
* 業務量分析及優化
* 偏差分析
* 資金流量估算
* 財務報表
4)頻率域系統辨識工具箱(Frequency Domain System ldentification Toolbox
* 辨識具有未知延遲的連續和離散系統
* 計算幅值/相位、零點/極點的置信區間
* 設計周期激勵信號、最小峰值、最優能量諾等
5)模糊邏輯工具箱(Fuzzy Logic Toolbox)。
* 友好的交互設計界面
* 自適應神經—模糊學習、聚類以及Sugeno推理
* 支持SIMULINK動態模擬
* 可生成C語言源代碼用於實時應用
(6)高階譜分析工具箱(Higher—Order SpectralAnalysis Toolbox
* 高階譜估計
* 信號中非線性特徵的檢測和刻畫
* 延時估計
* 幅值和相位重構
* 陣列信號處理
* 諧波重構
(7) 通訊工具箱(Communication Toolbox)。
令提供100多個函數和150多個SIMULINK模塊用於通訊系統的模擬和分析
——信號編碼
——調制解調
——濾波器和均衡器設計
——通道模型
——同步
(8)線性矩陣不等式控制工具箱(LMI Control Toolbox)。
* LMI的基本用途
* 基於GUI的LMI編輯器
* LMI問題的有效解法
* LMI問題解決方案
(9)模型預測控制工具箱(ModelPredictive Control Toolbox
* 建模、辨識及驗證
* 支持MISO模型和MIMO模型
* 階躍響應和狀態空間模型
(10)u分析與綜合工具箱(u-Analysis and Synthesis Toolbox)
* u分析與綜合
* H2和H無窮大最優綜合
* 模型降階
* 連續和離散系統
* u分析與綜合理論
(11)神經網路工具箱(Neursl Network Toolbox)。
* BP,Hopfield,Kohonen、自組織、徑向基函數等網路
* 競爭、線性、Sigmoidal等傳遞函數
* 前饋、遞歸等網路結構
* 性能分析及應用
(12)優化工具箱(Optimization Toolbox)。
* 線性規劃和二次規劃
* 求函數的最大值和最小位
* 多目標優化
* 約束條件下的優化
* 非線性方程求解
(13)偏微分方程工具箱(Partial DifferentialEquation Toolbox)。
* 二維偏微分方程的圖形處理
* 幾何表示
* 自適應曲面繪制,
* 有限元方法
(14)魯棒控制工具箱(Robust Control Toolbox)。
* LQG/LTR最優綜合
* H2和H無窮大最優綜合
* 奇異值模型降階
* 譜分解和建模
(15)信號處理工具箱(signal Processing Toolbox)
* 數字和模擬濾波器設計、應用及模擬
* 譜分析和估計
* FFT,DCT等變換
* 參數化模型
(16)樣條工具箱(SPline Toolbox)。
* 分段多項式和B樣條
* 樣條的構造
* 曲線擬合及平滑
* 函數微分、積分
(17)統計工具箱(Statistics Toolbox)。
* 概率分布和隨機數生成
* 多變數分析
* 回歸分析
* 主元分析
* 假設檢驗
(18)符號數學工具箱(Symbolic Math Toolbox)。
* 符號表達式和符號矩陣的創建
* 符號微積分、線性代數、方程求解
* 因式分解、展開和簡化
* 符號函數的二維圖形
* 圖形化函數計算器
(19)系統辨識工具箱(SystEm Identification Toolbox)
* 狀態空間和傳遞函數模型
* 模型驗證
* MA,AR,ARMA等
* 基於模型的信號處理
* 譜分析
(20)小波工具箱(Wavelet Toolbox)。
* 基於小波的分析和綜合
* 圖形界面和命令行介面
* 連續和離散小波變換及小波包
* 一維、二維小波
* 自適應去噪和壓縮