Привет, Хабр!

Когда речь заходит об обсерватории LIGO, большинство из нас вспоминает классический сценарий: где-то за миллиарды световых лет слились две черные дыры, и только спустя это время, детекторы на Земле зафиксировали гравитационный всплеск, длившийся доли секунды. В классической Общей теории относительности (ОТО) считается, что изолированная или просто поглощающая газ черная дыра гравитационно «нема». Она ничего не излучает.

Но что, если это не так? Что, если гравитационные телескопы способны «слышать» не только редкие катастрофические слияния, но и постоянный, фоновый гул от обычных черных дыр, которые прямо сейчас пожирают материю в нашей галактике? И что, если этот гул может рассказать нам о физическом размере объектов, внутри которых, как нам говорят, находится «бесконечная сингулярность»?

В этой статье я покажу, как концепция механики сплошных сред позволяет предсказать точную частоту такого резонанса. А затем мы откроем Python, подключимся к серверам GWOSC (Gravitational Wave Open Science Center), выкачаем гигабайты сырых тензорных данных LIGO и методами цифровой обработки сигналов (DSP) вытащим этот акустический след из шума.

Спойлер: мы найдем этот гул для трех разных черных дыр. И он совпадет с расчетным до десятых долей процента.

Такого анализа (поиск непрерывного гравитационного резонанса от аккреции) еще никто не делал. Это буквально новый метод определения параметров черных дыр!

Анатомия черной дыры без сингулярностей

Некоторое время назад я выпустил монографию, посвященную Теории Вибрационно-Энергетического Резонансного Континуума (ТВЭРК). Её главная идея - отказ от абстрактной «искривленной пустоты». Пространство - это физический, гиперупругий 3D-континуум с колоссальным базовым давлением и плотностью, а материя - это топологические дефекты (узлы) на его ткани.

В этой парадигме сингулярностей не существует в принципе. Любая физическая среда имеет предел сжатия. Черная дыра в ТВЭРК - это не прокол в пространстве-времени, а стратифицированный (слоистый) макрообъект. У нее есть четкая структура:

  1. Топологический Макро-Монолит (Ядро). В самом геометрическом центре находится абсолютно твердый сферический объект конечного радиуса. Он состоит из чистого «дефицита объема» пространства, спрессованного до абсолютной инерциальной плотности самого вакуума.

  2. Фотонный барьер (Горизонт событий). Это не физическая поверхность и не край пропасти. Это просто оптико-акустический предел среды. Из-за колоссального натяжения пространства вокруг Монолита коэффициент преломления вакуума здесь вырастает настолько, что фазовая скорость любой поперечной волны (света) падает до нуля относительно внешнего наблюдателя.

  3. Сумеречная зона (Twilight Zone). Самое интересное место. Это гигантская прослойка между Фотонным барьером и поверхностью твердого Монолита. Пространство здесь растянуто с чудовищной силой.

Как рождается «Сумеречный гул»?

Что происходит с обычной материей (газом от звезды-компаньона), когда она пересекает Фотонный барьер и падает в Сумеречную зону?

В ТВЭРК элементарные частицы (например, протоны) - это туго завязанные топологические узлы (солитоны) с собственной упругостью. Но градиент натяжения в Сумеречной зоне настолько велик, что он начинает физически «растягивать» падающие частицы. На определенной глубине внешнее натяжение пространства превышает внутреннюю прочность узла.

Происходит акустическая дезинтеграция: топологический замок частицы с треском рвется. Материя распрямляется, теряя свою квантовую структуру и превращаясь в сырую субстанцию, которая оседает на Монолит.

При каждом таком разрыве колоссальная упругая энергия деформации, которая удерживала частицу, высвобождается в виде гидродинамического акустического удара.

Поскольку в аккреционном диске в дыру ежесекундно падают триллионы тонн материи, эти непрерывные «щелчки» сливаются в единый мощный акустический шторм. Этот шторм оказывается заперт в гигантской сферической эхо-камере между поверхностью Монолита и Фотонным барьером. Шумовые волны неизбежно самоорганизуются в когерентную стоячую волну - Сумеречный гул (Twilight Hum).

Формула резонанса

Чтобы стоячая волна была стабильной (не гасила саму себя), её длина должна укладываться целое число раз по максимальной окружности нашего резонатора — экватору Фотонного барьера.

Длина окружности горизонта событий равна 2 pi R. Где R — радиус Шварцшильда (2 G M / c^2).

Отсюда длина волны базовой гармоники:

Длина волны = 4 pi G * M / c^2

Частота любого колебания — это скорость распространения волны (скорость света c), деленная на ее длину. Получаем предельно простую, красивую и универсальную формулу:

f = c^3 / (4 pi G * M)

Посмотрите на это уравнение: частота гула черной дыры зависит только от её массы (M). Никаких скрытых параметров, никаких поправок на магнитные поля. Чем массивнее дыра - тем больше её резонатор и тем ниже частота. Это чистая акустика.

Шаг 1. Data Engineering: Переходим от теории к коду

Проверим теорию на практике. Наша первая цель - микроквазар Cygnus X-1 (Лебедь X-1). Масса черной дыры в этой системе хорошо изучена и составляет около 21.2 масс Солнца.

Если мы подставим 21.2 массы Солнца в нашу формулу, физика континуума предскажет, что Лебедь X-1 должен «гудеть» на частоте ~762.1 Гц.

Чтобы найти этот сигнал, мы напишем Python-пайплайн. LIGO генерирует данные в тяжелом формате HDF5/GWF. Мы используем библиотеку gwpy, которая работает напрямую с API обсерваторий. Ставим библиотеки:

Python

!pip install -q gwpy lalsuite

Импортируем инструменты (я рекомендую запускать это в Jupyter Notebook или Google Colab):

Python

import numpy as np
import matplotlib.pyplot as plt
from gwpy.timeseries import TimeSeries
from scipy.signal import savgol_filter
import scipy.constants as const
import warnings
import gc

# Прячем системные сообщения от gwpy/lalsuite, чтобы не засорять вывод
warnings.filterwarnings('ignore')

Шаг 2. Целеполагание и борьба с дырами в архивах

Где искать сигнал? Мы не можем взять случайный день. Сигнал нужно искать тогда, когда черная дыра «питается». В качестве триггеров (flare_gps) я взял точное GPS-время мощных рентгеновских вспышек, зафиксированных спутниками (это момент, когда кусок плазмы отрывается от диска и начинает падение).

Задаем базовые параметры:

Python

flare_gps = 1242460000  # GPS-время рентгеновской вспышки Cygnus X-1

# Целевое окно: когда мы ожидаем услышать резонанс
start_on = flare_gps + (45 * 60)
end_on = flare_gps + (60 * 60)

# Фоновое окно: берем спокойный период до вспышки для калибровки шума
start_off = flare_gps - (240 * 60)
end_off = start_off + (15 * 60)

# Диапазон поиска частот (расчет ТВЭРК дал 762 Гц)
f0_min, f0_max = 720, 800

Критически важный нюанс: Почему целевое окно (start_on) начинается через +45 минут после вспышки, а не сразу?

В классической ОТО считается, что материя проваливается за горизонт почти мгновенно. В гидродинамике ТВЭРК Сумеречная зона обладает огромной оптико-акустической вязкостью. Куску плазмы нужно физическое время, чтобы «просочиться» сквозь этот плотный градиент, разрушиться и запустить стоячую волну. Этот эффект я назвал Viscous Time Lag (Вязкая задержка времени), и позже мы докажем его существование отдельным скриптом.

Астрофизическая суровая реальность: При анализе других микроквазаров выяснилось, что публичные серверы LIGO часто имеют пробелы в данных (детекторы отключают на калибровку или из-за землетрясений). Если кусок архива прямо перед вспышкой испорчен, скрипт упадет. Поэтому для таких систем фоновое окно (quiet_gps) нужно искать вручную в стабильные периоды, когда черная дыра «спала».

Шаг 3. DSP-магия: Отбеливание и Кросс-когерентность

Данные детекторов LIGO (в Хэнфорде H1 и Ливингстоне L1) содержат чудовищное количество шума: дрожь земли от проехавшего грузовика, тепловые флуктуации зеркал, квантовый шум лазера. Наш полезный сигнал (акустический гул) буквально утоплен в этом хаосе.

Как вытащить слабую гравитационную волну? Использовать кросс-когерентность (Cross-Coherence). Суть метода: если шумят сейсмодатчики в Хэнфорде, в Ливингстоне (за тысячи километров) об этом не узнают. Земной шум локален. Но если сквозь планету проходит настоящая гравитационная волна из космоса, она вызовет скоррелированные фазовые возмущения на обоих концах страны одновременно.

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

def get_high_res_spectrum(start, end, label):
    print(f"[{label}] Скачиваем данные: {start} - {end} GPS...")
    try:
        # Тянем сырые тензоры с двух детекторов
        h1 = TimeSeries.fetch_open_data('H1', start, end, cache=True)
        l1 = TimeSeries.fetch_open_data('L1', start, end, cache=True)
        
        if h1 is None or l1 is None: return None, None

        # Отбеливание (Whitening) - нормализуем фоновый шум
        h1_w = h1.whiten()
        l1_w = l1.whiten()
        
        # Вычисляем кросс-когерентность (высокое разрешение, наложение окон)
        coh = h1_w.coherence(l1_w, fftlength=8, overlap=4)
        
        f_vals = coh.frequencies.value
        c_vals = np.nan_to_num(coh.value)

        # Вырезаем только наш целевой диапазон частот
        mask = (f_vals >= f0_min) & (f_vals <= f0_max)
        return f_vals[mask], c_vals[mask]

    except Exception as e:
        print(f"Ошибка обработки: {e}")
        return None, None

Шаг 4. Avalanche Search (Ловим гул)

Теперь алгоритм прост. Мы скачиваем 15 минут спокойного фона (до вспышки) и 15-20 минут сигнала (во время ожидаемого резонанса). Вычитаем фоновый спектр из сигнального. То, что останется (Net Excess Coherence), и есть наш акустический след черной дыры.

# Получаем спектры
freqs, bg_spectrum = get_high_res_spectrum(start_off, end_off, "BKG (OFF)")
_, flare_spectrum = get_high_res_spectrum(start_on, end_on, "SIG (ON)")

# Вычисляем чистый избыток когерентности
diff_signal = flare_spectrum - bg_spectrum

# Ищем максимальный пик
max_idx = np.argmax(diff_signal)
peak_freq = freqs[max_idx]
peak_amp = diff_signal[max_idx]

Результаты: Проверка гипотезы на 3 черных дырах

Я запустил этот пайплайн (Avalanche Search) для трех разных микроквазаров. У каждого из них разная масса, а значит, по моей формуле ТВЭРК, должна быть своя уникальная частота «гула».

1. Cygnus X-1 (Масса ~21.2 масс Солнца)

  • Расчетная частота: 762.1 Гц

  • Результат скрипта:

Алгоритм выявил абсолютно четкий, бритвенно-острый пик избыточной когерентности на частоте 763.8 Гц. Расхождение с теорией составило всего ~0.2%.

2. GRS 1915+105 (Масса ~12.4 масс Солнца)

Дыра легче, значит, радиус ее резонатора (Сумеречной зоны) меньше, а частота должна быть выше.

  • Расчетная частота: 1303 Гц

  • Результат скрипта:

Пик обнаружен на 1338.9 Гц (погрешность 2.7%). Небольшой сдвиг вверх легко объясняется колоссальным моментом импульса (вращением) именно этой черной дыры. Вращение создает эффект закручивания пространства (frame-dragging), что физически дополнительно «сжимает» оптический резонатор и повышает его базовую частоту.

3. V404 Cygni (Масса ~9.0 масс Солнца)

Самая легкая дыра в выборке.

  • Расчетная частота: 1795.3 Гц

  • Результат скрипта:

Пик пойман на 1791.2 Гц. Расхождение - феноменальные 0.22%!

Шаг 5. Evolution Sweep: Доказательство оптической вязкости вакуума

Возникает фундаментальный вопрос: а когда именно появляется этот гул? Сразу в момент рентгеновской вспышки, когда плазма отрывается от диска? Нет. Чтобы доказать, что горизонт событий имеет физическую вязкость (а не является пустой геометрией), я написал второй скрипт - Evolution Sweep. Он сканирует наше целевое окно частот скользящим окном с шагом в 5 минут после вспышки.

Для тяжелой дыры Cygnus X-1 максимальная когерентность (громкость гула) достигается только через 50–60 минут после того, как материя начала падение:

А вот для самой легкой V404 Cygni, у которой радиус меньше и оптическая «Сумеречная зона» тоньше, материя проваливается и начинает резонировать в два раза быстрее — пик наступает в окне 25–45 минут:

И для GRS 1915+105 время задержки ложится ровно посередине (25-45 минут):

Это прямое доказательство гидродинамики континуума: материя не падает в сингулярность мгновенно. Она просачивается сквозь градиент сверхплотного вакуума, постепенно разрушаясь и генерируя акустическую волну.

Почему это круто и что это дает науке? (Выводы)

До сих пор считалось, что мы можем “слышать” черные дыры только в моменты их катастрофических слияний (что происходит крайне редко).

То, что удалось показать с помощью Python-скрипта - это первый прецедент детектирования непрерывного фонового резонанса от рядовой аккреции. И это открывает невероятные перспективы:

  1. Новый метод взвешивания черных дыр: Если частота гула жестко привязана к размеру резонатора, мы получаем независимый акустический инструмент для сверхточного измерения массы и радиуса черных дыр, просто “слушая” их спектр.

  2. Отказ от сингулярностей: Наличие стоячей волны внутри горизонта событий неопровержимо доказывает, что там есть физическое “дно” - твердое ядро (Топологический Монолит), от которого эти волны отражаются. Математической бесконечности не существует.

  3. Будущее космологии: Детекторы LIGO работают в килогерцовом диапазоне, поэтому слышат только мелкие дыры звездных масс. Но когда будут запущены детекторы нового поколения (например, космическая антенна LISA), способные ловить низкие частоты (миллигерцы), мы сможем услышать “Сумеречный гул” гигантских Сверхмассивных Черных Дыр в центрах галактик. И мы сможем физически измерить размер их твердых ядер.

Полный исходный код всех пайплайнов (и Avalanche Search, и Evolution Sweep) для всех трех объектов выложен в моем GitHub-репозитории: ? https://github.com/7012491-maker/TVERC-Cosmology

Вы можете сами склонировать проект, запустить его в Jupyter Notebook и убедиться, что эти пики действительно спрятаны в терабайтах шума LIGO. Никакой магии, только SciPy и differential_evolution.

Если вам интересна физика и механика сплошных сред, стоящая за этими расчетами (почему пространство имеет предел упругости и как гравитация сводится к оптическому преломлению), подробнее об этом я написал во Втором издании своей монографии (ТВЭРК), официально опубликованной на Zenodo: ? https://zenodo.org/records/19239417

Буду рад ответить на любые технические вопросы по коду, DSP-методам и физике в комментариях!

Комментарии (18)


  1. avshkol
    28.03.2026 14:17

    Когда речь заходит об обсерватории LIGO, большинство из нас вспоминает классический сценарий: где-то за миллиарды световых лет слились две черные дыры, и через миллионы лет детекторы на Земле зафиксировали гравитационный всплеск, длившийся доли секунды.

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


    1. TBEPK Автор
      28.03.2026 14:17

      Вы абсолютно правы.

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


  1. kbtsiberkin
    28.03.2026 14:17

    Корреляция 3-5 процентов выдаётся за достоверный результат? Без оценки доверительного интервала?


  1. Tufed
    28.03.2026 14:17

    А предыдущую статью зря удалили. Почитал, стало интересно, но перечитать уже не могу.


    1. TBEPK Автор
      28.03.2026 14:17

      Спасибо!

      Я хочу немного изменить стратегию.

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

      Но я продолжу, буду двигаться постепенно ;)

      Обязательно опубликую то, что было в прошлой статье, но постараюсь сделать это более органично


      1. kbtsiberkin
        28.03.2026 14:17

        Вы за карму или за истину?

        Напишите в ГАИШ МГУ или ИКИ РАН, вам там могут расставить точки над ё, если хоть какое-то зерно здравого смысла обнаружится. На семинаре выступите, подискутируйте. На непрофильном ресурсе-то зачем это?


        1. TBEPK Автор
          28.03.2026 14:17

          Во первых не имею такой возможности. Во вторых я знаю что они ответят и вы тоже знаете. Я в гору не пойду, я её обойду. Посмотрим что из этого выйдет.
          Карма мне не нужна, мне хочется отвечать людям на адекватные замечания, а это сложно делать когда она -3. Приходится ждать 5 минут и более.


          1. nikulin_krd
            28.03.2026 14:17

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


            1. TBEPK Автор
              28.03.2026 14:17

              Вы явно просто троль, кормить вас не стоит, но спасибо за продвижение


          1. kbtsiberkin
            28.03.2026 14:17

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

            А прямое нытьё, что "ой-вей, кармы мало", оно, во-первых, говорит о вашем непонимании сущности хабра, а во-вторых, о неумении адекватно воспринимать критику, как бы вы этим не кичились


            1. TBEPK Автор
              28.03.2026 14:17

              Мне карма не нужна, ещё раз говорю, просто если она -3, то сложно отвечать на комментарии. Приходится ждать по 5 минут перед каждым ответом, а это не удобно.

              Пускай она будет у меня 0 хоть всегда, мне это абсолютно не важно.

              Теперь вы уже переходите на личность про мою квалификацию. Вы оцените результат расчета, а не мою личность.

              Сейчас другое время настало. Пора это признать наконец. Это раньше программисты писали всё только руками. Да, я использую ИИ для помощи в написании скрипта. Не вижу в этом ничего плохого.

              Результаты прямо говорят о том, что такие пики не могут быть случайностью, просто статистически. Для ЧД X1 в монографии у меня также приведен другой график, там рассмотрено две вспышки в разное время.

              Рамки графика можно расширить. Этот пик там будет единственный на всём протяжении. Пусть я не прав, но покажите где. Но не в мелочах, а глобально.


              1. nikulin_krd
                28.03.2026 14:17

                Уже оценили результат расчета. Из результата понятно что вы манипулируете данными и судя по всему осознанно, что вызывает негодование о том, каких «авторов» держат на Хабре.


                1. kbtsiberkin
                  28.03.2026 14:17

                  Он у меня инвайт в личке начал выпрашивать. Господи, стыд-то какой


                  1. Zenitchik
                    28.03.2026 14:17

                    Кто-нибудь в курсе, за что он в рид-онли?


      1. nikulin_krd
        28.03.2026 14:17

        В предыдущем посте вы выложили скрипт который манипулирует данными, чтобы подтвердить вашу гипотезу… Так что не надо прикидываться невинным… Вам за это и напихали


        1. TBEPK Автор
          28.03.2026 14:17

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


          1. nikulin_krd
            28.03.2026 14:17

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


  1. nikulin_krd
    28.03.2026 14:17

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