matlab验证尺度变换,用MATLAB对WAV文件做单尺度/多尺度离散小波变换/逆变换code

clear;

clc;

[S,fs,nbits]=wavread('C:\Users\HSF\Desktop\sound\beiyou.wav');

s=S(1:length(S));

figure(1)

subplot(311);

plot(s); ylabel('s');

title('原始信号');

axis tight;

[ca,cd]=dwt(s,'db2');%用db2小波函数进行一维离散小波变换

subplot(323);

plot(ca);ylabel('ca');

title('低频系数ca');

axis tight;

subplot(324);

plot(cd);ylabel('cd');

title('高频系数cd');

axis tight;

s1=idwt(ca,cd,'db2');%用db2小波函数进行信号重构

subplot(313);

plot(s1);ylabel('s1');

title('单尺度小波重构');

axis tight;

err=norm(s-s1);

[c,l]=wavedec(s,3,'db2');%用db2小波函数进行3尺度分解

ca3=appcoef(c,l,'db2',3);%从小波分解结构中[c,l]中提取低频系数

cd3=detcoef(c,l,3);%从小波分解结构中[c,l]中提取第1、2、3层低频系数

cd2=detcoef(c,l,2);

cd1=detcoef(c,l,1);

s2=waverec(c,l,'db2');

figure(2)

subplot(311);

plot(s); ylabel('s');

title('原始信号');

axis tight;

subplot(312);

plot(c); ylabel('c');

title('信号的3尺度小波分解结构');

axis tight;

subplot(313);

plot(s2); ylabel('s2');

title('多尺度小波重构');

axis tight;

err2=norm(s-s2);

仿真结果如下:​

a4c26d1e5885305701be709a3d33442f.png单尺度小波分解和重构

a4c26d1e5885305701be709a3d33442f.png多尺度小波分解与重构

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值