Я работаю над подготовкой вывода вейвлет-преобразования сигнала с использованием нейронной сети в MATLAB. Поэтому я решил использовать фильтр 3
db4
для его вейвлет-преобразования. Я использовал массив из 240
элементов и после преобразования Вейвлета, я получаю массив l
Высокая ошибка из-за функции resample в MATLAB
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
Что я могу сделать, чтобы уменьшить эту ошибку? Пожалуйста, помогите :)
Участок данных для вейвлет-преобразования после передискретизации как и оригинал:
Почему вы должны ресэмплировать вейвлетов 240. пожалуйста, объясните более я не знаком с Н. – Rashid
@Katmal: На самом деле я имею данные о цене и спросе. Так что я сделал вейвлет-преобразование цены. Теперь, после вейвлет-преобразования, мне приходится обучать нейронную сеть для каждой серии, полученной вейвлет-преобразованием, которая требует спроса в качестве входного сигнала и дает цену как результат. Поэтому мне нужно преобразовать каждую серию в 240 серий элементов, так как у меня есть массив запросов из 240 элементов. –
@ Kamtal: Я думаю, что waverec принимает как строку, так и векторный столбец. Я не получаю эту ошибку. Это потому, что все они являются векторами столбцов. X = waverec ([c2a ', c2b', c2c ', c2d'], l, 'db4') '; err = норма (X-цена1). Это также возвращает ту же ошибку, что и 20.2668. –