![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
IvanoffAndrey |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 8.7.2006 Где: СГАУ Репутация: 1 Всего: 2 |
В 2005 году уже был подобный пост на этом форуме, однако он остался без ответа.
подскажите пожалуйста если кто использовала двумерное преобразование Фурье и какие библиотеки, может у кого кусок кода есть? Есть библиотека FTW но не получается ее подключить. --------------------
Размерность пространства есть число Pi и в каждой точке вселенной оно стремиться к этому числу. |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
IvanoffAndrey |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 8.7.2006 Где: СГАУ Репутация: 1 Всего: 2 |
та библиотека которая у меня есть не компилируется, а где достать сразу dll которая в этих примерах используется?
--------------------
Размерность пространства есть число Pi и в каждой точке вселенной оно стремиться к этому числу. |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
IvanoffAndrey |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 8.7.2006 Где: СГАУ Репутация: 1 Всего: 2 |
Мной был скчан 32-bit version: fftw-3.2.1-dll.zip (1.8MB)
в файле fftw_s эспортируются функции из бибилотеки с имемнем 'fftw3f' а у меня в папке только libfftw3f-3.dll Более того компилятор (Turbo Delphi) ругается на некоторые директивы из fftw_s.pas:
Закомментировал эти директивы. Следующая ошибка: кусок коды из fftw_s.pas:
Пишет ошибки линковщика: говорит что функции не помечены как перегружаемые? Подскажите как исправить? и что делать с разными именами библиотек - просто переименовать так как надо чтобы было? --------------------
Размерность пространства есть число Pi и в каждой точке вселенной оно стремиться к этому числу. |
||||
|
|||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
{$CALLING cdecl} по идее нельзя просто так убрать, иначе не поймет параметры. Ее нужно просто заменить на cdecl после каждой функции.
Подозреваю что ошибка из-за этого Добавлено через 7 секунд
Добавлено через 1 минуту и 30 секунд Функции точно из этой библиотеки, имена совпадают, так что не нужно волноваться. Сорцы вроде для fpc, так что чуток напильником и будет работать. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
IvanoffAndrey |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 8.7.2006 Где: СГАУ Репутация: 1 Всего: 2 |
пометил все функции как Overload,
новая ошибка: procedure fftw_getmem(var p:pointer;size:Integer ); из fftw_s.pas не обнаруживается, пишет : [Pascal Error] Project1.dpr(12): E2033 Types of actual and formal var parameters must be identical Очень прошу помочь разобраться. Добавлено через 3 минуты и 55 секунд Да и в этом тоже месте ошибка.
тоже не пропускается,
не совсем понял как это? Добавлено через 5 минут и 22 секунды пишет что CALLING - неверная директива Добавлено через 7 минут и 40 секунд Код сейчас вот в каком состоянии:
--------------------
Размерность пространства есть число Pi и в каждой точке вселенной оно стремиться к этому числу. |
||||||
|
|||||||
IvanoffAndrey |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 8.7.2006 Где: СГАУ Репутация: 1 Всего: 2 |
чтото вроде получилось запустить закомментив многие директивы в том числе и CallLIB
теперь говорит, что fftwf_execute - не можем найти точку входа в библиотеке? Ребята диплом пишу, очень прошу помогите! Сам написать БПФ не успеваю уже. MatLab к Delphi не подсоединяется, уже столько всего перепробовал. --------------------
Размерность пространства есть число Pi и в каждой точке вселенной оно стремиться к этому числу. |
|||
|
||||
IvanoffAndrey |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 8.7.2006 Где: СГАУ Репутация: 1 Всего: 2 |
Ребята удалось запустить. Всем большое спасибо.
Вот код:
Только не понимаю почему получаемые результаты не соотносятся с результатами из MatLab ? --------------------
Размерность пространства есть число Pi и в каждой точке вселенной оно стремиться к этому числу. |
|||
|
||||
IvanoffAndrey |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 8.7.2006 Где: СГАУ Репутация: 1 Всего: 2 |
Вот например подаю симметричное поле:
A = 0 1 2 1 2 3 2 3 4 МатЛаб дает ответ: 18 -4.5 + 2.5980i -4.5 - 2.5980i -4.5 + 2.5980i 0 0 -4.5 - 2.5980i 0 0 А из Delphi Вот что получается: 9.00+ 0.00i| -1.50+ -0.87i| 0.00+ 3.46i| 0.00+ -3.46i| -4.50+ 0.87i| 0.00+ 0.00i| 0.00+ 0.00i| 0.00+ 0.00i| 0.00+ 0.00i| похожие числа то есть но похоже чтото не так с передачей массива в функцию? --------------------
Размерность пространства есть число Pi и в каждой точке вселенной оно стремиться к этому числу. |
|||
|
||||
IvanoffAndrey |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 8.7.2006 Где: СГАУ Репутация: 1 Всего: 2 |
Ребята помогите разобраться с функцией fftw_plan_dft_r2c_2d
ей нужно передавать массивы специальных размеров как я понял, не могу разобраться сейчас изучаю MatLab and FFTW но с моим английским эт надолго. там человек описывает ситуацию аналогичную моей. --------------------
Размерность пространства есть число Pi и в каждой точке вселенной оно стремиться к этому числу. |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
IvanoffAndrey, в модуле не зря были 2е функции
fftw_getmem и fftw_freemem Выделять память под массивы нужно именно ими. Например входной массив 3 x 3 будет выделяется так
Array of array создает массив указателей, а нам нужен цельный блок. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
IvanoffAndrey |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 8.7.2006 Где: СГАУ Репутация: 1 Всего: 2 |
Так спасибо, это и подозревал. Плохо работаю я просто с указателями в дельфе. Я сам то сишник, поэтому траблы.
А как будет выглядеть тогда заполнение массива выделенного таким образом? Добавлено через 10 минут и 5 секунд Блин ребят подскажите как заполнить такой массив числами:
Что в цикле то писать у мя ниче не получается. Добавлено через 13 минут и 41 секунду
то есть pInArr - указатель на Дабл число. - первое число в массиве. а функция
принимает только Pointer, а PDouble не пропускает. Alexeis - помоги плиз, очень надо, вторые сутки безрезультатно сижу. Это сообщение отредактировал(а) IvanoffAndrey - 16.5.2009, 21:09 --------------------
Размерность пространства есть число Pi и в каждой точке вселенной оно стремиться к этому числу. |
||||||
|
|||||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
В чем проблема? Привести типы да и все Pointer(pInArr) точно также как и в С++. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
IvanoffAndrey |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 8.7.2006 Где: СГАУ Репутация: 1 Всего: 2 |
Ребята вссем спасибо. Разобрался. Нужно просто было одномерные массивы использовать. тогда все работает.
Память можно и SetLength выделять. --------------------
Размерность пространства есть число Pi и в каждой точке вселенной оно стремиться к этому числу. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |