1樓:
[yc,ys]=wavedec2(y,2,'db1');
y為要分解的影象矩陣
,2為分解的層數,『db1'為採用的小波基返回兩個矩陣yc和ys。yh2=detcoef2('h',yc,ys,2);這是提取出影象2層分解後的水平分量,h改v是垂直分量,h該d是對角分量。細節分量用另外一個方法提取。
怎樣用matlab進行小波變換
2樓:很低調
那就要看你的資料儲存格式是什麼樣式的,如果是txt的,用load函式進行匯入;如果是xls的,可以用xlsread函式進行匯入
怎樣用matlab做影象的離散小波變換?
3樓:匿名使用者
用matlab自帶的小波工具箱~圖形化介面比較方便
要不直接用裡面現成的函式也成
關於小波變換的matlab程式設計
4樓:匿名使用者
這是一個帶引數的函式 根據下面的引數校驗可以看出你應該是直接點執行了吧 所以報錯了
你至少應該產生一個輸入訊號,比如一個正弦訊號來做輸入進行變換
。。。誰給你的程式啊 這bug也太多了 很多低階bug 我只是改的能執行了
function [wt,freqbins,scales]=cwt_morlet(sig,winlen,nlevel)
%continuous wavelet transform using morlet function
%sig:訊號
%winlen:小波函式在尺度引數a=1時的長度(預設為10)
%nlevel:頻率軸劃分割槽間段(預設為1024)
%%wt:返回的小波變換計算結果
%freqbins:返回頻率軸劃分結果(歸一化頻率,最高頻率為0.5)
%scales:返回與頻率軸劃分值相對應的尺度劃分(頻率0.5對應的尺度為1)
if (nargin==0),
error('at least 1 parameter required!');
end;
if (nargin<3),
nlevel=1024;
endif (nargin<2),
winlen=10;
endsig=hilbert(real(sig));%計算訊號的解析訊號
siglen=length(sig);%獲取訊號的長度
fmax=0.5;%設定最高分析頻率
fmin=0.005;%設定最低分析頻率
freqbins=logspace(log10(fmin),log10(0.5),nlevel);%將頻率軸在分析範圍內等
%對數座標劃分
scales=fmax*ones(size(freqbins))./freqbins;%計算響應的尺度引數
omg0=winlen/6;
wt=zeros(nlevel,siglen);%分配計算結果的儲存單元
wait=waitbar(0,'under calculation,please wait');
for m=1:nlevel,
waitbar(m/nlevel,wait);
a=scales(m);%提取尺度引數
t=-round(a*winlen):1:round(a*winlen);
mor1=pi^(-1/4)*exp(1i*2*pi*0.5*t/a).*exp(-t.^2/2/(2*omg0*a)^2);
%計算當前尺度下的小波函式
temp=conv(sig,mor1)/sqrt(a); %計算訊號與小波函式的卷積
wt(m,:)=temp(round(a*winlen)+1:length(temp)-round(a*winlen));
end;
close(wait);
wt=wt/winlen;
%%%%%%執行示例%%%%%%%%%
fs=100;
t=0:1/fs:2*pi;
sig=sin(t);
[wt,freqbins,scales]=cwt_morlet(sig);
5樓:lucky布布
為什麼我按照答案執行還是有根樓主一樣的error??
6樓:示怡賴晗雨
呵呵,這個程式
是告訴你用morlet小波進行連續小波變換時的程式,相當於是matlab中的底層程式,function
[wt,freqbins,scales]=cwt_morlet(sig,winlen,nlevel);這個是定義了這樣的一個函式,其中sig,winlen,nlevel這幾個變數為輸入變數,分別指訊號,訊號的長度以及分解的層數。wt,freqbins,scales這些為輸出變數,分別指小波變換的係數,頻率以及尺度。就是對訊號sig進行nlevel層小波變換。
在實際使用的時候,只要把輸入量給定,然後直接呼叫這個函式[wt,freqbins,scales]=cwt_morlet(sig,winlen,nlevel)。就可以得到輸出結果。
怎麼用matlab實現小波變換,怎麼用matlab實現小波變換???急!!!
含噪聲的源三角波與正弦波的組合 利用db5小波對訊號進行7層分解 生產正弦訊號 clc close all clear all n 1000 t 1 n sig1 sin 0.3 t 生成三角形波形 sig2 1 500 1 500 1 500 sig2 501 n 1000 501 1000 50...
matlab中離散小波變換的預設擴充套件模式是怎麼樣的
參考dwtmode和wextend 函式滴幫助文件,預設擴充套件模式是sym,所以這圖貌似沒錯,db2濾波器組的確是4個數,卷積後得10個數,儲存偶數序號滴5數,即z2這列,z4這列,z10這列,既為dwt後小波係數結果,不知你是 有出入,又如何個出入?怎麼用matlab實現小波變換?急!yc,ys...
求用matlab做小波變換影象增強,用離散小波變換,閾值函式用軟閾值,硬閾值,和這種閾值三種方法
matlab中文論壇 你一搜一大把 我就不一一找了 怎麼用matlab實現小波變換?急!小波變換的閾值函式影象去噪原理?matlab怎麼用小波包進行影象去噪 小波影象去噪的方法大概分為3類 1 基於小波變換摸極大值原理 2 基於小波變換系數的相關性回 3 基於小波閾值的去噪答。基於小波閾值的去噪方法...