Średnia w dziedzinie czasu FFT vs. średnia bin bin częstotliwości

12

Mam wiele prób danych fizjologicznych. Robię analizę opartą na częstotliwości, aby przeanalizować moc (amplitudę) dla określonych częstotliwości. Czy uśrednianie wielu prób o jednakowej długości, a następnie przyjmowanie pojedynczej FFT uśrednionego sygnału w porównaniu do obliczania FFT dla każdej próby, a następnie uśrednianie przedziałów częstotliwości jest takie samo? W praktyce uważam, że tak nie jest.

W szczególności sygnał ma naturalnie silną składową 1 / f, co zostaje podkreślone, jeśli obliczę FFT każdej próby, a następnie uśrednię amplitudy (część rzeczywistą) każdego przedziału częstotliwości. Czy te dwa są równoważne? czy jest właściwy sposób na robienie rzeczy? lub w jakich zasadniczych warunkach należy dokonać wyboru między uśrednianiem w dziedzinie czasu a uśrednianiem binem częstotliwości?


źródło

Odpowiedzi:

8

Pozwól mi wyjaśnić.

  • Transformacja Fouriera nie reprezentuje histogramu sygnału. Transformacja Fouriera jest transformacją liniową, która przenosi sygnał z dziedziny czasu (funkcja złożona) do dziedziny częstotliwości (inna funkcja złożona). Przenosi funkcję złożoną na inną funkcję złożoną.
  • Transformacja Fouriera jest liniowa, jak wskazano powyżej.
  • Faza w próbkach ma znaczenie, jak wskazano powyżej. Jeśli dane między próbami różnią się w zależności od fazy, nie chcesz uśredniać przed wykonaniem transformacji Fouriera, ale nie chcesz też uśredniać po transformacji Fouriera. Chcesz uśrednić po transformacji Fouriera i normie. Poniżej opiszę dokładnie, co należy zrobić.

Głównym problemem jest to, że pytanie zostało postawione źle. Nie jest to „czy powinienem wziąć transformatę Fouriera przed uśrednieniem lub po uśrednieniu”. Ponieważ nie robi to różnicy ze względu na liniowość transformacji Fouriera.

Prawidłowe pytanie, jakie należy zadać, to „czy powinienem wziąć amplitudę transformaty Fouriera przed uśrednieniem lub po uśrednieniu”. Na to pytanie odpowiedź jest wcześniejsza.

Oto szczegóły.

Załóżmy, że próbkowane dane są reprezentowane przez sekwencje:

d1=d1[n1],d1[n2],...d1[nN]

d2=d2[n1],d2[n2],...d2[nN]

d3=d3[n1],d3[n2],...d3[nN]

...

dM=dM[n1],dM[n2],...dM[nN]

gdzie są danymi z prób M, a są próbkowanymi punktami czasowymi, a następnie:d1,...dMn1,...nN

F1=j=1M|F{dj}||F{j=1Mdj}|=F2

Więc podczas gdy transformacja jest liniowa,nie jest.F|F|

Ponadto, podczas gdy jest prawdziwe dla wszystkich , nie jest, alejest.dj[ni]i,jF{dj}|F{dj}|

Co do tego, co powinieneś zrobić, powinieneś wziąć transformację Fouriera poszczególnych prób (za pomocą FFT), uzyskać amplitudę poszczególnych prób i uśrednić je razem.

Wreszcie, co jest . to krótki okres dla spektrum częstotliwości „naturalnych” sygnałów (zwykle ludzie myślą o obrazach).1/f1/f

Kiedy ludzie mówią, że istnieje duży składnik , oznacza to, że amplituda jako funkcja częstotliwości wygląda jak . Jest całkowicie ręcznie falowany ... prawdopodobnie pochodzi od biologa: str1/f1/f

Odwrotna transformata Fouriera jest jakąś funkcją znaku, ale jest to bezużyteczne. To jest wyimaginowana funkcja znaku! Rzeczywiste funkcje generują symetryczną transformatę Fouriera.1/f

W rzeczywistości stwierdzenie, że widmo wynosi , mówi ci coś o sygnale, ale nie pozwala ci odzyskać sygnału. Wiesz tylko, że. Nie pozwala to jednoznacznie określić ponieważ wszystkie informacje o fazie zniknęły, a wiemy, że struktura sygnału w dużej mierze zależy od jego fazy .1/f|F{x(t)}|=|1/f|x(t)

Co mówi ? Po prostu zawiera dużo niskiej częstotliwości i trochę wysokiej częstotliwości.1/f

Tak samo ważne pytanie, co kupuje cię uśrednianie? a ważniejsze jest, jak interpretować wynik? Dostrój jutro, aby uzyskać bardziej szczegółową dyskusję: str

thang
źródło
1
+1 dzięki za wyjaśnienie. Czuję, że źle zrozumiałem zasadniczą kwestię tego pytania i myślę, że trafia to bardziej do sedna.
jstarr
2

Po pierwsze, FFT jest algorytmem. Transformacja nazywa się transformatą Fouriera! Reprezentuje histogram sygnałów. W dyskretnym przypadku wysoki odczyt w dziedzinie częstotliwości oznacza dużo energii przy tej częstotliwości.

Nie należy uśredniać danych przed FFT, ponieważ informacje o fazie spowodują znaczące zmiany danych.

Wyobraź sobie 2 próbki, z których każda składa się z czystego cosinusa. W prawdziwym świecie nigdy nie złapiesz tego cosinusa dokładnie w tym samym punkcie początkowym. Jeden cosinus zostanie przesunięty do drugiego (lub oba mają różne przesunięcia do początku. Matematycznie oznacza to y1 = cos (wt-A) y2 = cos (wt-B), gdzie A i B są przesunięciami. W twoim modelu te dwa lepiej pokazują się jako to samo. Przy odrobinie matematyki mogę wybrać te wartości, aby y2-y1 = 0. Średnia zero wynosi zero i nie jest dokładnie tym, czego chcesz. To jest problem z fazą.

Jeśli Twoim celem jest znalezienie średniego widma, które powinieneś uśrednić dla wszystkich widm, nie uśredniaj sygnałów!

Michaił
źródło
Dziękuję za to. Z pewnością obawiano się, że jeśli wystąpi szum z właściwą różnicą faz między próbami, to wszystkie sygnały lub częstotliwości zostaną usunięte. Nadal nie jestem jasne, dlaczego wartość 1 / f jest zaakcentowana uśrednianiem bin częstotliwości zamiast uśredniania w dziedzinie czasu, a następnie FFT.
@ user1487551 Co oznacza silny składnik 1 / f? Odwrotna transformata Fouriera 1 / f jest funkcją znaku i może sugerować, że twoje dane zawierają dużą porcję, gdy system się stabilizuje. Prawdopodobnie powinieneś pokazać wykres lub jakieś dane.
Michaił
1
Pamiętaj, że możesz wykonać uśrednianie czasu, jeśli masz odniesienie fazowe, z którym możesz zsynchronizować przechwytywanie danych, i może to być bardzo skuteczne w zmniejszaniu poziomu szumu, ale w przeciwnym razie prawdą jest, że musisz wykonać uśrednianie zestawu w dziedzinie częstotliwości.
Paul R
2

O ile nie jestem całkowicie nieuczciwy lub nie zrozumiem twojego pytania, odpowiedź brzmi : tak . Liniowość DFT uśrednianie sygnałów w czasie, a następnie przyjmowanie DFT średniej jest równoważne uśrednianiu DFT sygnałów.

Aby to pokazać, zdefiniujmy niektóre zmienne:

  • xn[]thn
  • Xk[]thk

1L=0Lxn[]

n=0N11LLxn[]ei2πkn/N

Zmieniając kolejność podsumowań, możemy pisać

1L=0Ln=0N1xn[]ei2πkn/N,

ale to jest to samo co

1L=0LXk[l]

co jest tym samym, co uśrednianie DFT każdego trywialnego. Właśnie to chcieliśmy pokazać.

jstarr
źródło
Aby uśrednić w dziedzinie czasu, potrzebujesz jakiegoś odniesienia fazowego, z którym możesz synchronizować. Gdy jest to dostępne, czasem można uzyskać lepsze wyniki niż przy uśrednianiu zespołu w dziedzinie częstotliwości, głównie ze względu na zmniejszenie efektów kwantyzacji itp.
Paul R