Это мои исподники!!!!!!!
Для простоты я сделал Фурье преобразование на одну гармоника откройте исподники да посмотрите. Неужели тут нет ни одного практика одни теоретики, у которых в голове нет ничего и приходится объяснять на пальцах.
Да ладно вот мой код на одну гармонику исследуемого сигнала и одну гармонику самого Фурье анализа
Сами гармоники создаются так:
Код
Theta := Pi / 256;
for I := 0 to 511 do
begin
A := Theta * I;
SinCos(A, SignalSin[I], SignalCos[I])
SinCos(A, FSin[I], FCos[I])
end;
Т.е. в массиве SignalSin и FSin имеется одна полная синусоида состоящая из 512 значений.
В масиве SignalCos и FCos имеется одна полная косинусоида состоящая из 512 значений.
Комплексный Фурье на одну гармонику (положительную частоту) это:
Re = Сумма(SignalCos[I] * FCos[I] + SignalSin[I] * FSin[I])
Im = Сумма(SignalSin[I] * FCos[I] - SignalCos[I] * FSin[I])
MAG+ = Корень квадратный из(Re * Re + Im * Im);
Комплексный Фурье на одну гармонику (отрицательную частоту) это:
Re = Сумма(SignalCos[I] * FCos[I] + SignalSin[I] * FSin[I])
Im = Сумма(SignalSin[I] * FCos[I] - SignalCos[I] * FSin[I])
MAG- = Корень квадратный из(Re * Re + Im * Im);
Так вот MAG+ = 2 а MAG- = 0 подавление отрицательной частоты.
Всё это справедливо для этого кода:
Код
// Положительные частоты
Re := Re + SignalCos[I] * FCos[I] + SignalSin[I] * FSin[I]
Im := Im + SignalSin[I] * FCos[I] - SignalCos[I] * FSin[I]
// Отрицательные частоты
Re0 := Re0 + SignalCos[I] * FCos[I] - SignalSin[I] * FSin[I]
Im0 := Im0 + SignalSin[I] * FCos[I] + SignalCos[I] * FSin[I]
Для остального кода всё тоже самое только вещественная и мнимая часть сигнала являются либо Sin(t) либо Cos(t)
Код
for I := 0 to 511 do
begin
// Положительные частоты
Re1 := Re1 + SignalSin[I] * FCos[I] + SignalSin[I] * FSin[I]
Im1 := Im1 + SignalSin[I] * FCos[I] - SignalSin[I] * FSin[I]
// Отрицательные частоты
Re2 := Re2 + SignalSin[I] * FCos[I] - SignalSin[I] * FSin[I]
Im2 := Im2 + SignalSin[I] * FCos[I] + SignalSin[I] * FSin[I]
// Положительные частоты
Re3 := Re3 + SignalCos[I] * FCos[I] + SignalCos[I] * FSin[I]
Im3 := Im3 + SignalCos[I] * FCos[I] - SignalCos[I] * FSin[I]
// Отрицательные частоты
Re4 := Re4 + SignalCos[I] * FCos[I] - SignalCos[I] * FSin[I]
Im4 := Im4 + SignalCos[I] * FCos[I] + SignalCos[I] * FSin[I]
end;
Их MAG всегда = друг другу!!!!