我对MATLAB 中的wavdec和函数有疑问。dwt
我正在使用wavdec(y,3,db4)大小为 1024 的信号,这意味着我正在尝试计算db4大小为 1024 的信号的第三级变换y。如果我正确地考虑了这一点,理论上转换后返回的矩阵也应该是 1024 的大小。
但是,当我执行转换时,我返回的矩阵大小为 1044,比我的原始矩阵大 20 个样本。
有人可以向我解释为什么会这样吗?
我对MATLAB 中的wavdec和函数有疑问。dwt
我正在使用wavdec(y,3,db4)大小为 1024 的信号,这意味着我正在尝试计算db4大小为 1024 的信号的第三级变换y。如果我正确地考虑了这一点,理论上转换后返回的矩阵也应该是 1024 的大小。
但是,当我执行转换时,我返回的矩阵大小为 1044,比我的原始矩阵大 20 个样本。
有人可以向我解释为什么会这样吗?
这是因为默认的边界处理是对称扩展,这需要更多的系数才能实现完美的重建。尝试
dwtmode('per')
使用周期化将表示设置为非冗余。然而,这仅对于输入信号长度是 2^J 的整数倍而言是非冗余的,其中 J 是 wavedec 级别的数量。否则,wavedec 的每一步都会使用非常奇怪的填充。
PS:抱歉回复晚了:)