ivan219 0 13 ноября, 2009 Опубликовано 13 ноября, 2009 (изменено) · Жалоба for( int i=0; i < N; i++) data = 1000 * sin(2*M_PI/N*i); выдает 1414.21 Изменено 13 ноября, 2009 пользователем ivan219 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
marti 0 14 ноября, 2009 Опубликовано 14 ноября, 2009 · Жалоба Дискретный аналог теоремы парсеваля. Сумма квадратов входов дпф и сумма квадратов выходов дпф относятся как 1/N. N - размер дпф. Двойка появляется, если нужна половина дпф (если входной сигнал вещественный половина мощности распределяется по отрицательным частотам и амплитудный спектр является четным). О чем и речь. Кратко и внятно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 45 14 ноября, 2009 Опубликовано 14 ноября, 2009 · Жалоба for( int i=0; i < N; i++) data = 1000 * sin(2*M_PI/N*i); выдает 1414.21 Это означает, что нужно еще поделить на корень из 2. Корень их двух как раз равен 1.41421356237309505, что, с учетом погрешности вычислений, дает все цифры вашего числа. А когда поделите, то получите точно 1000, как и должно быть. Для полной уверенности поверьте на другом N. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться