1

我正在通过使用对信号“price1”进行多级小波分解

 [c1, l] = wavedec(price1, 3, 'db4');

price1 的大小为:

size(price1) =

   240     1

得到的小波分解的大小即l的长度为:

l =

    36
    36
    65
   123
   240

我是初学者,我认为大小应该是:

l =

    30
    30
    60
   120
   240

我无法理解为什么大小不是信号大小的一半?这是内部发生的某种填充吗?我希望大小是 [30; 30; 60; 120; 240]。我能做些什么来实现它?

谢谢你的帮助 :)

4

1 回答 1

1

您没有考虑母小波的长度,这将改变卷积后信号的长度。

db4长度为8,

 a = randi(10,[240 1]);
 [c1, l] = wavedec(a, 3, 'db4');

l =
36
36
65
123
240

但例如db8长度为16

[c1, l] = wavedec(a, 3, 'db8');

l =
43
43
71
127
240

您可以像这样访问小波函数,

[LoD,HiD,LoR,HiR] = wfilters('db8');
于 2014-11-03T12:32:10.853 回答