Cześć,
mam pytanie chyba bardziej matematyczne niż programistyczne. No ale to sprawy pokrewne, może ktoś będzie tak dobry i mi pomoże :)
Potrzebuję obliczyć faktyczne przesunięcie fazy dla danej częstotliwości, korzystając z Transformaty Fouriera.
Standardowo korzystam z funksji:
atan2(real, imag) * 180 / M_PI
Ale to oczywiście (niestety) daje mi wyniki zawsze pomędzy -180° a +180°.
I jeżeli dana częstotliwość jest przesunięta np. o +200°, to otrzymam wartość -160°. Co jest oczywiście nie prawdą, bo czętotliwość nie jest przesunięta w tył.
Oczywiście wiem, że są algorytmy pozwalające na tak zwany "phase unwrapping", ale one optrzebują przynajmniej dwóch sampli aby porównać ze sobą. Pozwalają one na obliczenie prawdziwego przesunięcia fazy, ale dopiero od drugiego sampla w zwyż.
Korzystam z tego algorytmu, ale potrzebuję także obliczyć przesunięcie fazy dla pierwszego sampla.
Czy ktoś mógłby pomóc?
Nie ukrywam, że zależy mi na jakimś konkretnym rozwiązaniu, bo przekopałem się już przez różne artykuły po angielsku i po polsku o FFT, o przesunięciach fazowych, itp. Ale tej konkretnej informacji, której potrzebuję, nie mogę wychwycić z tej całej masy wiedzy jaką można znaleźć w sieci.
Za pomoc z góry serdecznie dziękuję :)