nabbla (nabbla1) wrote,
nabbla
nabbla1

Category:

Уравновешенное троичное БПФ от размерных величин

На этой неделе наконец-то стряхнул пыль с бедного УТ БПФ и модернизировал его немножко, чтобы он мог работать с любыми величинами, поддерживающими сложение и умножение друг на друга и на комплексные величины, например, с размерными, описанными в библиотеке new_phys_unit_lib (калькулятор PhysUnitCalc - простенькая графическая оболочка для этой библиотеки). Вот что получается:

PhysUnitBTFFT.png

Мы начали с последовательности температур, изображенной слева сверху. Сделав прямое УТ БПФ, получаем последовательность справа - она начинается с отрицательных частот, затем идет постоянная составляющая (20 °C), затем положительные частоты. Если вычесть постоянную составляющую из исходной последовательности, получим нечетную функцию (надо помнить, что ноль расположен строго посередине), поэтому комплексные амплитуды получаются чисто мнимыми.

Что меня больше всего радует - само собой получилось, что постоянная составляющая имеет величину °C (температура в градусах Цельсия), а гармоники - °C{dif} (РАЗНОСТЬ температур в градусах Цельсия), это делает корректным перевод из Цельсиев в Кельвины или в Фаренгейты уже преобразованной последовательности.

Именно так оно проделано строкой ниже: мы перевели исходную последовательность в Кельвины и только потом сделали УТ БПФ, получив результат снизу справа. Для того, чтобы эти результаты переходили друг в друга при смене единицы измерения, было необходимо сохранить дополнительный контекст - где у нас абсолютная температура, а где разность, и о чудо - он у нас есть!

Впрочем, не помешает сделать более быстрый вариант УТ БПФ для размерных величин, который "срывает" с них обертку, преобразует только числа, а потом возращает на место правильные размерности. тем самым преобразование {1;1;1;...;1} - > {0;0...0;1;0;...;0} мы проведем в уме, тогда как сейчас оно вычислялось в явном виде.


На очереди: выполнение линейной свертки сигналов с помощью УТ БПФ, оказывается, и здесь уравновешенное БПФ ложится куда более гладко!

UPD. И еще здесь не может возникнуть путаницы с масштабирующим множителем. На рисунке приведен вариант УТБПФ, когда деление на N происходит в прямом преобразовании, потому что именно тогда мы получаем постоянную составляющую, а не сумму всех чисел, которая сложнее для восприятия.

UPD2. Смысл в том, чтобы на всем протяжении вычислений сохранялась инвариантность к смене единиц измерения, и пока она строго соблюдается.
Tags: physunitcalc, математика, моделирование, уравновешенное троичное БПФ
Subscribe

  • Мартовское велосипедное

    Продолжаю кататься на работу и с работы на велосипеде, а также в РКК Энергию и на дачу. Хотя на две недели случился перерыв, очередная поломка,…

  • Февральское велосипедное

    Продолжаю приезжать на работу на велосипеде, а вот назад всё же сажусь в Ласточку МЦК, на две полноценные поездки в день меня пока не хватает.…

  • Вход в каске и перчатках!

    После нервного возвращения с работы 29 декабря на велосипеде устроил небольшой перерыв - добирался до работы на метро. Но на прошлой неделе заболел…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 14 comments

  • Мартовское велосипедное

    Продолжаю кататься на работу и с работы на велосипеде, а также в РКК Энергию и на дачу. Хотя на две недели случился перерыв, очередная поломка,…

  • Февральское велосипедное

    Продолжаю приезжать на работу на велосипеде, а вот назад всё же сажусь в Ласточку МЦК, на две полноценные поездки в день меня пока не хватает.…

  • Вход в каске и перчатках!

    После нервного возвращения с работы 29 декабря на велосипеде устроил небольшой перерыв - добирался до работы на метро. Но на прошлой неделе заболел…