Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays matlab中的Wavedec返回的长度总和大于信号的原始长度_Arrays_Matlab_Wavelet_Wavelet Transform - Fatal编程技术网

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');