Как рассчитать энергетический спектр сигнала?

Из теории я знаю, что энергетический спектр данного сигнала представляет собой сумму квадратов коэффициента Фурье.

Что, если у меня есть действительная и мнимая части соответствующего коэффициента Фурье, могу ли я сказать, что энергетический спектр данного сигнала равен сумме (действительной части + мнимой части)^2


person Benaissa Tahiti    schedule 27.01.2015    source источник
comment
вам, вероятно, нужно взять сумму квадрата абсолютного значения коэффициента, то есть \sum_i |fourier_coefficient_i|^2. Однако, на самом деле, коэффициенты Фурье сигнала дают вам плотность энергии на этой частоте (то есть спектральную плотность в энергетической области), а суммирование их абсолютного значения дает вам, по теореме Парсеваля, полную энергию.   -  person vsoftco    schedule 28.01.2015
comment
Я голосую за то, чтобы закрыть этот вопрос как не по теме, поскольку он относится к math.stackexchange.com.   -  person    schedule 28.01.2015
comment
Я голосую за то, чтобы закрыть этот вопрос как не по теме, потому что это математика, а не программирование. Кроме того, определения OP сомнительны или просто неверны.   -  person Marcus Müller    schedule 01.09.2015


Ответы (2)


Не совсем. Ты хочешь:

sum of fft_result_magnitudes^2

который:

sum of (sqrt(real_part^2 + imaginary_part^2)^2

который:

sum of (real_part^2 + imaginary_part^2)

чтобы получить сумму квадратов значений комплексных результатов БПФ.

Что касается более полной формулировки теоремы Парсеваля, см.:

http://en.wikipedia.org/wiki/Parseval%27s_theorem

person hotpaw2    schedule 27.01.2015
comment
Спасибо! Правильно ли я понял, что сумма квадратов величин равна сумме квадратов коэффициентов Фурье? - person Benaissa Tahiti; 28.01.2015
comment
См. добавленную ссылку на Википедию выше. Посмотрите, как это обычно формулируется для техники и физики. - person hotpaw2; 28.01.2015

Если result представляет собой вектор-столбец с N элементами, энергетический спектр также является вектором с N элементами.

powerSpec = abs(result).^2;

Полную энергию можно рассчитать по формуле

totalPower = sum(powerSpec);

or

totalPower = result' * result;

Если результатом является вектор-строка, вы должны использовать

totalPower = result * result';
person Heinz M.    schedule 28.01.2015