Надо или на два умножать, ну или делить не на N, а на N/2.
mea culpa, делить надо на
нижний ряд - время проходит от 0 до 1,1
Дело в том, что ДПФ предназначено для
периодических сигналов. Если вы делаете ДПФ такого сигнала что его конец не равен началу, то ДПФ будет как бы "сращивать" конец и начало, и конечно, если вы дали кусок сигнала у которого интеграл по интервалу не равен нулю, это именно то и означает, что в сигнале имеется постоянная составляющая.
Если вы хотите делать Фурье для
НЕпериодических сигналов, то нужное вам преобразование называется не "Дискретное преобразование Фурье", а "Дискретное по времени преобразование Фурье". Разница в том, что суммирование ведется, по времени, из минус бесконечности в бесконечность, так что такая сумма должна существовать (можно просто сказать, что за некоторыми пределами сигнал просто равен нулю). Чувствуете? В одном случае вы при обратном преобразовании "на выходе" получаете
периодический сигнал (бесконечно продолжающийся и продолжающийся во времени назад и вперед), а в другом -- получаете нули за пределами того времени, по которому брали отсчеты.
Так что вам надо определиться: чего именно вы хотите?
Вот картинка из книжки
Steven W. Smith, The Scientist and Engineer's Guide to Digital Signal ProcessingПреобразованиям Фурье там посвящены главы 8 и 31, книжка бесплатная, на сайте
http://www.dspguide.com/ рекомендую, если с английским нет проблем.