Я в 1986-90г работал на СМ-4, которую привезли и установили в горах Таджикистана для обработки научных наблюдений. А примерно через 10 лет несколько раз ходил вместе с Алексеем Рудневым в "детские"
горные походы
Младшим участникам было по 7-10 лет. Особенно драматичным оказался поход на Фишт в 1998г, когда у одного из членов группы случился перитонит, который мы вовремя
не распознали
Мы ж не медики. Как пальпировать аппендицит - примерно догадывались, но у перитонита симптомы отличаются... А последствия даже более скоротечные
Лагерь стоял на оз.Псенодах - с такой проблемой самостоятельно оттуда не спустишься. А на операционный стол с таким диагнозом надо попасть в течение суток, максимум двух. Если б не борт МЧС, который как раз в этот момент прилетел на Фишт в ходе
плановой тренировки,
За несколько лет до этого на Фиште разбилась связка сочинских спасателей, и после этого такие тренировки проводились на горе ежегодно 30 июля или в ближайшую дату. Сохранилась ли эта традиция до сих пор - не знаю
и который удалось "подловить" на приюте, последствия для пострадавшего могли оказаться гораздо печальнее. Думаю, Алексею эта история запомнилась на всю жизнь (и для меня она тоже стала хорошим уроком)
А главный прикол в том, что будучи (за несколько лет до этих путешествий) активным пользователем СМ-4, я даже не догадывался о том вкладе, который Алексей внес в развитие этой техники.
Понятно, что в походе, на отдыхе говорить о работе не хочется. Но, вероятно, есть все-таки некий предел, начиная с которого скромность перестает украшать человека, а начинает мешать прогрессу :-((
Проще и быстрее всего - на Хабре. Это, конечно, не рецензируемый ресурс, но достаточно уважаемый, так как вместо "допечатного рецензирования" тут хорошо работает механизм "послепечатного комментирования". Я в научных журналах несколько раз ссылался на Хабр, и такие ссылки никаких возражений не вызывали.
> Если не на хабре, то там вряд ли примут. Я давно не отслеживаю мир науки и мне трудно подобрать журнал.
С журналом не подскажу. В геофизических наверняка скажут, что это непрофильная тематика, если не будет конкретного применения в геофизике. А тут пока есть определенный разрыв.
Что же касается математических журналов, то я их просто не знаю. "Высоких" математиков я практически не читаю (очень уж далеки они от народа, да и язык непонятный). Ну и их тоже вряд ли такая частноприкладная задача заинтересует.
> Это всего лишь заметка.
Ну так на Хабре вроде нет ограничения по размеру статьи (что если объем не тянет на полновесную монографию, то публиковать нельзя ;-).
Но если Вам интересен вид с моей колокольни, то вот он:
1) Тема узконишевая, но внутри этой ниши весьма актуальна; 2) Общедоступная информация по теме практически отсутствует, что провоцирует недоразумения и заблуждения; 3) Выведенные формулы, с одной стороны, априори неочевидны, а с другой - дают пищу для размышлений 4) Идея с малым параметром F0 в этом контексте мне вообще никогда не встречалась; 5) Результаты полезные и нетривиальные
Поэтому просто потерять сделанное (а если оно останется только в комментариях, то для большей части человечества будет утрачено) было бы обидно.
P.S.
Если Вам для оформления публикации понадобятся картинки с временными рядами, спектрами или АКФ - только намекните! Сделаю в течение пары дней!
> В реальности, наверное, всё таки есть минимальная нижняя частота, которая связана с размерами Земли :)
Ну да. И еще одна, связанная с ее возрастом ;-)
А если чуть серьезнее, Вы уже настолько обширную работу провели, что очень хочется увидеть небольшую статью, где все эти результаты были бы собраны в единое целое. Понимаю, что тема весьма специфичная, и что миллионную аудиторию такая публикация соберет вряд ли. Но вообще-то тема достаточно актуальная в определенных кругах. Только вот большинство из этих потенциальных читателей - не на Хабре. И в здешних комментариях они никогда Ваши результаты не увидят. А вот в формате статьи - найдут!
Спасибо за статью! Но сначала конструктивная критика:
1) Почему в опросе нельзя выбрать несколько вариантов ответа?
2) Что касается мессенджеров и социальных сетей, было бы интересно как-то сравнить относительную активность в разных сетях. Но это сильно усложнит формат опроса :-(
Мне вот и по телефону звонят, и в мессенджерах пишут - я бы оба пункта отметил. Как выходной - так от директора просто отбоя нету...
Но вообще, когда время есть, я с любым звонящим стараюсь максимально конструктивно общаться.
Приятно ведь поговорить с человеком, который твоими проблемами интересуется, и даже вроде хочет помочь. Если, к примеру, у него что-то не получается, то всегда ищу какие-то компромиссные схемы. Уточняю, как именно можно перевести деньги, какие данные для этого нужны. Например, когда мне по телефону звонят - могу три раза подряд продиктовать свой номер, вплоть до побуквенного объяснения каждой цифры (если плохо слышно). "Семен, Елена, Маша, мягкий знак...", и т.д. Потом обязательно проверяю, что собеседник номер моего телефона правильно записал. Чтобы ошибки какой-то не вышло. Я ведь уже почти что пенсионер, а в финансовых вопросах точность нужна...
Но я видимо неудачник какой-то. Ну или товарищи на том конце совсем лыка не вяжут. Вроде бы все обсудили: как деньги на карту перевести по номеру телефона, как баланс счета пополнить. Вплоть до пошаговой инструкции. Все бесполезно!
Ни разу ни на телефон, ни на карту ни рубля не пришло...
> Посмотрел случай "альфы" больше единицы. Исходный интеграл равен бесконечности для любых "тау", то есть АКФ в ее классическом определении не существует.
Что, собственно, было вполне ожидаемо уже после первой части ответа (про альфа возле единицы слева) ;-))
> (по крайней мере для конечных , рассматривал значения около единицы)
А вот тут
не врубаюсь
У нас же <альфа> больше 1, т.е. (<альфа>-1) > 0. Получается положительное число в положительной степени. При T0 > 1 будет что-то строго больше 1. Тут тоже для перехода к обычной АКФ надо на R(0) поделить?
Но главное, я вообще не вижу зависимости от <тау>. Получается, в этом приближении АКФ(<тау>) = константа? Которая после нормировки будет точно равна 1?
Глядя на формальные оценки АКФ для реальных реализаций ФШ, я в общем-то легко готов в это поверить. Но Ваши расчеты добавляют важный нюанс: что этот эффект наблюдается для любых <альфа>, начиная с 1.0 и больше. Так?
> Про асимптотику по тау при альфа возле единицы слева
Очень интересно и неожиданно!
Спасибо!
Только с константой не очень понятно. Мы же про АКФ говорим, она нормированная же? Тогда при <тау>=0 должно быть АКФ=1,
что и определяет константу слева?
Я так понял, там еще должен быть какой-то член типа 1/R(0), который в формулах в явном виде не выписан? Или я что-то путаю?
Но в любом случае получается, что при <альфа>, близких к 1, зависимость АКФ от <тау> (на больших <тау>, естественно)
почти исчезает, так?
Ведь <тау> в знаменателе будет в околонулевой степени
Другими словами, при <альфа>, близких к 1, мы просто не можем уйти на такие большие лаги, при которых АКФ можно считать малой. А при меньших <альфа> это (в теории) потенциально возможно. Это интересный нюанс!
Получается. что ФШ 1) с <альфа> < 1 и 2) с <альфа> >= 1
это два совершенно разных ФШ?!
В первом случае дальние корреляции (при неограниченном росте <тау>) присутствуют, но все-таки связь ослабляется с ростом лага. А во втором - все, хана... даже этого нет.
Я правильно интерпретирую формулу?
И еще одно уточнение. SymPy shell online - это ведь лишь инструмент, так? Он не поясняет, какой именно математический метод (подход) использован для расчета асимптотики?
> У меня получилось найти АКФ для фликкер-шума, но для ограниченного параметра "альфа". Спасибо справочнику по интегралам Градштейн, Рыжик.
Спасибо!!! А можете еще подсказать,
как я могу на это Ваше сообщение сослаться, если понадобится?
Я пока не знаю, как я смогу эту формулу использовать, но если смогу, то я бы хотел в дополнение к
ссылке на
Градштейн И.С., Рыжик И. М. Таблицы интегралов, сумм, рядов и произведений / Перераб. при участии Ю. В. Геронимуса и М. Ю. Цейтлина. — 5-е изд., стер. — М.: Наука, 1971. — 1108с.
добавить ссылку на "личное сообщение" (в журналах их обычно оформляют в виде подстраничных сносок). Но, в такой ссылке надо указать ФИО автора сообщения. Если Вы не против,
напишите мне данные в ЛС?
В научной публикации такая ссылка будет выглядеть примерно вот так (реальный пример:)
> Надо различать ось времени и ось амплитуд. То, что называют оптимальным приемом (корреляционный прием, согласованный фильтр) не является накоплением при обработке рядов. Это разные вещи.
А вот тут не понял.
Мы при зондировании земной коры пытались просвечивать очаг землетрясения электрическим током. Сперва была идея, что для повышения отношения сигнал/шум надо увеличить мощность источника тока. Для этого на Памир затащили МГД-генератор. Он давал ток в сотни ампер. Но, каждый пуск был праздником. Он требовал большой подготовки и происходил в лучшем случае раз в две недели. А последняя стадия подготовки землетрясения - это часы-сутки (как тогда думали).Т.е. сопротивление очаговой зоны надо измерять ежедневно, хотя бы.
И вот как раз мой многолетний шеф А.Я.Сидорин, насчитавшись книг по радиофизике, предложил вместо однократного жутко сильного импульса послать в породу гораздо более слабый (и поэтому легко генерируемый), но очень длинный знакопеременный сигнал из прямоугольных импульсов длительностью пару секунд каждый, но суммарно длиной в полчаса. А на приемной станции выполнялось измерение напряжения на положительной и отрицательной фазе питающего импульса. И высчитывалась разница между ними. И эта разница суммировалась по паре тысяч импульсов (получасовой цикл). Заодно такая схема решала проблему с поляризацией среды, переходными процессами (ток на выходе МГД-генератора меняется по очень хитрым законам, и такой сигнал не так просто пересчитать в напряжение на приемнике из-за индуктивности), и пр.
В общем, при многократном понижении стоимости и снижении силы тока в 100 раз мы улучшили отношение сигнал/шум на два порядка за счет накопления. Подробности раскиданы по разным работам, но если интересно, можно для начала вот тут посмотреть (текст выложен).
Так вот.
Разве эту схему измерений нельзя называть синхронным детектированием? Мы всегда думали, что можно. И что накопление и синхронное детектирование - это очень близкородственные понятия (хотя и разные, разумеется). Но в нашем случае описанная схема зондирования в каком-то смысле обобщает первое и второе в единый процесс (алгоритм).
Очень длинный коммент мне технически сложно запостить (спасибо, редактор Хабра!)
> При накоплении ведь складываются отсчеты, разнесенные достаточно длинным интервалом времени (...) Если так, то [1] шумовые значения некоррелированы (читай белый шум). Если при этом эти отсчеты [2] имеют нормальную плотность вероятностей, то они и независимы [цифры мои]
К сожалению, оба предположения не выполняются.
[1]. В моем случае корреляция с ростом лага уменьшается, но очень медленно. На самом деле эта скорость определяется значением степенного параметра спектра <альфа>. Пока он маленький (порядка 0.5), все более-менее норм. Корреляция и правда уменьшается настолько быстро, что это даже можно в расчетах использовать. Обосновать не могу, но численное моделирование подтверждает. Например, для метеопараметров такое приближение (в виде поправки к формулам для БШ) отлично работает.
Но вот в моем случае параметр <альфа> обычно
близок к 2.0
Если интересно, вот тут или вот тут есть таблички степенных параметров для сигналов из нашей вотчины. Почти всегда там что-то
от 1.7 до 2.0.
Только если правда туда в эти таблички полезете, то учитывайте, что мы там в считали не степенной параметр спектра мощности <альфа>, а степенной параметр амплитудного спектра к=<альфа>/2. Так как мне хотелось читать спектр в тех же размерных физических единицах, что и исходный сигнал (а не в квадратичных)
Это совершенно типично для большинства рядов в твердой Земле, магнитосфере и пр. Турбулентность тоже, кстати, дает 5/3 (спектр Колмогорова). Но, когда значение <альфа> близко к 2.0, корреляция остается неприемлемо высокой для любых разумных лагов.
Увы.
Я пытаюсь с этим бороться с помощью разных трюков. Например, отрезаю НЧ, оставляю только узкую полосу, потом пытаюсь работать в этой узкой полосе. Благо, после такой процедуры (выделение узкополосного сигнала) дальние корреляции действительно хорошо давятся
Но, с точки зрения здравого математического смыла отписанный трюк больше похож на какое-то надругательство над сигналом. Ведь в ФШ-сигнале нет никаких выделенных частотных полос! Когда я такие полосы искусственно вырезаю - то это же полный произвол! Так как никаких разумных аргументов для выбора этих частотных полос исходный сигнал не содержит.
Я, конечно, пытаюсь отталкиваться от физики изучаемых явлений (в физике-то частоты не равноправны)... но с точки зрения матаппарата это же просто кривая подпорка к неработающему легаси...
Но всем пофиг...
Я в прошлом году пару статей на основе этой идеи написал. Думал, отдам в журнал, там рецензенты прочтут и в ужас придут. А потом, глядишь, и что-нибудь посоветуют.
Однако же замечания и советы были о чем угодно, но только не про этот больной (для меня) вопрос. Обе статьи (в разных журналах!) уже напечатаны. Я уже не знаю, к кому теперь обращаться... Физики меня прокатили, а к математикам лезть - это дословно получится со свиным рылом в калашный ряд (с)
Ну и по пп.[2] все еще проще. Чем ближе степенной параметр [альфа] к 2.0, тем больше распределение
уходит от Гаусса в сторону равномерного
Вот для примера распределения для ФШ рядов с <альфа> = 1 и 2
Примеры ФШ рядов. Степенной параметр 1.0 для первых двух случаев и 2.0 для двух нижних рядов
Для ФШ со степенным параметром 1.0 функция распределения чем-то напоминает гауссиан ;-)
Для ФШ со степенным параметром 2.0 имеем нечто среднее между нормальным и равномерным распределением
Интуитивно это можно понять: чем больше <альфа>, тем сильнее персистентность, тем активнее самоподдерживается тенденция к росту или спаду. В результате сигнал начинает "гулять" от минимума до максимума. В пределе (при <альфа> порядка 4) это уже начинает напоминать линейный тренд, у которого, как известно, распределение равномерное. Ну а в нашем случае (когда <альфа> 1.5..2.0) - что-то промежуточное
А вот тут уже не совсем. Это при работе с искусственными сигналами можно выбрать подходящую полосу частот, приладить туда источник-приемник, и не париться обо всем, что правее-левее. С одной стороны защищаемся найквистом, с другой - ФНЧ, и поехали проходить через квест, имея уровень "бог".
При экспериментальном мониторинге мы чем дольше наблюдаем, тем больше знаем. А проблема ФШ в том, что на любом масштабе времени (при любой длине ряда) наибольшую амплитуду (мощность) имеют периоды, сопоставимые с этой длиной ряда. Поэтому ограничивать спектр со стороны минимальных частот (=максимальных периодов) неверно как философски, так и технически. Философски мы теряем главную ценность данных - продолжительность непрерывно наблюдаемого процесса, а технически - теряем наибольшую часть измеренного сигнала в плане его дисперсии (мощности).
Так что это не выбор. Это данность, с которой приходится жить...
> Мы можем регуляризовать модель, добавив туда малую константу
Я совсем плохой теоретик, поэтому мне непонятно: как добавление этой константы поможет упростить формулы/выкладки. Навскидку - я совсем не уверен, что упростит. Но в любом случае, за идею спасибо. Если когда-нибудь я смогу найти математика, который заинтересуется моими вопросами, то я ему обязательно эту переписку покажу. Возможно, он оценит и использует Вашу идею.
> В реальности имеется проблема оценить эту константу
Ну, для теоретических выкладок можно наверно просто приравнять ее неизвестному малому значению <дельта>.
;-)))
Что же касается практических случаев, то там будет за счастье даже не точные формулы, а хотя бы асимптотика. Возможно, там получится какой-то другой параметр прикрутить, который будет легко оцениваться и даст нужные поправки к решению.
> (и, вообще, подобрать корректную модель такого "плохого" шума).
Тут вопрос в том, что нам надо от эксперимента идти. Мы знаем, что СПМ реальных сигналов ведет себя определенным образом. Больше того, даже знаем некоторые модели процессов (их много!), которые к такой СПМ приводят. Только вот плясать конкретно от этих моделей нельзя, так как их целая куча, и следствия из них разные. Например, модель с независимыми случайными приращениями - это совершенно не то же самое, что модель с перемежаемостью по Тимашеву... Поэтому в идеале надо бы исходить из эмпирик-факта, и только лишь из него...
> И проблема найти интеграл аналитически для любого параметра "альфа".
Тут ничего не могу сказать: я не математик. Но вообще, сидя на берегу реки (с), кажется странным, что такая простая на вид задачка может представлять реальную трудность. Возможно, она просто была особо никому не нужна?
> Согласитесь, интегрировать константу N0 проще, чем витиеватую СПМ фликкер-шума?
Спасибо, но Вы мои способности явно переоцениваете ;-) Я даже во временной области с большим трудом могу ФШ из "примитивов" собрать. А уж в частотной...
> СПМ белого шума - константа, которую как правило обозначают N0, [Вт/Гц]. Это не мощность, это плотность мощности. Она конечна для любых реальных шумовых процессов;
Разумеется. Расходимость возникает в одной точке (на нулевом периоде). Однако, это лишает нас права написать неопределенный интеграл. И, видимо, как-то мешает перейти к общим формулам.
Точнее, в случае с БШ это как-то уже преодолено, а вот в случае с ФШ - поему-то нет. Я сам не слишком хорошо в этом разбираюсь. но по факту есть масса литературы, вышедшей в нормальных журналах, где авторы берут ФШ и путем элементарных и очевидных преобразований выписывают связь между его степенным спектральным параметром <бета>, фрактальной "размерностью" такого сигнала D и его показателем Херста H. Причем написано все настолько просто и очевидно, что только у дурака могут возникнуть сомнения в этих формулах. И авторы вроде бы неплохие - от Туркотта до Фосса и Федера. Беда только в том, что формулы (связывающие три эти величины) у разных авторов получаются разными. А главное, дают странные ответы в граничных случаях. Например, большинство авторов считает, что 2D+<бета>=5, а другая половина - что 2D+<бета>=4. Но, первая формула дает странный ответ для белого шума (если <бета>=0, то D=2.5, и это на плоскости!), а вторая дает аналогичный глюк для броуновского шума (у него <бета>=2, но тогда D=1.0, хотя на самом деле там D=1.5). Ссылки на публикации упомянутых авторов с этими формулами можно найти вот тут.
Да, эти работы достаточно древние, но с тех пор никто так и не удосужился уточнить: а как же на самом деле? Вот я и подозреваю, что общие формула не выводятся из-за расходимости с неопределенными интегралами. Если же брать конечные реализации, особенно модельные, то с ними и
у меня все более-менее норм
Связь-между-бета-D-H.png. Н посчитан в классическом определении Херста, без взятия приращений. По оси абсцисс отложен параметр Фосса Hf
Глядя на этакие картинки, я даже могу предположить, какие формулы к этому численному моделированию лучше подходят. Только вот теоретически сам их вывести не могу. И, соответственно, не могу обосновать асимптотику подавления ФШ накоплением...
> определяется качеством приема: приемником, антенной, каналом (например, есть или нет радиозасветки Солнца и др. космических объектов).
Вы уверены, что шум во всех этих случаях именно белый? Я вот в этом весьма сомневаюсь. Так как в случае БШ фон спектра должен становиться плоским, начиная с какого-то уровня, где сигнал исчезает, и дальше (на более высоких частотах) доминирует шум. Но при обработке реальных рядов и почти никогда не встречал подобные спектры. В моих данных они билогарифмически-линейно спадают с ростом частоты вниз вплоть до найквиста. Но тогда кто дал нам право экстраполировать выполаживание спектра левее доступного изучению диапазона частот (что эквивалентно допущению о "белости" шума)? По Оккаму, гораздо логичнее просто продолжить эту тенденцию в бесконечность. Да и здравый смысл намекает, что это правдоподобнее. Ведь дискретизация измеряемого сигнала - это наше над ним надругательство, а в действительности-то аналоговый сигнал всегда непрерывный. Поэтому гораздо логичнее взять в качестве "базовой модели" исходного (а не измеренного!) сигнала именно ФШ, у которого нет бесконечной мощности при интегрировании вплоть до нулевого периода.
Но, рассуждая аналогично, на другом (НЧ) конце спектра мы тогда тоже должны допустить аналогичную экстраполяцию "без новых сущностей". И тогда уже она приведет к бесконечной мощности на нулоевой частоте. практически всегда вижу спадающую кривую на билогарифмитческом графике. рядов
> Заметьте, тут про дискретизацию вообще нет речи, и она по сути не требуется. Это уже нюансы цифровой обработки сигналов и их лучше опустить.
Именно так - это наш способ работы с данными. Но когда мы хотим вывести теоретическую формулу, мы же работаем с абстракцией. И для БШ (который теоретически имеет бесконечную мощность, если не ограничивать диапазон частот) все эти формулы почему-то выписываются без проблем. Проблема "нулевого периода" никому не мешает. А вот в варианте с ФШ (где по сути все то же самое, только проблема на нулевой частоте вместо нулевого периода) формулы почему-то не пишутся. Я так и не могу понять - почему.
Вы меня правильно поймите: я сам не смогу вывести нужные формулы ни в одном случае, ни в другом. Но:
(1) я запросто использую те формулы, которые написаны для БШ. Они в любом учебнике есть, причем на все случаи жизни; они прекрасно работают, и никогда (если шум действительно белый) не вступают ни в какое в противоречие ни с здравым смыслом, ни с численными моделями.
(2) С другой стороны, я легко могу показать, что при замене БШ на ФШ все эти формулы работать перестают. И это нельзя исправить никакими "маленькими поправками". Там просто катастрофические расхождения возникают. В варианте ФШ формулы для БШ больше не работают ни в каком приближении.
(3) Ну и с третей стороны, подавляющее большинство временных рядов долговременного мониторинга - это либо строго ФШ, либо почти ФШ. Тут просто нет ни малейших сомнений - достаточно на спектр посмотреть.
А теперь вопрос: почему, несмотря на (2) и (3), у нас нигде нет разумных формул для варианта с ФШ? См., например, мой исходный вопрос про подавление ФШ накоплением. Ну ведь наболело же! Я рецензирую кучу статей в журналах, где авторы на полном серьезе применяют в подобных случаях формулы для БШ. Хотя бред очевидный. И в каждом конкретном случае его можно продемонстрировать элементарно. Вот ваши яблоки, берем из них два, складываем с другими двумя. Теперь видите, что в ответе НЕ 5?
А общей формулы нет!
Чтобы не разбирать в стопятсотый раз в точности одну и ту же ошибку, складывая чемоданы, груши и финики.
Вдогонку: кажется, я сообразил, в чем преимущество Vim! Отвечу сам же себе, т.к. время редактирования прошлого комментария истекает:
> Несмотря на все это, попытка нового знакомства с Vim в моем случае окончилась полным крахом. Прежде всего, "не зашла" концепция двух режимов работы. Зачем, если есть экран, где все видно, и работать "стрелочками" (плюс модификаторы) много проще?
Проще - это же только мне на десктопе!!! Где у меня под рукой два комплекта стрелочек на основной и правой клавиатуре, плюс всякие контролы-шифты и справа, и слева, не говоря уже про всякий синтаксический рукопальцевый сахар в виде кучи Fn и т.д. На ноуте такую роскошь еще поищи... Но если там для типичных команд надо сделать три последовательных нажатия вместо одного комбинированного, тогда ой! Тогда я бы и сам, вероятно предпочел двухрежимный редактор, только чтоб так не мучиться. Даже интересно: я угадал или мимо? Можно ли оценить, какой процент завсегдатаев VIM-а работает преимущественно на десктопе? Ну или точнее, сравнить относительную долю VIM-щиков среди тех. кто программирует: а) преимущественно на ноуте б) преимущественно на дестктопе?
Будет ли в этих группах статистически значимое различие?
@cupraer> Я перешел на vim после мучений с VisualStudio, Idea, Atom, VSCode (в этой последовательности) — примерно в 2017
Я тоже решил познакомиться с Vim примерно в 2017г. До этого (еще в DOS-эпоху) пользовался Omni и Multi-Edit-ом, а позже VisualStudio и Notepade++ (конечно, много других редакторов тоже, но эти были основой). Но поскольку моя сознательная жизнь (еще перед DOS) началась с PDP-11 (=СМ-4), где, вроде бы, стояло что-то из vi-семейства, то решил, так сказать, попробовать
вернуться к истокам
Хотя уже ничего про эти "истоки" не помню. Вроде, сперва на СМ-4 у нас стоял какой-то строчный редактор, но уже при мне он как-то научился имитировать многострочность. Эх, давно это было (где-то 1986г).
Так вот. Несмотря на все это, попытка нового знакомства с Vim в моем случае окончилась полным крахом. Прежде всего, "не зашла" концепция двух режимов работы. Зачем, если есть экран, где все видно, и работать "стрелочками" (плюс модификаторы) много проще?
Нет, я совсем не считаю, что Vim - отстой. Наоборот, я сразу же я оценил наиболее убойную (на взгляд чайника) фичу: для меня это
кратность команд
Только вот в реальной жизни она мне бывает нужна нечасто. Если требуется 2-3-кратный повтор, то мне проще нажать команду два раза, чем искать цифру "3". А если не пару раз, а 15, то это же надо еще сперва посчитать, сколько именно. А мне лень... И лишь в некоторых специфических (но вполне регулярных) случаях мне бывает нужен 5-ти, 7-и т.д.-кратный повтор отдельных команд, чередуя их с разными другими командами. Специально для таких случаев я наплодил себе макросов в Notepade++, благо общий набор таких ситуаций и шаблонов действий у меня ограничен.
А еще у меня не возникло проблемы с выходом
которой тут всех пугают ;-)
т.к. я заранее, еще перед входом в Vim, разузнал о противоядии ;-)
Тем не менее, после пары дней тренировок у меня не возникло чувство, что с уверенным освоением Vim я существенно в чем-то выиграю. Возможно, проблема в том, что меня не особо напрягают ограничения уже освоенных редакторов?
Но вопрос я хотел задать не об этом.
Моим первым "рабочим" редактором в DOS был так называемый Omni. Полноэкранный! И тоже, кстати,
с нетривиальным выходом из него ;-))
Там стояла "защита от дурака": чтобы выйти без сохранения, надо было в специальном окошке ввести имя файла ;-) Ну или символ "*", если имя файлу еще не присвоено. Что как бы намекает на уровень компьютерной грамотности предполагаемых пользователей...
Кстати, он у меня до сих пор
запускается под DosBox-ом
,
А вопрос вот такой. Если тут еще кто-то помнит про Omni (не важно, хорошее или плохое), сможете рассказать про историю его зарождения/смерти? И в каких отношениях он находился с vi-семейством? Я, к сожалению, не умею в антимонгольский, а русскоязычным поиском ничего особенно не находится. Буду благодарен за ссылки по теме,
включая англоязычные
так как прочитать рекомендованную страницу при наличии переводчика - не проблема. А вот искать на незнакомом языке, особенно когда не умеешь, проблематично
Во-первых, статистику будем брать от целевого распределения.
А во-вторых, Вы зря думаете, что статистика фамилий радикально отличается для разных социальных групп и профессий. В частности, в обоих упомянутых группах будет гораздо больше фамилий на К или С, чем на Ю или Щ. Думаю, что более точные данные легко можно найти при необходимости.
На мой непросвещенный взгляд (из самых общих соображений), гораздо более сильные различия в частотности фамилий - не профессиональные, а национальные (и, вследствие этого, региональные). Поэтому если мы хотим написать на базе сабжевого принципа более-менее универсальный алгоритм (который будет пригоден для принципиально разных наборов фамилий), то функция коррекции распределения должна вводиться отдельно как настраиваемый параметр алгоритма. Попросту говоря, она должна вычисляться с учетом частотного распределения фамилий в целевой группе.
Таким образом, получается настраиваемый алгоритм: мы один раз анализируем фактическое распределение сортируемых объектов (и это не обязательно фамилии, хотя именно для фамилий выигрыш должен быть очень хорошим), потом строим к нему обратную частотную функцию (приближающую распределение к равномерному), ну а потом можно очень быстро сортировать поступающие списки.
Еще можно время от времени проводить реанализ распределения с учетом обновляющихся данных, и уточнять обратную частотную функцию.
Второй вариант:
Если. к примеру, к нам могут поочередно поступать списки то из Китая, то из Египта, то из Исландии, то тогда заготовим несколько таких корректирующих функций (для каждого региона), а потом применяем соответствующую функцию в зависимости
от источника данных
Если регион заранее неизвестен, но их ограниченное количество, и известно, что смешанных списков почти не бывает, то можно сперва надергать немного (=n-малое) случайных фамилий из поступившего списка, и по ним с хорошей точностью определить регион за O(n-малое)
Короче говоря: вопрос про статистику поставлен правильно, но решается он гораздо проще, чем может показаться на первый взгляд. Если, конечно, нам действительно критична скорость сортировки, и мы готовы заплатить за это усложнением алгоритмов. И, главное, если задача попадает в тот довольно узкий список задач, для которых вся эта оптимизация: а) эффективна и б) выигрыш стоит того, чтобы этим всем заморочиться
>> Для unsigned long long int (64 bit) - ексабайт. > Нет, конечно. Буфер выбирается из тех ресурсов, которые вы можете позволить.
Я что-то туплю: а за что заминусовали ответ про буфер? Вроде бы, там все верно: если у Вас 64-битный ключ, то сперва можно отсортировать по первым 16 (либо 8) битам (т.е. потребуется 65536 либо 256 ящиков=уровней). Потом внутри каждого такого "ящика" - по следующим 16/8 битам. И так далее.
Другой вопрос, что в пределе это и будет та же самая N * logN -сортировка. Ну так никто и не обещал, что предложенный алгоритм годится на все случаи жизни. Это специфическая (но иногда очень выгодная!) оптимизация для специфических случаев.
Например, если у вас 64-битный ключ, но данные по этой шкале раскиданы очень редко (подавляющая часть ключей не используется), то уже после сортировки по первым 16 битам в каждом ящике может оказаться так мало записей, что они за ничтожное время отсортируются другим алгоритмом.
А у меня в реальной жизни (геофизические временные ряды) часто встречаются 64-битные данные (на самом деле обычно 32-битгные, но сейчас это не принципиально), но подавляющая часть из этих значений лежит в середине диапазона, и только малая часть - на краях (= выбросы). А я их хочу упаковать в 16 бит без чрезмерной потери точности (выбросы надо сохранить!). Я для этого делаю log-преобразование, которое приближает распределение к равномерному, после чего трюк с равномерными уровнями прекрасно работает.
> Фамилии людей распределены весьма не равномерно.
Если мы заранее знаем, что это будут фамилии, то можно учесть неравномерность распределения, разбив алфавит на
неравные интервалы верхнего уровня
т.е. корректируем "алфавит" так, чтобы распределение фамилий по новым "буквам" стало равномерным. А на этапе распихивания фамилий по "ящикам" (когда нам нужно, чтобы "номер ящика" вычислялся в одно действие) применяем обратную функцию перехода от реального алфавита к вымышленному (на котором распределение равномерное). Для ускорения процедуры эта корректирующая функция может быть максимально простой, т.к. строгая равномерность интервалов не нужна.
P.S. Спасибо автору, что напомнил про этот алгоритм! Я его применял в глубокой древности, генерируя однобайтовые ключи для сравниваемых объектов, и потом распихивая их по 256 значениям ключей. Но сейчас при столкновении с подобной задачкой - уже не факт, что вспомнил бы про такой алгоритм. Теперь не забуду ;-)
Про ветер пока что слишком дешевый развод ;-). На таком уровне я и сам могу вместо нейросети поиграть ;-))
Лучше попросите нейросеть объяснить то же самое условному "пожизненному" моряку (т.е. никогда не сходившему на берег) или жителю пустыни, где деревьев нет в принципе. А еще уточните, что этот модельный моряк или житель южной/полярной пустыни вообще никогда деревьев не видел, и просто не знает, что это такое. Вот когда она: 1) сначала объяснит ему про деревья - что это за такая приблуда, и как они устроены, и почему у них иногда стволы/ветки качаются (причем все это всерьез!), а потом 2) чуть ниже в том же самом ответе снова напишет про ветер и ветки (но уже согласно игре!!), то читать станет значительно интереснее ;-))
Как Вы думаете, есть шанс, что получится?
Если да, то было бы очень интересно, чтобы этот текст потом специалист по шизофрении прокомментировал ;-))))
Я в 1986-90г работал на СМ-4, которую привезли и установили в горах Таджикистана для обработки научных наблюдений. А примерно через 10 лет несколько раз ходил вместе с Алексеем Рудневым в "детские"
горные походы
Младшим участникам было по 7-10 лет. Особенно драматичным оказался поход на Фишт в 1998г, когда у одного из членов группы случился перитонит, который мы вовремя
не распознали
Мы ж не медики. Как пальпировать аппендицит - примерно догадывались, но у перитонита симптомы отличаются... А последствия даже более скоротечные
Лагерь стоял на оз.Псенодах - с такой проблемой самостоятельно оттуда не спустишься. А на операционный стол с таким диагнозом надо попасть в течение суток, максимум двух. Если б не борт МЧС, который как раз в этот момент прилетел на Фишт в ходе
плановой тренировки,
За несколько лет до этого на Фиште разбилась связка сочинских спасателей, и после этого такие тренировки проводились на горе ежегодно 30 июля или в ближайшую дату. Сохранилась ли эта традиция до сих пор - не знаю
и который удалось "подловить" на приюте, последствия для пострадавшего могли оказаться гораздо печальнее. Думаю, Алексею эта история запомнилась на всю жизнь (и для меня она тоже стала хорошим уроком)
А главный прикол в том, что будучи (за несколько лет до этих путешествий) активным пользователем СМ-4, я даже не догадывался о том вкладе, который Алексей внес в развитие этой техники.
Понятно, что в походе, на отдыхе говорить о работе не хочется. Но, вероятно, есть все-таки некий предел, начиная с которого скромность перестает украшать человека, а начинает мешать прогрессу :-((
> Материал могу собрать. А статью на хабре?
Проще и быстрее всего - на Хабре. Это, конечно, не рецензируемый ресурс, но достаточно уважаемый, так как вместо "допечатного рецензирования" тут хорошо работает механизм "послепечатного комментирования". Я в научных журналах несколько раз ссылался на Хабр, и такие ссылки никаких возражений не вызывали.
> Если не на хабре, то там вряд ли примут. Я давно не отслеживаю мир науки и мне трудно подобрать журнал.
С журналом не подскажу. В геофизических наверняка скажут, что это непрофильная тематика, если не будет конкретного применения в геофизике. А тут пока есть определенный разрыв.
Что же касается математических журналов, то я их просто не знаю. "Высоких" математиков я практически не читаю (очень уж далеки они от народа, да и язык непонятный). Ну и их тоже вряд ли такая частноприкладная задача заинтересует.
> Это всего лишь заметка.
Ну так на Хабре вроде нет ограничения по размеру статьи (что если объем не тянет на полновесную монографию, то публиковать нельзя ;-).
Но если Вам интересен вид с моей колокольни, то вот он:
1) Тема узконишевая, но внутри этой ниши весьма актуальна;
2) Общедоступная информация по теме практически отсутствует, что провоцирует недоразумения и заблуждения;
3) Выведенные формулы, с одной стороны, априори неочевидны, а с другой - дают пищу для размышлений
4) Идея с малым параметром F0 в этом контексте мне вообще никогда не встречалась;
5) Результаты полезные и нетривиальные
Поэтому просто потерять сделанное (а если оно останется только в комментариях, то для большей части человечества будет утрачено) было бы обидно.
P.S.
Если Вам для оформления публикации понадобятся картинки с временными рядами, спектрами или АКФ - только намекните! Сделаю в течение пары дней!
> В реальности, наверное, всё таки есть минимальная нижняя частота, которая связана с размерами Земли :)
Ну да. И еще одна, связанная с ее возрастом ;-)
А если чуть серьезнее, Вы уже настолько обширную работу провели, что очень хочется увидеть небольшую статью, где все эти результаты были бы собраны в единое целое. Понимаю, что тема весьма специфичная, и что миллионную аудиторию такая публикация соберет вряд ли. Но вообще-то тема достаточно актуальная в определенных кругах. Только вот большинство из этих потенциальных читателей - не на Хабре. И в здешних комментариях они никогда Ваши результаты не увидят. А вот в формате статьи - найдут!
Может, подумаете об этом при случае?
Очень прошу...
Спасибо за статью! Но сначала конструктивная критика:
1) Почему в опросе нельзя выбрать несколько вариантов ответа?
2) Что касается мессенджеров и социальных сетей, было бы интересно как-то сравнить относительную активность в разных сетях. Но это сильно усложнит формат опроса :-(
Мне вот и по телефону звонят, и в мессенджерах пишут - я бы оба пункта отметил. Как выходной - так от директора просто отбоя нету...
Но вообще, когда время есть, я с любым звонящим стараюсь максимально конструктивно общаться.
Приятно ведь поговорить с человеком, который твоими проблемами интересуется, и даже вроде хочет помочь. Если, к примеру, у него что-то не получается, то всегда ищу какие-то компромиссные схемы. Уточняю, как именно можно перевести деньги, какие данные для этого нужны. Например, когда мне по телефону звонят - могу три раза подряд продиктовать свой номер, вплоть до побуквенного объяснения каждой цифры (если плохо слышно). "Семен, Елена, Маша, мягкий знак...", и т.д. Потом обязательно проверяю, что собеседник номер моего телефона правильно записал. Чтобы ошибки какой-то не вышло. Я ведь уже почти что пенсионер, а в финансовых вопросах точность нужна...
Но я видимо неудачник какой-то. Ну или товарищи на том конце совсем лыка не вяжут. Вроде бы все обсудили: как деньги на карту перевести по номеру телефона, как баланс счета пополнить. Вплоть до пошаговой инструкции. Все бесполезно!
Ни разу ни на телефон, ни на карту ни рубля не пришло...
> Посмотрел случай "альфы" больше единицы. Исходный интеграл равен бесконечности для любых "тау", то есть АКФ в ее классическом определении не существует.
Что, собственно, было вполне ожидаемо уже после первой части ответа (про альфа возле единицы слева) ;-))
> (по крайней мере для конечных
, рассматривал значения около единицы)
А вот тут
не врубаюсь
У нас же <альфа> больше 1, т.е. (<альфа>-1) > 0. Получается положительное число в положительной степени. При T0 > 1 будет что-то строго больше 1. Тут тоже для перехода к обычной АКФ надо на R(0) поделить?
Но главное, я вообще не вижу зависимости от <тау>. Получается, в этом приближении АКФ(<тау>) = константа? Которая после нормировки будет точно равна 1?
Глядя на формальные оценки АКФ для реальных реализаций ФШ, я в общем-то легко готов в это поверить. Но Ваши расчеты добавляют важный нюанс: что этот эффект наблюдается для любых <альфа>, начиная с 1.0 и больше. Так?
Это уже вполне себе Результат!
> Про асимптотику по тау при альфа возле единицы слева
Очень интересно и неожиданно!
Спасибо!
Только с константой не очень понятно. Мы же про АКФ говорим, она нормированная же? Тогда при <тау>=0 должно быть АКФ=1,
что и определяет константу слева?
Я так понял, там еще должен быть какой-то член типа 1/R(0), который в формулах в явном виде не выписан? Или я что-то путаю?
Но в любом случае получается, что при <альфа>, близких к 1, зависимость АКФ от <тау> (на больших <тау>, естественно)
почти исчезает, так?
Ведь <тау> в знаменателе будет в околонулевой степени
Другими словами, при <альфа>, близких к 1, мы просто не можем уйти на такие большие лаги, при которых АКФ можно считать малой. А при меньших <альфа> это (в теории) потенциально возможно. Это интересный нюанс!
Получается. что ФШ
1) с <альфа> < 1 и
2) с <альфа> >= 1
это два совершенно разных ФШ?!
В первом случае дальние корреляции (при неограниченном росте <тау>) присутствуют, но все-таки связь ослабляется с ростом лага. А во втором - все, хана... даже этого нет.
Я правильно интерпретирую формулу?
И еще одно уточнение. SymPy shell online - это ведь лишь инструмент, так? Он не поясняет, какой именно математический метод (подход) использован для расчета асимптотики?
> Дак это ж радиофизика. Там лучше Рытова Кравцова Татарского читать "Введение в стат радиофизику",
ну вот, круг замыкается :-((
Моей первой книжкой по случайным процессам был именно Рытов (который 1976г.). С него все и началось...
Впрочем, освежить старые знания наверно и правда пора.
> У меня получилось найти АКФ для фликкер-шума, но для ограниченного параметра "альфа". Спасибо справочнику по интегралам Градштейн, Рыжик.
Спасибо!!! А можете еще подсказать,
как я могу на это Ваше сообщение сослаться, если понадобится?
Я пока не знаю, как я смогу эту формулу использовать, но если смогу, то я бы хотел в дополнение к
ссылке на
Градштейн И.С., Рыжик И. М. Таблицы интегралов, сумм, рядов и произведений / Перераб. при участии Ю. В. Геронимуса и М. Ю. Цейтлина. — 5-е изд., стер. — М.: Наука, 1971. — 1108с.
добавить ссылку на "личное сообщение" (в журналах их обычно оформляют в виде подстраничных сносок). Но, в такой ссылке надо указать ФИО автора сообщения. Если Вы не против,
напишите мне данные в ЛС?
В научной публикации такая ссылка будет выглядеть примерно вот так (реальный пример:)
Глухов В.Е. [https://www.elibrary.ru/author_items.asp?authorid=1072618], личное сообщение
> Только что это даст?
Это интересный вопрос, так как мне на самом деле нужны значения <альфа> от 1.5 до 2.0. Но и соседний случай полезен для сравнения!
Единственное, я с хода не смог разобраться: какая там будет асимптотика по тау, когда <альфа> снизу приближается к 1?
(....)
> (..) Поэтому для БШ формулы очень простые.
Да, видимо это и есть ключевое отличие между БШ и ФШ.
> Надо различать ось времени и ось амплитуд. То, что называют оптимальным приемом (корреляционный прием, согласованный фильтр) не является накоплением при обработке рядов. Это разные вещи.
А вот тут не понял.
Мы при зондировании земной коры пытались просвечивать очаг землетрясения электрическим током. Сперва была идея, что для повышения отношения сигнал/шум надо увеличить мощность источника тока. Для этого на Памир затащили МГД-генератор. Он давал ток в сотни ампер. Но, каждый пуск был праздником. Он требовал большой подготовки и происходил в лучшем случае раз в две недели. А последняя стадия подготовки землетрясения - это часы-сутки (как тогда думали).Т.е. сопротивление очаговой зоны надо измерять ежедневно, хотя бы.
И вот как раз мой многолетний шеф А.Я.Сидорин, насчитавшись книг по радиофизике, предложил вместо однократного жутко сильного импульса послать в породу гораздо более слабый (и поэтому легко генерируемый), но очень длинный знакопеременный сигнал из прямоугольных импульсов длительностью пару секунд каждый, но суммарно длиной в полчаса. А на приемной станции выполнялось измерение напряжения на положительной и отрицательной фазе питающего импульса. И высчитывалась разница между ними. И эта разница суммировалась по паре тысяч импульсов (получасовой цикл). Заодно такая схема решала проблему с поляризацией среды, переходными процессами (ток на выходе МГД-генератора меняется по очень хитрым законам, и такой сигнал не так просто пересчитать в напряжение на приемнике из-за индуктивности), и пр.
В общем, при многократном понижении стоимости и снижении силы тока в 100 раз мы улучшили отношение сигнал/шум на два порядка за счет накопления. Подробности раскиданы по разным работам, но если интересно, можно для начала вот тут посмотреть (текст выложен).
Так вот.
Разве эту схему измерений нельзя называть синхронным детектированием? Мы всегда думали, что можно. И что накопление и синхронное детектирование - это очень близкородственные понятия (хотя и разные, разумеется). Но в нашем случае описанная схема зондирования в каком-то смысле обобщает первое и второе в единый процесс (алгоритм).
Или это только у нас такая специфика?
Прошу прощения, но
буду отвечать по частям
Очень длинный коммент мне технически сложно запостить (спасибо, редактор Хабра!)
> При накоплении ведь складываются отсчеты, разнесенные достаточно длинным интервалом времени (...) Если так, то [1] шумовые значения некоррелированы (читай белый шум). Если при этом эти отсчеты [2] имеют нормальную плотность вероятностей, то они и независимы [цифры мои]
К сожалению, оба предположения не выполняются.
[1]. В моем случае корреляция с ростом лага уменьшается, но очень медленно. На самом деле эта скорость определяется значением степенного параметра спектра <альфа>. Пока он маленький (порядка 0.5), все более-менее норм. Корреляция и правда уменьшается настолько быстро, что это даже можно в расчетах использовать. Обосновать не могу, но численное моделирование подтверждает. Например, для метеопараметров такое приближение (в виде поправки к формулам для БШ) отлично работает.
Но вот в моем случае параметр <альфа> обычно
близок к 2.0
Если интересно, вот тут или вот тут есть таблички степенных параметров для сигналов из нашей вотчины. Почти всегда там что-то
от 1.7 до 2.0.
Только если правда туда в эти таблички полезете, то учитывайте, что мы там в считали не степенной параметр спектра мощности <альфа>, а степенной параметр амплитудного спектра к=<альфа>/2. Так как мне хотелось читать спектр в тех же размерных физических единицах, что и исходный сигнал (а не в квадратичных)
Это совершенно типично для большинства рядов в твердой Земле, магнитосфере и пр. Турбулентность тоже, кстати, дает 5/3 (спектр Колмогорова). Но, когда значение <альфа> близко к 2.0, корреляция остается неприемлемо высокой для любых разумных лагов.
Увы.
Я пытаюсь с этим бороться с помощью разных трюков. Например, отрезаю НЧ, оставляю только узкую полосу, потом пытаюсь работать в этой узкой полосе. Благо, после такой процедуры (выделение узкополосного сигнала) дальние корреляции действительно хорошо давятся
Но, с точки зрения здравого математического смыла отписанный трюк больше похож на какое-то надругательство над сигналом. Ведь в ФШ-сигнале нет никаких выделенных частотных полос! Когда я такие полосы искусственно вырезаю - то это же полный произвол! Так как никаких разумных аргументов для выбора этих частотных полос исходный сигнал не содержит.
Я, конечно, пытаюсь отталкиваться от физики изучаемых явлений (в физике-то частоты не равноправны)... но с точки зрения матаппарата это же просто кривая подпорка к неработающему легаси...
Но всем пофиг...
Я в прошлом году пару статей на основе этой идеи написал. Думал, отдам в журнал, там рецензенты прочтут и в ужас придут. А потом, глядишь, и что-нибудь посоветуют.
Однако же замечания и советы были о чем угодно, но только не про этот больной (для меня) вопрос. Обе статьи (в разных журналах!) уже напечатаны. Я уже не знаю, к кому теперь обращаться... Физики меня прокатили, а к математикам лезть - это дословно получится со свиным рылом в калашный ряд (с)
Ну и по пп.[2] все еще проще. Чем ближе степенной параметр [альфа] к 2.0, тем больше распределение
уходит от Гаусса в сторону равномерного
Вот для примера распределения для ФШ рядов с <альфа> = 1 и 2
Интуитивно это можно понять: чем больше <альфа>, тем сильнее персистентность, тем активнее самоподдерживается тенденция к росту или спаду. В результате сигнал начинает "гулять" от минимума до максимума. В пределе (при <альфа> порядка 4) это уже начинает напоминать линейный тренд, у которого, как известно, распределение равномерное. Ну а в нашем случае (когда <альфа> 1.5..2.0) - что-то промежуточное
Вдогонку:
Ой!
Прошу прощения за опечатки и глюки в комменте :-(( Время редактирования истекло, не успел сохранить исправленный вариант :-(((
> СПМ фликкер-шума, допустим, степенная функция
Она конечная всюду, кроме полюса f = 0.
Именно так!
> Этот полюс - наш выбор.
А вот тут уже не совсем. Это при работе с искусственными сигналами можно выбрать подходящую полосу частот, приладить туда источник-приемник, и не париться обо всем, что правее-левее. С одной стороны защищаемся найквистом, с другой - ФНЧ, и поехали проходить через квест, имея уровень "бог".
При экспериментальном мониторинге мы чем дольше наблюдаем, тем больше знаем. А проблема ФШ в том, что на любом масштабе времени (при любой длине ряда) наибольшую амплитуду (мощность) имеют периоды, сопоставимые с этой длиной ряда. Поэтому ограничивать спектр со стороны минимальных частот (=максимальных периодов) неверно как философски, так и технически. Философски мы теряем главную ценность данных - продолжительность непрерывно наблюдаемого процесса, а технически - теряем наибольшую часть измеренного сигнала в плане его дисперсии (мощности).
Так что это не выбор. Это данность, с которой приходится жить...
> Мы можем регуляризовать модель, добавив туда малую константу
Я совсем плохой теоретик, поэтому мне непонятно: как добавление этой константы поможет упростить формулы/выкладки. Навскидку - я совсем не уверен, что упростит. Но в любом случае, за идею спасибо. Если когда-нибудь я смогу найти математика, который заинтересуется моими вопросами, то я ему обязательно эту переписку покажу. Возможно, он оценит и использует Вашу идею.
> В реальности имеется проблема оценить эту константу
Ну, для теоретических выкладок можно наверно просто приравнять ее неизвестному малому значению <дельта>.
;-)))
Что же касается практических случаев, то там будет за счастье даже не точные формулы, а хотя бы асимптотика. Возможно, там получится какой-то другой параметр прикрутить, который будет легко оцениваться и даст нужные поправки к решению.
> (и, вообще, подобрать корректную модель такого "плохого" шума).
Тут вопрос в том, что нам надо от эксперимента идти. Мы знаем, что СПМ реальных сигналов ведет себя определенным образом. Больше того, даже знаем некоторые модели процессов (их много!), которые к такой СПМ приводят. Только вот плясать конкретно от этих моделей нельзя, так как их целая куча, и следствия из них разные. Например, модель с независимыми случайными приращениями - это совершенно не то же самое, что модель с перемежаемостью по Тимашеву... Поэтому в идеале надо бы исходить из эмпирик-факта, и только лишь из него...
> И проблема найти интеграл аналитически для любого параметра "альфа".
Тут ничего не могу сказать: я не математик. Но вообще, сидя на берегу реки (с), кажется странным, что такая простая на вид задачка может представлять реальную трудность. Возможно, она просто была особо никому не нужна?
> Согласитесь, интегрировать константу N0 проще, чем витиеватую СПМ фликкер-шума?
Спасибо, но Вы мои способности явно переоцениваете ;-) Я даже во временной области с большим трудом могу ФШ из "примитивов" собрать. А уж в частотной...
> СПМ белого шума - константа, которую как правило обозначают N0, [Вт/Гц]. Это не мощность, это плотность мощности. Она конечна для любых реальных шумовых процессов;
Разумеется. Расходимость возникает в одной точке (на нулевом периоде). Однако, это лишает нас права написать неопределенный интеграл. И, видимо, как-то мешает перейти к общим формулам.
Точнее, в случае с БШ это как-то уже преодолено, а вот в случае с ФШ - поему-то нет. Я сам не слишком хорошо в этом разбираюсь. но по факту есть масса литературы, вышедшей в нормальных журналах, где авторы берут ФШ и путем элементарных и очевидных преобразований выписывают связь между его степенным спектральным параметром <бета>, фрактальной "размерностью" такого сигнала D и его показателем Херста H. Причем написано все настолько просто и очевидно, что только у дурака могут возникнуть сомнения в этих формулах. И авторы вроде бы неплохие - от Туркотта до Фосса и Федера. Беда только в том, что формулы (связывающие три эти величины) у разных авторов получаются разными. А главное, дают странные ответы в граничных случаях. Например, большинство авторов считает, что 2D+<бета>=5, а другая половина - что 2D+<бета>=4. Но, первая формула дает странный ответ для белого шума (если <бета>=0, то D=2.5, и это на плоскости!), а вторая дает аналогичный глюк для броуновского шума (у него <бета>=2, но тогда D=1.0, хотя на самом деле там D=1.5). Ссылки на публикации упомянутых авторов с этими формулами можно найти вот тут.
Да, эти работы достаточно древние, но с тех пор никто так и не удосужился уточнить: а как же на самом деле? Вот я и подозреваю, что общие формула не выводятся из-за расходимости с неопределенными интегралами. Если же брать конечные реализации, особенно модельные, то с ними и
у меня все более-менее норм
Глядя на этакие картинки, я даже могу предположить, какие формулы к этому численному моделированию лучше подходят. Только вот теоретически сам их вывести не могу. И, соответственно, не могу обосновать асимптотику подавления ФШ накоплением...
> определяется качеством приема: приемником, антенной, каналом (например, есть или нет радиозасветки Солнца и др. космических объектов).
Вы уверены, что шум во всех этих случаях именно белый? Я вот в этом весьма сомневаюсь. Так как в случае БШ фон спектра должен становиться плоским, начиная с какого-то уровня, где сигнал исчезает, и дальше (на более высоких частотах) доминирует шум. Но при обработке реальных рядов и почти никогда не встречал подобные спектры. В моих данных они билогарифмически-линейно спадают с ростом частоты вниз вплоть до найквиста. Но тогда кто дал нам право экстраполировать выполаживание спектра левее доступного изучению диапазона частот (что эквивалентно допущению о "белости" шума)? По Оккаму, гораздо логичнее просто продолжить эту тенденцию в бесконечность. Да и здравый смысл намекает, что это правдоподобнее. Ведь дискретизация измеряемого сигнала - это наше над ним надругательство, а в действительности-то аналоговый сигнал всегда непрерывный. Поэтому гораздо логичнее взять в качестве "базовой модели" исходного (а не измеренного!) сигнала именно ФШ, у которого нет бесконечной мощности при интегрировании вплоть до нулевого периода.
Но, рассуждая аналогично, на другом (НЧ) конце спектра мы тогда тоже должны допустить аналогичную экстраполяцию "без новых сущностей". И тогда уже она приведет к бесконечной мощности на нулоевой частоте. практически всегда вижу спадающую кривую на билогарифмитческом графике. рядов
> Заметьте, тут про дискретизацию вообще нет речи, и она по сути не требуется. Это уже нюансы цифровой обработки сигналов и их лучше опустить.
Именно так - это наш способ работы с данными. Но когда мы хотим вывести теоретическую формулу, мы же работаем с абстракцией. И для БШ (который теоретически имеет бесконечную мощность, если не ограничивать диапазон частот) все эти формулы почему-то выписываются без проблем. Проблема "нулевого периода" никому не мешает. А вот в варианте с ФШ (где по сути все то же самое, только проблема на нулевой частоте вместо нулевого периода) формулы почему-то не пишутся. Я так и не могу понять - почему.
Вы меня правильно поймите: я сам не смогу вывести нужные формулы ни в одном случае, ни в другом. Но:
(1) я запросто использую те формулы, которые написаны для БШ. Они в любом учебнике есть, причем на все случаи жизни; они прекрасно работают, и никогда (если шум действительно белый) не вступают ни в какое в противоречие ни с здравым смыслом, ни с численными моделями.
(2) С другой стороны, я легко могу показать, что при замене БШ на ФШ все эти формулы работать перестают. И это нельзя исправить никакими "маленькими поправками". Там просто катастрофические расхождения возникают. В варианте ФШ формулы для БШ больше не работают ни в каком приближении.
(3) Ну и с третей стороны, подавляющее большинство временных рядов долговременного мониторинга - это либо строго ФШ, либо почти ФШ. Тут просто нет ни малейших сомнений - достаточно на спектр посмотреть.
А теперь вопрос: почему, несмотря на (2) и (3), у нас нигде нет разумных формул для варианта с ФШ? См., например, мой исходный вопрос про подавление ФШ накоплением. Ну ведь наболело же! Я рецензирую кучу статей в журналах, где авторы на полном серьезе применяют в подобных случаях формулы для БШ. Хотя бред очевидный. И в каждом конкретном случае его можно продемонстрировать элементарно. Вот ваши яблоки, берем из них два, складываем с другими двумя. Теперь видите, что в ответе НЕ 5?
А общей формулы нет!
Чтобы не разбирать в стопятсотый раз в точности одну и ту же ошибку, складывая чемоданы, груши и финики.
Да, аналогия между ФШ и статистическим самоподобием очевидна
Вдогонку: кажется, я сообразил, в чем преимущество Vim! Отвечу сам же себе, т.к. время редактирования прошлого комментария истекает:
> Несмотря на все это, попытка нового знакомства с Vim в моем случае окончилась полным крахом. Прежде всего, "не зашла" концепция двух режимов работы. Зачем, если есть экран, где все видно, и работать "стрелочками" (плюс модификаторы) много проще?
Проще - это же только мне на десктопе!!! Где у меня под рукой два комплекта стрелочек на основной и правой клавиатуре, плюс всякие контролы-шифты и справа, и слева, не говоря уже про всякий
синтаксическийрукопальцевый сахар в виде кучи Fn и т.д. На ноуте такую роскошь еще поищи... Но если там для типичных команд надо сделать три последовательных нажатия вместо одного комбинированного, тогда ой! Тогда я бы и сам, вероятно предпочел двухрежимный редактор, только чтоб так не мучиться. Даже интересно: я угадал или мимо? Можно ли оценить, какой процент завсегдатаев VIM-а работает преимущественно на десктопе? Ну или точнее, сравнить относительную долю VIM-щиков среди тех. кто программирует:а) преимущественно на ноуте
б) преимущественно на дестктопе?
Будет ли в этих группах статистически значимое различие?
@cupraer> Я перешел на vim после мучений с VisualStudio, Idea, Atom, VSCode (в этой последовательности) — примерно в 2017
Я тоже решил познакомиться с Vim примерно в 2017г. До этого (еще в DOS-эпоху) пользовался Omni и Multi-Edit-ом, а позже VisualStudio и Notepade++ (конечно, много других редакторов тоже, но эти были основой). Но поскольку моя сознательная жизнь (еще перед DOS) началась с PDP-11 (=СМ-4), где, вроде бы, стояло что-то из vi-семейства, то решил, так сказать, попробовать
вернуться к истокам
Хотя уже ничего про эти "истоки" не помню. Вроде, сперва на СМ-4 у нас стоял какой-то строчный редактор, но уже при мне он как-то научился имитировать многострочность. Эх, давно это было (где-то 1986г).
Так вот. Несмотря на все это, попытка нового знакомства с Vim в моем случае окончилась полным крахом. Прежде всего, "не зашла" концепция двух режимов работы. Зачем, если есть экран, где все видно, и работать "стрелочками" (плюс модификаторы) много проще?
Нет, я совсем не считаю, что Vim - отстой. Наоборот, я сразу же я оценил наиболее убойную (на взгляд чайника) фичу: для меня это
кратность команд
Только вот в реальной жизни она мне бывает нужна нечасто. Если требуется 2-3-кратный повтор, то мне проще нажать команду два раза, чем искать цифру "3". А если не пару раз, а 15, то это же надо еще сперва посчитать, сколько именно. А мне лень... И лишь в некоторых специфических (но вполне регулярных) случаях мне бывает нужен 5-ти, 7-и т.д.-кратный повтор отдельных команд, чередуя их с разными другими командами. Специально для таких случаев я наплодил себе макросов в Notepade++, благо общий набор таких ситуаций и шаблонов действий у меня ограничен.
А еще у меня не возникло проблемы с выходом
которой тут всех пугают ;-)
т.к. я заранее, еще перед входом в Vim, разузнал о противоядии ;-)
Тем не менее, после пары дней тренировок у меня не возникло чувство, что с уверенным освоением Vim я существенно в чем-то выиграю. Возможно, проблема в том, что меня не особо напрягают ограничения уже освоенных редакторов?
Но вопрос я хотел задать не об этом.
Моим первым "рабочим" редактором в DOS был так называемый Omni. Полноэкранный! И тоже, кстати,
с нетривиальным выходом из него ;-))
Там стояла "защита от дурака": чтобы выйти без сохранения, надо было в специальном окошке ввести имя файла ;-) Ну или символ "*", если имя файлу еще не присвоено. Что как бы намекает на уровень компьютерной грамотности предполагаемых пользователей...
Кстати, он у меня до сих пор
запускается под DosBox-ом
А вопрос вот такой. Если тут еще кто-то помнит про Omni (не важно, хорошее или плохое), сможете рассказать про историю его зарождения/смерти? И в каких отношениях он находился с vi-семейством? Я, к сожалению, не умею в антимонгольский, а русскоязычным поиском ничего особенно не находится. Буду благодарен за ссылки по теме,
включая англоязычные
так как прочитать рекомендованную страницу при наличии переводчика - не проблема. А вот искать на незнакомом языке, особенно когда не умеешь, проблематично
> А статистику какую будем для этого брать?
Во-первых, статистику будем брать от целевого распределения.
А во-вторых, Вы зря думаете, что статистика фамилий радикально отличается для разных социальных групп и профессий. В частности, в обоих упомянутых группах будет гораздо больше фамилий на К или С, чем на Ю или Щ. Думаю, что более точные данные легко можно найти при необходимости.
На мой непросвещенный взгляд (из самых общих соображений), гораздо более сильные различия в частотности фамилий - не профессиональные, а национальные (и, вследствие этого, региональные). Поэтому если мы хотим написать на базе сабжевого принципа более-менее универсальный алгоритм (который будет пригоден для принципиально разных наборов фамилий), то функция коррекции распределения должна вводиться отдельно как настраиваемый параметр алгоритма. Попросту говоря, она должна вычисляться с учетом частотного распределения фамилий в целевой группе.
Таким образом, получается настраиваемый алгоритм: мы один раз анализируем фактическое распределение сортируемых объектов (и это не обязательно фамилии, хотя именно для фамилий выигрыш должен быть очень хорошим), потом строим к нему обратную частотную функцию (приближающую распределение к равномерному), ну а потом можно очень быстро сортировать поступающие списки.
Еще можно время от времени проводить реанализ распределения с учетом обновляющихся данных, и уточнять обратную частотную функцию.
Второй вариант:
Если. к примеру, к нам могут поочередно поступать списки то из Китая, то из Египта, то из Исландии, то тогда заготовим несколько таких корректирующих функций (для каждого региона), а потом применяем соответствующую функцию в зависимости
от источника данных
Если регион заранее неизвестен, но их ограниченное количество, и известно, что смешанных списков почти не бывает, то можно сперва надергать немного (=n-малое) случайных фамилий из поступившего списка, и по ним с хорошей точностью определить регион за O(n-малое)
Короче говоря: вопрос про статистику поставлен правильно, но решается он гораздо проще, чем может показаться на первый взгляд. Если, конечно, нам действительно критична скорость сортировки, и мы готовы заплатить за это усложнением алгоритмов. И, главное, если задача попадает в тот довольно узкий список задач, для которых вся эта оптимизация:
а) эффективна и
б) выигрыш стоит того, чтобы этим всем заморочиться
>> Для unsigned long long int (64 bit) - ексабайт.
> Нет, конечно. Буфер выбирается из тех ресурсов, которые вы можете позволить.
Я что-то туплю: а за что заминусовали ответ про буфер? Вроде бы, там все верно: если у Вас 64-битный ключ, то сперва можно отсортировать по первым 16 (либо 8) битам (т.е. потребуется 65536 либо 256 ящиков=уровней). Потом внутри каждого такого "ящика" - по следующим 16/8 битам. И так далее.
Другой вопрос, что в пределе это и будет та же самая N * logN -сортировка. Ну так никто и не обещал, что предложенный алгоритм годится на все случаи жизни. Это специфическая (но иногда очень выгодная!) оптимизация для специфических случаев.
Например, если у вас 64-битный ключ, но данные по этой шкале раскиданы очень редко (подавляющая часть ключей не используется), то уже после сортировки по первым 16 битам в каждом ящике может оказаться так мало записей, что они за ничтожное время отсортируются другим алгоритмом.
А у меня в реальной жизни (геофизические временные ряды) часто встречаются 64-битные данные (на самом деле обычно 32-битгные, но сейчас это не принципиально), но подавляющая часть из этих значений лежит в середине диапазона, и только малая часть - на краях (= выбросы). А я их хочу упаковать в 16 бит без чрезмерной потери точности (выбросы надо сохранить!). Я для этого делаю log-преобразование, которое приближает распределение к равномерному, после чего трюк с равномерными уровнями прекрасно работает.
Ответить
> Фамилии людей распределены весьма не равномерно.
Если мы заранее знаем, что это будут фамилии, то можно учесть неравномерность распределения, разбив алфавит на
неравные интервалы верхнего уровня
т.е. корректируем "алфавит" так, чтобы распределение фамилий по новым "буквам" стало равномерным. А на этапе распихивания фамилий по "ящикам" (когда нам нужно, чтобы "номер ящика" вычислялся в одно действие) применяем обратную функцию перехода от реального алфавита к вымышленному (на котором распределение равномерное). Для ускорения процедуры эта корректирующая функция может быть максимально простой, т.к. строгая равномерность интервалов не нужна.
P.S. Спасибо автору, что напомнил про этот алгоритм! Я его применял в глубокой древности, генерируя однобайтовые ключи для сравниваемых объектов, и потом распихивая их по 256 значениям ключей. Но сейчас при столкновении с подобной задачкой - уже не факт, что вспомнил бы про такой алгоритм. Теперь не забуду ;-)
Про ветер пока что слишком дешевый развод ;-).
На таком уровне я и сам могу вместо нейросети поиграть ;-))
Лучше попросите нейросеть объяснить то же самое условному "пожизненному" моряку (т.е. никогда не сходившему на берег) или жителю пустыни, где деревьев нет в принципе. А еще уточните, что этот модельный моряк или житель южной/полярной пустыни вообще никогда деревьев не видел, и просто не знает, что это такое. Вот когда она:
1) сначала объяснит ему про деревья - что это за такая приблуда, и как они устроены, и почему у них иногда стволы/ветки качаются (причем все это всерьез!), а потом
2) чуть ниже в том же самом ответе снова напишет про ветер и ветки (но уже согласно игре!!),
то читать станет значительно интереснее ;-))
Как Вы думаете, есть шанс, что получится?
Если да, то было бы очень интересно, чтобы этот текст потом специалист по шизофрении прокомментировал ;-))))