exam10_2.m

来自「小波变换的例子」· M 代码 · 共 41 行

M
41
字号
clc;
clear;
% 装载实际信号
load vonkoch 
vonkoch=vonkoch(1:510); 
lv = length(vonkoch);

subplot(311), plot(vonkoch);title('被分析信号.'); 
set(gca,'Xlim',[0 510])
% 执行离散5层sym2小波变换
% 层数1~5分别对应尺度 2, 4, 8, 16 and 32
[c,l] = wavedec(vonkoch,5,'sym2');

% 扩展离散小波系数进行画图
% 层数1~5分别对应尺度 2, 4, 8, 16和32
cfd = zeros(5,lv); 
for k = 1:5 
    d = detcoef(c,l,k); 
    d = d(ones(1,2^k),:); 
    cfd(k,:) = wkeep(d(:)',lv); 
end 

cfd = cfd(:); 
I = find(abs(cfd)<sqrt(eps)); 
cfd(I)=zeros(size(I)); 
cfd = reshape(cfd,5,lv);

% 画出离散系数
subplot(312), colormap(pink(64)); 
img = image(flipud(wcodemat(cfd,64,'row'))); 
set(get(img,'parent'),'YtickLabel',[]); 
title('离散变换, 系数绝对值.') 
ylabel('层数')

% 执行连续小波sym2变换,尺度从1~32
subplot(313)
ccfs = cwt(vonkoch,1:32,'sym2','plot'); 
title('连续变换, 系数绝对值.') 
colormap(pink(64)); 
ylabel('尺度')

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?