Расчет требуемой памяти

161616
Offline
Зарегистрирован: 17.05.2018

Добрый день, уважаемые гости форума!

Есть алгоритма для вычисления быстрого преобразования Фурье.

Как расчитать объем требуемой для вычисления памяти и время вычисления? 

sadman41
Offline
Зарегистрирован: 19.10.2016

Есть куча щебенки на фундамент. Как расчитать количество бензина для транспорта и время доставки до места?

161616
Offline
Зарегистрирован: 17.05.2018

{\displaystyle X_{k}=\sum _{n=0}^{N-1}x_{n}e^{-{\frac {2\pi i}{N}}kn}\qquad (k=0,\dots ,N-1).}

Вот форума преобразования, количество N= 6000, тип float.

161616
Offline
Зарегистрирован: 17.05.2018

Я посчитал только объем памяти, требуемую для хранения. Количество умножил на вес (4Б) и получилось 23 кБ. А как-то можно посчитать объем требуемой памяти для вычисления? 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Недавно таой вопрос уже был. И также формулировался ... типа про коня в вакууме. От Вас же?

161616
Offline
Зарегистрирован: 17.05.2018

Да, от меня же, спасибо! Но тот метод, по которому предлагали оценить, дает тольк объем, требуемую для хранения. Может как то по другому можно оценить? 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

161616 пишет:

{\displaystyle X_{k}=\sum _{n=0}^{N-1}x_{n}e^{-{\frac {2\pi i}{N}}kn}\qquad (k=0,\dots ,N-1).}

Вот форума преобразования, количество N= 6000, тип float.

Сдается мне, это не БПФ, а обычное ПФ.

161616
Offline
Зарегистрирован: 17.05.2018

дискретное преобразование

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

161616 пишет:

Да, от меня же, спасибо! Но тот метод, по которому предлагали оценить, дает тольк объем, требуемую для хранения. Может как то по другому можно оценить? 

Известно только, что если Вы используете именно БПФ, то необходимое для работы время можно оценить по формуле C*N*ln(N), где N - объем данных, а С - некоторая константа (зависящая, кстатим, и от представления данных: для int будет одна, а для float - совсем другая).

Если же мы считаем обычное ПФ, то оценка: C*N*N, причем С в общем случае другая.

 

 

PS. Длина 6000 вполне терпима для ПФ, но крайне неблагоприятна для БПФ. Рекомендую выбрать из 4096 или 8192.

161616
Offline
Зарегистрирован: 17.05.2018

Да, в моем случае получается N*N и 4096. Спасибо! А константу C как-то можно вычислить или она дается? Для дискретного тоже требуется два в n данных, вроде как.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Для оценки константы С существует минимум два способа:

1. Теоретический.

2. Экспериментальный.

Причем второй намного проще и быстрее.

PS. Речь исключительно о дискретных. Иначе это уже интеграл Фурье.

161616
Offline
Зарегистрирован: 17.05.2018

Да, только дискретное преобразование. Спасибо за советы!