Помощь преобразования Фурье - PullRequest
0 голосов
/ 23 февраля 2011

Полагаю, мне нужно поработать с преобразованиями Фурье, и я все еще в замешательстве.

Мне дают сигнал (в данном случае это f [t] = sin (2 pi s t / N), где s = 8 и N = 128)

И я предполагаю найти Реальное, Мнимое, Фазу и Величину.

Я понимаю, как получить Реальное и Мнимое, но Фаза и Величина вне меня ...

код sudo для получения Реального и Воображаемого:

for u = 0 to M-1 do
F[u].real = 0
F[u].imag = 0
for x = 0 to M-1 do
    F[u].real += f[x] * cos(- 2 * pi * u * x / M)
    F[u].imag += f[x] * sin(- 2 * pi * u * x / M)
end do
F[u].real /= M
F[u].imag /= M
end do

Теперь где-то там есть фаза и величина, но где?!

Спасибо!

Также было бы замечательно, если бы кто-то из программистов объяснил основы FT!

Ответы [ 2 ]

3 голосов
/ 23 февраля 2011

Если вы рассматриваете действительные и мнимые компоненты как координаты в плоскости XY, то фаза - это угол между вектором и осью X +, а величина - это длина вектора. Для вычисления вам просто нужно

magnitude = sqrt(real*real + imag*imag)
phase = atan2(imag, real)
3 голосов
/ 23 февраля 2011

С http://en.wikipedia.org/wiki/Complex_number#Absolute_value_and_argument:

  • Величина sqrt(real^2 + imag^2) (где ^ означает «квадрат»).
  • Фаза atan2(imag, real) (где atan2() обозначает функцию arctan с двумя аргументами).

Эта статья в Википедии объясняет , почему лучше, чем я могу здесь судить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...