我正在使用 MATLAB 中的神经网络训练信号的小波变换的输出。所以我决定使用3
层db4
滤波器进行小波变换。我使用了一个240
元素数组,经过小波变换,我得到了一个数组l
l = [36;36;65;123;240]
现在,由于我必须训练我的神经网络,我必须将长度的小波变换重新采样36, 36, 65, 123
为 240 个元素的数组。
所以我所做的是,我对信号进行了小波变换。我将每个小波变换重新采样为240
点,然后将小波36, 36, 65, 123
分别重新采样为点。我有一个错误20.2668
。可以做些什么来减少错误?
我使用以下命令使用 MATLAB 重新采样:
[c1, l] = wavedec(signal, 3, 'db4');
c1a = c1(1:l(1));
c1a = resample(c1a, length(signal), length(c1a));
c1b = c1(1+l(1):l(1)+l(2));
c1b = resample(c1b, length(signal), length(c1b));
c1c = c1(1+l(1)+l(2):l(1)+l(2)+l(3));
c1c = resample(c1c, length(signal), length(c1c));
c1d = c1(1+l(1)+l(2)+l(3):l(1)+l(2)+l(3)+l(4));
c1d = resample(c1d, length(signal), length(c1d));
c2a = resample(c1a, l(1), length(c1a));
c2b = resample(c1b, l(2), length(c1b));
c2c = resample(c1c, l(3), length(c1c));
c2d = resample(c1d, l(4), length(c1d));
X = waverec([c2a; c2b; c2c; c2d], l, 'db4');
err = norm(X-signal)
现在,错误 err 报告为
err = 20.26688
我能做些什么来减少这个错误?请帮忙 :)
重新采样和原始后的小波变换数据图为: