Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Получить АЧХ и ФЧХ при помощи БПФ


Автор: neosapient 2.1.2014, 00:32
Здравствуйте.

Вспоминаю университетские годы. Вспоминаю как вычислить АЧХ и ФЧХ.

Есть набор отсчетов, выбираю в нем последовательность длинной 2^N.
Например, 
y = cos(xi + pi/4),
  где xi в интервале [0, 2pi), количество xi равно 2^N.

хочется получить что то вроде
АЧХ = [1, 0, 0, ...]
ФЧХ = [1/8, 0, 0, ...]

Как это программно рассчитать? 
Можно ли воспользоваться БПФ? Как с помощью БПФ получить АЧХ и ФЧХ?
(Будет большим бонусом, если покажете исходник на С/С++)

Автор: Pavia 2.1.2014, 14:23
Есть у тебя отсчёты. Применяешь к ним БПФ на выходи имеешь коэфциенты.
От коэфициентов считаешь модуль для каждого это и будет амплитуда.  Вернее все вместе дадут АЧХ.
amp[i]=hypot(c[i].Re,c[i].Im); или 
amp[i]=abs(c[i]);

Фазу считаешь как аргумент комплексного вектора. Т.е берёшь арктангенс 
Faza[i]=arctan2(c[i].Im, c[i].Re) ; или
Faza[i]=arg(c[i]) ;

Автор: neosapient 2.1.2014, 22:01
Спасибо, буду разбираться.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)