Вейвлет-разложение и реконструкция в Matlab
С помощью набора инструментов вейвлета становится возможным разложить и реконструировать временной ряд, например
load leleccum;
s = leleccum(1:3920);
% decomposition
[c,l] = wavedec(s,3,'db5');
% Reconstruction
a0 = waverec(c,l,'db5');
Из этого, как можно удалить определенные частоты из серии? Например, как только я разложил ряд на его частотные составляющие, как я могу удалить частоту, такую как ежедневный цикл, до реконструкции?
Пример сигнала с 24 единичным циклом:
t = 1:365;
raw = 20+(10-2).*rand(1,length(t));
signal_1 = 10*sin(2*pi*t/24);
y = raw + signal_1; % example data series
% decomposition
[c,l] = wavedec(y,3,'db5');
Как бы вы удалили сигнал с периодичностью 24, т. Е. "Signal_1" из финальной серии?
1 ответ
Вам нужно будет изменить векторыc
а также l
что вы получаете от wavedec
, Если вы хотите удалить определенные частоты, найдите данные, соответствующие этим частотам, и обнулите их. Тогда позвони позвони waverec
реконструировать измененный временной ряд.