Вопрос длинный и немного офтопичный. Интерес представляет только для тех, кто занимался обработкой сигналов.
Есть аналоговый сигнал (смесь гармоник). С помощью АЦП он оцифровывается и забивается в буффер конечной длины (пусть будет 128). Посколько с практически 100% вероятностью сигнал на концах промежутка оцифровки терпит разрыв (иными словами сигнал(начало) != сигнал(конец) ) применям стандартную методику - перемножаем сигнал со "шляпой" (окном sin(\pi*(0:127)/127)^2). После этого взятие фурье преобразования и абсолютной величины позволяет получить с хорошей точностью амплитуды гармоник. Но поскольку перемножение со "шляпой" во временной области приводит к свертке точной АЧХ c фильтром (1/2,-1/2) в частотной, то как определить фазу гармоник? Интересно, что фаза ( точнее arctg( Im(F)/Re(F) ) ) примерно постоянна с точностью +/-\pi в области рядом с частотой гармоники, но само это значение никак с настоящей фазой не скоррелировано. Есть ли какое-нибудь окно/фильтр, которое позволяет получить фазу без искажений?