Перейти к содержанию
    

for( int i=0; i < N; i++) data = 1000 * sin(2*M_PI/N*i); выдает 1414.21

Изменено пользователем ivan219

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дискретный аналог теоремы парсеваля. Сумма квадратов входов дпф и сумма квадратов выходов дпф относятся как 1/N. N - размер дпф. Двойка появляется, если нужна половина дпф (если входной сигнал вещественный половина мощности распределяется по отрицательным частотам и амплитудный спектр является четным).

О чем и речь. Кратко и внятно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

for( int i=0; i < N; i++) data = 1000 * sin(2*M_PI/N*i); выдает 1414.21

 

Это означает, что нужно еще поделить на корень из 2. Корень их двух как раз равен 1.41421356237309505, что, с учетом погрешности вычислений, дает все цифры вашего числа. А когда поделите, то получите точно 1000, как и должно быть.

Для полной уверенности поверьте на другом N.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...