?? smallexp.m
字號:
function [ Lips ] = smallExp( )% =========================================% 習題8.2% 計算信號奇異點的Lipschitz指數% =========================================close all;% 構造信號% 引用wavelab中的數據,即A Wavelet Tour of Signal Processing(2nd edition)中fig6.6的信號sig = GetSignal;n = 512; % 信號長度% % 引用實際圖像信號% img = imread('lenna.jpg');% sig = double(img(30,:));% n = 256; % 信號長度% 計算信號在多個尺度下的小波變換wts_scale = 1; % 最小尺度l_scale = 32; % 最大尺度wt = CWT(sig,s_scale:l_scale,'gaus2'); % 計算模極大點maxmap = MM_WT(wt,1);% 連接模極大曲線[skellist,skelptr,skellen] = SkelMap(maxmap);% 圖1:信號圖和小波變換圖% 信號圖和小波變換圖的位置delta = 1/15;unit = (1-3*delta)/3;h1 = [delta 2*(unit+delta) 1-2*delta unit];h2 = [delta delta 1-2*delta 2*unit];figure(1);clf;% 畫出信號axes('position',h1); plot(sig);axis([1 n min(sig)-.1 max(sig)+.1]);ylabel('f(t)');% 畫出信號的小波變換結果axes('position',h2);ImageWT(wt,n,s_scale,l_scale);% 圖2,畫出模極大曲線figure(2);axis('ij');xlabel('u');ylabel('log2(s)');plotsymb = ['k' '-'];hold on;nchain = length(skelptr);for k=1:nchain ix = skelptr(k): (skelptr(k) + skellen(k)-1); vec = skellist(:,ix); plot(vec(2,:),log2(vec(1,:)),plotsymb);% plot(vec(2,:),log2(vec(1,:))-log2(n),plotsymb); % 注意縱坐標,轉化回[0 1]之間的信號的變換尺度end hold off; % 圖3,繪制極大曲線在log2(s),log2|WT(s,u)|平面上的曲線圖 figure(3);xlabel('log2(s)');ylabel('log2|WT(s,u)|');hold on;for k=1:nchain ix = skelptr(k): (skelptr(k) + skellen(k)-1); vec = skellist(:,ix); pvec = abs( wt((vec(2,:)-1)*32 + vec(1,:)) ); %plot(log2(vec(1,:))-log2(n),log2(pvec),plotsymb); if(k==5) plot(log2(vec(1,:)),log2(pvec),plotsymb); % plot(log2(vec(1,:))-log2(n),log2(pvec),plotsymb); end if(k==6) plot(log2(vec(1,:)),log2(pvec),['k' '--']); % plot(log2(vec(1,:))-log2(n),log2(pvec),['k' '--']); end % 計算Lipschitz指數 if(skellen(k)<=4) m1 = 1; m2 = min(4,skellen(k)); else m1 = 4; m2 = min(16,skellen(k)); end [P S] = polyfit(log2(vec(1,m1:m2)),log2(pvec(m1:m2)),1); % [P S] = polyfit(log2(vec(1,:)),log2(pvec),1); Lips(1:2,k) = [skellist(2,skelptr(k)) ; P(1)-0.5];end % legend('5','6',-1);hold off;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -