小波變換原理。
目前創新互聯已為上千的企業提供了網站建設、域名、網站空間、網站改版維護、企業網站設計、都江堰網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協力一起成長,共同發展。
CWT的變換過程是把小波ψt和原始信號ft的開始部分進行比較,計算系數為c。該系數表示該部分信號與小波的近似程度。系數c的值越高表示信號與小波越相似,因此系數c可以反映這種波形的相關程度把小波向右移,距離為k,得到的小波函數為ψt-k,然后重復步驟1和2。再把小波向右移,得到小波ψt-2k,重復步驟1和2。按上述步驟一直進行下去,直到信號ft結束擴展小波ψt,例如擴展一倍,得到的小波函數為ψt/2重復步驟1~4。
小波變換其實使用一個小波基取代了傅里葉變換中的三角函數。
(1)coefs=cwt(s,scales,‘wname’)
(2)coefs=cwt(s,scales,‘wname’,‘plot’)
說明:該函數為一維連續小波分析函數,其中coefs為連續小波變換后的返回系數Wf(a,b)矩陣,系數以行方向存儲在矩陣中。
[例6-14]對MATLAB中所帶有的noissin信號進行連續小波變換,尺度a分別為0.12,0.24,0.48,1.2,2,4,6,8,10,小波函數用db3,請求出連續小波變換后的系數。程序:
load noissin;%裝載信號
s=noissin(1:100)
ls=length(s);%計算信號點的個數ls
%對s進行一維連續小波變換,把返回系數存到矩陣w中
w=cwt(s,[12.12,10.24,15.48,1.2,2:2:10],‘db3’,‘plot’)
Xlabel(‘時間’);
Ylabel(‘變換尺度’);
Title(‘對應于尺度a=0.12,0.24…小波變換系數的絕對值’);
執行程序后,返回矩陣為一個9×1000矩陣。在此為節省篇幅,我們不將結果打印出來,讀者可自己上機運行該程序觀察結果。
圖6-41 一維離散小波變換dwt
c = cwt(tnt,1:10,'morl','plot');%Morlet wavelet.
c = cwt(tnt,1:10,'mexh','plot');%Mexican hat wavelet
(1)小波模極大值重構 MATLAB代碼_天天向上_新浪博客
function
[signal,swa,swd,ddw,wpeak]=wave_peak(points,level,Lo_D,Hi_D,Lo_R,Hi_R,offset)
%
該函數用于讀取ecg信號,找到小波變換模極大序列
warning off;
ecgdata=load('ecg.txt');
%需要分析的信號,自己加
plot(ecgdata(1:points)),grid on,axis
tight,axis([1,points,-50,300]);
signal=ecgdata(1:points)'+offset;
% 信號的小波變換,按級給出概貌和細節的波形
[swa,swd] =
swt(signal,level,Lo_D,Hi_D);
figure;
subplot(level,1,1);
plot(real(signal)); grid on;axis tight;
for i=1:level
subplot(level+1,2,2*(i)+1);
plot(swa(i,:)); axis
tight;grid on;xlabel('time');
ylabel(strcat('a
',num2str(i)));
subplot(level+1,2,2*(i)+2);
plot(swd(i,:)); axis
tight;grid on;
ylabel(strcat('d ',num2str(i)));
end
%求小波變換的模極大值及其位置
ddw=zeros(size(swd));
pddw=ddw;
nddw=ddw;
posw=swd.*(swd0);
pdw=((posw(:,1:points-1)-posw(:,2:points))0);
pddw(:,2:points-1)=((pdw(:,1:points-2)-pdw(:,2:points-1))0);
negw=swd.*(swd0);
ndw=((negw(:,1:points-1)-negw(:,2:points))0);
nddw(:,2:points-1)=((ndw(:,1:points-2)-ndw(:,2:points-1))0);
ddw=pddw|nddw;
ddw(:,1)=1;
ddw(:,points)=1;
wpeak=ddw.*swd;
wpeak(:,1)=wpeak(:,1)+1e-10;
wpeak(:,points)=wpeak(:,points)+1e-10;
%按級給出小波變換模極大的波形
figure;
for i=1:level
subplot(level,1,i);
plot(wpeak(i,:)); axis tight;grid
on;
ylabel(strcat('j= ',num2str(i)));
end
注:運行此程序時一定要將待處理信號添加進去,程序中的紅色部分。
追問:
ecgdata=load('ecg.txt');
網站標題:關于c語言實現cwt函數的信息
本文URL:http://m.kartarina.com/article30/hegopo.html
成都網站建設公司_創新互聯,為您提供自適應網站、軟件開發、網站導航、移動網站建設、電子商務、外貿網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯