Tak, możliwe jest reprezentowanie wyników w domenie częstotliwości FFT z czysto rzeczywistych danych wejściowych przy użyciu tylko liczb rzeczywistych.
Te liczby zespolone w wyniku FFT to po prostu dwie liczby rzeczywiste, które są wymagane do uzyskania dwuwymiarowych współrzędnych wektora wyników, który ma zarówno długość, jak i kąt kierunku (lub magnitudo i fazę). Każda składowa częstotliwości w wyniku FFT może mieć unikalną amplitudę i unikalną fazę (względem pewnego punktu w otworze FFT).
Jedna tylko liczba rzeczywista nie może reprezentować zarówno wielkości, jak i fazy. Jeśli wyrzucisz informacje o fazie, które mogłyby łatwo zniekształcić sygnał, jeśli spróbujesz odtworzyć go za pomocą iFFT (a sygnał nie jest symetryczny). Tak więc pełny wynik FFT wymaga 2 rzeczywistych liczb na kosz FFT. Te 2 liczby rzeczywiste są grupowane w niektórych FFT w złożonym typie danych według wspólnej konwencji, ale wynik FFT może łatwo (i niektóre FFT) zrobić tylko dwa rzeczywiste wektory (jeden dla współrzędnych cosinus i jeden dla współrzędnych sinusoidalnych).
Istnieją również procedury FFT, które bezpośrednio wytwarzają magnitudę i fazę, ale działają wolniej niż FFT, które dają złożony (lub dwa rzeczywiste) wyniki wektorowe. Istnieją również procedury FFT, które obliczają tylko wielkość i po prostu wyrzucają informacje o fazie, ale zwykle działają one nie szybciej niż pozwala to zrobić samemu po bardziej ogólnych FFT. Może ratują kodera kilkoma liniami kodu kosztem braku odwracalności. Ale wiele bibliotek nie zajmuje się tymi wolniejszymi i mniej powszechnymi formami FFT, i pozwala koderowi konwertować lub ignorować to, czego potrzebuje lub czego nie potrzebuje.
Co więcej, wiele osób uważa, że matematyka jest bardziej elegancka przy użyciu złożonej arytmetyki.
(Dodano :) I, jako jeszcze jedną opcję, można rozważyć dwa składniki każdego z wyników, zamiast rzeczywistych i urojonych komponentów, jako prawdziwe i nieparzyste składniki.
Co powiesz na przeniesienie tego pytania do DSP SX: http://dsp.stackexchange.com/? – petrichor
Należy wybrać jedną odpowiedź jako poprawną. – Jonathan