XPEHOMETP
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору akaGM Цитата: практически с нуля сам написал простейшие dft/idft, даже вот так: "прастейшые" преобразования (всего 7 строк кода, не считая описaния переменных) | Хе-хе, сам такими вещами когда-то занимался, о чем уже тут написал! Хотя - и не через 7 строк. Похоже, такие самоделки - непременное условие, чтобы понять, как эта штука работает. Что самое любопытное, когда-то пытался сделать на основе разложения Фурье самодельный шумодав, типа, фильтр Винера. Numerical Recipies говорят: это раз плюнуть, и оставляют тебя один на один с твоими проблемами. Готового рецепта не дают. Я грубо и по рабоче-крестьянски убил все верхние частоты - получил страшнейший эффект Гиббса, короче, биения по кривой. Там надо их не так грубо резать, надо делать окно - в книжке об этом сказано, но очень мутно, как бы, окно - отдельно, Винер - отдельно, и я не понял взаимосвязи. Понадобилось чтение конкретных статей, чтобы уяснить, и произошло это намного позже. Да! И после того, как я получил эту фигню, я состряпал некий совсем даже анти-Винеровский фильтр, с выглаживанием компонент синуса-косинуса... Линейным выглаживанием, простейшим. И ведь заработало! На самом деле, надо было гладить не линейно, а в соответствии с автокорреляционной функцией. По ней разумные люди фильтр Винера делают, а мне вот захотелось свою дурь до ума довести. Ежели что получится, то выложу! По поводу счета через экспоненты и тригонометрию. Фурье все раскладывал на синусы-косинусы, и нам это завещал! (ну, типа, колхоз "Заветы Фурье"...) Это уже потом праволевые экспоненциальные уклонисты в рядах математиков нагло извратили заветы основоположника, пристрастившись теорию в экспонентах давать. Но, когда дело доходит до расчета - тут они, уклонисты эти, раньше нагло пасовали, и весь расчет расписывали через тригонометрию. Ибо оно быстрее. Numerical Recipies тому нагляднейший пример. В теории говорим про одно, на практике поступаем совсем иначе. Вот оно, расхождение теории и практики! Правда, при теперешних компьютерах, будет ли тебе программа считать твою задачу 0.5 секунды или 1 секунду, тебе реально и без разницы. terminat0r Цитата: Да, там используется ISO C Binding, фишка, которую поддерживает Фортран-2003. Собственно, в неком более-менее полном виде реализовано, к примеру, в g95 и gfortran. Правда, у коммерческих компиляторов обычно в заначке есть нестандартные способы урегулировать подобные вопросы. Тем не менее, с межъязыковой передачей строк у фортрана традиционно очень плохо, поскольку там втихую передается еще второй параметр: кроме указателя на строку, еще и ее фактическая длина. Где-то читал, что если специально отлавливать этот параметр, как еще один аргумент функции, то все получается и без ISO C Binding. Но на практике не пробовал. Ни с тем, ни с другим. | Всего записей: 2485 | Зарегистр. 21-06-2005 | Отправлено: 09:02 21-04-2011 | Исправлено: XPEHOMETP, 09:02 21-04-2011 |
|