Arrays matlab中的Wavedec返回的长度总和大于信号的原始长度
我正在使用Arrays matlab中的Wavedec返回的长度总和大于信号的原始长度,arrays,matlab,wavelet,wavelet-transform,Arrays,Matlab,Wavelet,Wavelet Transform,我正在使用 [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;6
[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]的一半。我能做些什么来实现它
感谢您的帮助:)您没有考虑母小波的长度,这将改变卷积后信号的长度
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');