MATLAB中的离散小波变换

时间:2013-07-22 03:43:25

标签: matlab audio signal-processing wavelet dwt

我正在处理音频信号处理,需要执行3频段DWT。我试图在MATLAB中使用dwt函数来执行此操作。然而,在阅读了这个功能后,我意识到它只允许你输入两个滤波器,一个Hi和Low Band,但是我需要输入3.无论如何我能做到吗?谢谢!

1 个答案:

答案 0 :(得分:0)

你如何描述它不是小波的工作方式。我认为您应该更多地阅读文档/教程/背景信息,以便了解您正在使用的内容。 Oli是正确的 - 多级分解会发生的情况是,为每个级别计算细节和近似值,然后将滤波器应用于近似值(低频带)以计算下一级别。

E.g:

sig1=audioread('myfilename');
[lev1_lo lev1_hi]=dwt(sig1(:,1),'haar');
[lev2_lo lev2_hi]=dwt(lev1_lo,'haar');
[lev3_lo lev3_hi]=dwt(lev2_lo,'haar');
%etc

您保留lev1_hilev2_hilev3_hilev3_lo进行3级分解。对于您的情况,请保留lev1_hilev2_hilev2_lo2