Конкретно вопрос о 27-дневном цикле и реальных данных с большой долей пробелов. Как лучше фильтровать, чтобы сохранить нерегулярные вариации с периодами до несколькиъх дней и убрать собственно циклическую составляющую. С нижней границей по частоте особых проблем, вроде нет - двойная частота цикла, наверное, годится вполне, а вот верхняя и методика обработки до фильтрации вызывает некоторые вопросы. Про смыслу процедуры хочется и от суточной вариации отстроиться, а тут как раз и начинаются проблемы оптимального выбора методики. Если, допустим, исходные данные двухчасовые, то отфильтровать просто по частоте суточную вариацию можно с большой натяжкой, а с учетом возможных пробелов в данных, тем более. Значит остается работать с последовательностью сутки - точка, лучше с неосредненными за сутки, а в выделенном интервале по времени, чтобы не сваливать в кучу разные по механизму генерации пульсации. И уже для этих последовательностей оценивать интересующие параметры.
Фильтрация квазициклических вариаций
Сообщений 1 страница 13 из 13
Поделиться22007-09-10 11:01:22
Надь, вот что я думаю по этому поводу.
«Значит, остается работать с последовательностью «сутки-точка». Тут, мне кажется, надо учесть минимальный период, который ты исследуешь. Ты пишешь, что ищутся вариации с периодом в несколько суток. Если несколько – это меньше 5, то я бы не решилась определять период по 4 и менее точкам.
И что касается «Значит остается работать с последовательностью … выделенном интервале по времени, чтобы не сваливать в кучу разные по механизму генерации пульсации.» Ну это же надо быть твердо уверенной, что знаешь, когда какой механизм включается. Я решалась отделять только ночные от дневных, будучи твердо уверенной, что это разные механизмы. А вот теперь, прочитав анонс книжки про дневную аврору (да еще так близко к полюсу), поняла, что поступала не корректно.
Поделиться32007-09-10 11:09:10
Не, Оль не совсем согласна. Если "точно знать, когда какой", то что тогда изучать? Если в принципе могут быть разные, то надо проверять устоячивость результата (ну хоть по тем же корреляциям с внешним параметром) к дроблению на интервалы.
А по первой части, я как раз охочусь на нерегулярными - нециклическими вариациями на масштабе нескольких дней, и мне надо отстроиться от 27-дневного цикла. Поэтому низкочастотная фильтрация (с отсечкой на частоте ~0.1 day^{-1})должна быть достаточно эффективной.
Поделиться42007-09-10 14:48:56
Так вот я про тоже. Если точно неизвестно, что когда включается, нужны дополнительные исследования, а не просто разделять по часам MLT. Наверно, ты это подразумевала. Но, согласись, часто видишь (и я так делала), такую фразу "Возьмем такой-то интервал времени, когда нет влияния такой-то активности". Т.е. разделение по часам МЛТ должно быть обосовано не только априорно известной до сих пор интформацией, то и как-то вытекать из исходных данных.
Поделиться52007-09-12 00:32:04
Если точно неизвестно, что когда включается, нужны дополнительные исследования, а не просто разделять по часам MLT.
Ну в принципе это самое разделение и может служить инструментом этого "дополнительного исследования". Допустим, на самой известной корреляции скорость солнечного ветра - амплитуда. Если при исследовании каких-то пульсаций (или шумов) для разных LT получаются значимые различия в корреляции, то это повод задуматься о наличии разных механизмов.
Поделиться62007-09-12 11:35:18
А может быть и один механизм. Например, неустойчивость К-Г. Она на флангах развивается и со скоростью СВ связана. И поэтому могут быть два пика в суточном ходе корреляции между амплитудой и скоростью СВ. Вобщем, премудрый вопрос.
Поделиться72007-09-13 18:59:06
Как-то мы от темы собствено фильтрации плавно ушли, а вышли на какую-то более общую (только название ей пока не придумывается). Что до собственно фильтрации я пока такой выбрала путь:
1) выбор 1 точки в сутки в заданном интервале UT
2) отбрасывание длинных провалов и интерполяция коротких
3) высокочастотная фильтрация (на 0.2 day^{-1}) получившихся сплошных кусков
Сама программка прилагается
% selects good untervals/ interpolates, calculates filter
function [wb_t,int]= flt_lrnz(b_0, t_flt, key_dt, dt_in, gap_max, tim_min, alf, c_sh, low_high)
s_b=size(b_0);
L_b=s_b(1);
w_b=s_b(2);
t0=b_0(:,1);
if key_dt==1
dt_0=diff(t0);
dt_a=dt_in;
end
if key_dt==2
dt_0=diff(t0)*24;
dt_a=dt_in/24;
end
if key_dt==3
dt_0=diff(t0)*1440;
dt_a=dt_in/1440;
end
if key_dt==4
dt_0=diff(t0)*86400;
dt_a=dt_in/86400;
end
f_gap=find(dt_0>gap_max*dt_a) ;
L_int=length(f_gap)+1;
int_1=[1;f_gap+1];
int_2=[f_gap;L_b];
int_0=[int_1,int_2];f_ok=find(int_2-int_1>=tim_min) ;
int=int_0(f_ok,: );
L_ok=length(f_ok);
wb_t=[];
for i_ok=1:L_ok
b_c=b_0(int(i_ok,1):int(i_ok,2), : ) ;
b_c2=b_c(:,2:w_b) ;
t_c=b_c(:,1) ;
t_s=[min(t_c):dt_a:max(t_c)];
L_c=length(t_c);
L_s=length(t_s);
b_s=interp1(t_c,b_c2,t_s) ;
b_sp=fft(b_s) ;
s_sp=size(b_sp) ;
L_sp=s_sp(1) ;
win_0=flt_pow(L_sp,alf,c_sh,low_high) ;
wind=win_0'*ones(1,w_b-1) ;
s_wi=size(wind);
b_fl=b_sp.*wind;
b_flt=ifft(b_fl, 'symmetric') ;
s_fl=size(b_flt) ;
b_fltt=[t_s',b_flt];
wb_t=[wb_t;b_fltt];
end
flt_pow - собственно фильтрация.
Поделиться82007-09-13 19:07:31
Надь, по первому пункту мы поговорили. Вроде, пришли к обшему мнению, что выбирается он (интервал усреднения) исходя из каких-то предварительных исследования.
По второму пункту. Если, допустим, у тебя получилось три разных по длине больших куска без провалов, то ты на каждом из них находишь какой-то период и дальше усредняешь полученные периоды? Так?
Поделиться92007-09-13 19:10:12
Оль, пока не совсем поняла вопрос. Сейчас убегаю, напишу попозже, чего именно не поняла
Поделиться102007-09-13 23:50:30
Если, допустим, у тебя получилось три разных по длине больших куска без провалов, то ты на каждом из них находишь какой-то период и дальше усредняешь полученные периоды? Так?
Тут не поняла. Точнее, в конкретной задаче этого точно не делаю - там цель другая, но и вообще тоже не поняла.
Поделиться112007-09-14 18:50:46
Тогда с начала. У тебя задача, - найти какой период доминирует в во временном ряду. Этот ряд не непрерывный. В нем есть пробелы, которые никак нельзя интерполировать - у тебя написано - "отбрасывание длинных провалов и интерполяция коротких". Допустим таких провалов 3. Таким образом, из одного ряда у тебя получается 4. Задача, по-преждену, - найти доминирующий период. И ты его ищешь на каждом из 4-ох получившихся рядов. А дальше находишь среднее. Или алгоритм другой?
Поделиться122007-09-14 19:46:24
Оль, поняла, извини. Сразу не сформулировала задачу, вот и вышла путаница. в данном случае меня доминирующие периоды не интересовали. Речь о выявлении связи с внешними параметрами (от той же скорости и дальше) непериодических вариаций мощности ULF. А подверженность 27-дневному циклу - одщий и достаточно мощный фактор, способный приводить к ложным связям. Вот и возник вопрос о том, как именно от них лучше избавляться.
Один путь - как раз высокочастотная фильтрация и работа только с непериодическими вариациями.
Второй - анализ амплитудных модуляций уже циклических вариаций.
Давай на примере, чтобы проще было. Допустим есть положительная корреляция среднесуточных значений мощности ULF в Pc5 диапазоне и потока геостационарных электронов (сслок масса). Она может быть как следствием непосредственной физической связи этих двух параметров, так и тем, что оба они меняются в 27-дневном цикле со сдвигом фазы, по модулю меньшим /2. Ну и вопрос задачи: как выбрать один из сценариев на основе анализа данных.
Поделиться132007-09-15 11:01:37
Вот, мне подумалось, может так - разложить в ряд первоначальный ряд, так чтобы среди полученных вторичных рядов была и 27-дневная составляющая. А потом обратно соединить вторичные ряды, но уже без 27-дневной составляющей, если окажется, что в ней есть значимые спектральные пики на периоде 27 дней. Т.е. это как бы фильтрация в полосе 27-дней, но не автоматическая, а когда решение о удалении фильтруемого диапазона принимается каждый раз исходя из наличия пика мощности в спектре на частоте, соответствующей 27 дням.