Как стать автором
Обновить

Комментарии 8

Интересный кейс, хоть половину не понял, но сохраню, чтобы перечитать и вникнуть больше.

я не настоящий статистик, но по идее

  • если нормализовать ваши функции (спектр?), то разница в С перестанет влиять на дальнейшие расчеты. Можно еще также поиграться с дисперсией. Или взять логарифм с подходящим основанием и считать не " W(f) =Cf^(-b) " а " Wlog(f) =f(-b)*log(C)"

  • чем больше Т - тем лучше (меньше выбросов, выше точность)

Отбеливание спектра - это довольно распространенный подход при анализе данных и поиске связей между сигналами, но у него есть изрядное количество недостатков. Во-первых, для этого надо уметь в дробное дифференцирование, а при наличии пропущенных наблюдений и прочего брака (а в геофизике и при мониторинге без них не бывает) это не так просто сделать. Я вот в своем пакете для анализа временных рядов до сих пор не смог это реализовать. А принудительно заполнять пропуски не хочу, у нас вся идеология обработки строится на том, чтобы вымышленные значения не использовать. Ведь любое заполнение пропусков требует наличия модели сигнала, по которой эти значения генерируются. А у нас одна из основных целей обработки обычно как раз и состоит в том, чтобы такую модель построить.

Во-вторых, отбеливать спектр - это намного сложнее, чем просто посчитать "квазикорреляцию" и оценить ее значимость по специально подкорректированным формулам. Если, конечно, такие формулы удастся построить (для чего как раз и нужно то самое теоретическое распределение посчитать).

В- третьих, при работе в терминах корреляций (когда имеешь дело с практическими сигналами) обычно несложно построить робастную версию алгоритма процессинга данных без слишком искусственных ухищрений. Если же анализ включает процедуру отбеливания спектра, то это гораздо сложнее (во всяком случае, для меня), и уж точно не слишком интуитивно. Я вообще предпочитаю работать во временной области, а не в частотной - это намного понятнее и результаты интерпретировать проще почти всегда. А что получится, если сделать преобразование Фурье, потом прологарифмировать спектр, потом обратное преобразование Фурье, мне сложно представить. Попробовать можно, конечно, но там же еще с фазами какие-то трюки потребуются... И шуметь такой алгоритм на неидеальных данных (а реальные данные мониторинга всегда со странностями) наверняка будет ужасно.

Исходный-то сигнал логарифмировать бесполезно. Ведь нестационарность при логарифмировании не устраняется. И степенной спектр плоским тоже не станет: если сигнал далек от нуля, то после логарифмирования его спектр так и останется степенным. Я уж не говорю о том, что операция логарифмирования чувствительна к добавлению константы - а в геофизике довольно много измерений выполняются как раз с точностью до произвольной константы. Поэтому логика здравого смысла требует, чтобы при обработке симметрия результатов относительно смещения уровня не нарушалась.

Спасибо! Очень интересно. И раз уж нет исходников — рассмотрите, пожалуйста, возможность работы вашей программы под linux.

Добавил исходники на VB6 в архив, под linux юзайте wine

Минусы GSYS по сравнению с моей прогой:
1. Не на русском
2. Точки придётся выставлять вручную поверх графика - долго, муторно, небольшая ошибка и попадут только наиболее значимые точки - то есть автоматизация процесса слаба - если Вам нужно больше 1000 точек - есть смысл от программы только если Вам нужен 5-ый её плюс.
3. Формат вывода не совместим с Excel - придётся сначала сделать несколько замен

Плюсы:
1. Можно обрабатывать повёрнутые графики без предварительной обработки - интерполяции - ухудшения
2. Можно обрабатывать графики с логарифимической шкалой
3. Можно запустить на линукс
4. Можно получить только значащие точки на интер(экстра)полированном графике
5. Имеет смысл использовать на графиках с отображением доверительного интервала (отображением погрешности/ошибки)
6. Поддерживает больше форматов изображений (PNG, к примеру), но пересохранить картинку/пакетно сконвертировать их набор - по моему, не проблема

Инструкция (полчаса потратил чтоб разобраться как это работает):
Ctrl+O - Xа - левая нижняя точка области значений графика - правая нижняя - Yа - левая нижняя - верхняя нижняя - вписать в Axis Manager крайние значения графика и тип шкал - Ad - (нажать на интересующее значение){повторять пока хватит сил} - [Если нужны ещё интервалы ошибок:]<выбираем режим X/Y err(sy для двустороннего интервала/asy для одностороннего) - (выделяем точку - край интервала){повторить для всех необходимых точек и осей}> //надеюсь, у Вас меньше 1000 точек// - Ctrl-S - Write

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории