Dlaczego używamy okna w dziedzinie czasu zamiast FFT modyfikuje widmo, a nie odwrotnie FFT

16

Myślałem, że DSP zostanie wykonane przy użyciu FFT części sygnału, zmodyfikuje próbki, które wynikają z FFT (ponieważ reprezentują one widmo naszego sygnału + szum) i usunie wszelkie niepożądane sygnały, a następnie zrobi odwrotną FFT, aby uzyskać czas reprezentacja domeny filtrowanego sygnału (szum został teraz usunięty). Tak się jednak nie dzieje, zamiast tego wykonujemy całą pracę w dziedzinie czasu za pomocą funkcji okna. Dlaczego?

Jeśli pomnożymy funkcję okna w dziedzinie czasu, niż splatamy odpowiedź częstotliwościową funkcji okna z widmem naszego sygnału w dziedzinie częstotliwości, jak to działa? Mam na myśli to, że jeśli wykonaliśmy całą pracę w dziedzinie częstotliwości, mnożąc nasz sygnał przez odpowiedź częstotliwościową filtra, to byłoby jak filtrowanie, prawda? Ale tutaj robimy wszystko w domenie czasu, zamiast okna.

-> Pozwala zobaczyć, skąd bierze się moje zamieszanie. W przypadku filtrów analogowych, np. Filtra dolnoprzepustowego, mamy impuls podobny do częstotliwościowego. Kiedy filtrujemy sygnał, skutecznie zwielokrotniamy jego spektrum przez impulsową odpowiedź częstotliwościową filtra. Spowoduje to zmniejszenie wszystkich częstotliwości w naszym sygnale powyżej wartości granicznej do zera. Tak działa filtr dolnoprzepustowy. Dlaczego nie zrobić tego samego z filtrami cyfrowymi?

quantum231
źródło

Odpowiedzi:

7

Okienkowanie zmniejsza wyciek widmowy.

Powiedzmy, że zaczynasz od . Okres wynosi oczywiście 2 π / ω 0 . grzech(y)=sałata(ω0t)2)π/ω0

Ale jeśli nikt nie powiedział ci, że okres wynosi i na ślepo wybierasz zakres [ 0 , 1,8 π / ω 0 ] i bierzesz FFT tego skróconego kształtu fali, zobaczysz składowe częstotliwości na innych częstotliwościach, które wszystkie są fałszywe, ponieważ skoki utworzone przez wklejanie kopii przyciętego kształtu fali dla okresowości nie są tak naprawdę obecne w oryginalnym sygnale - jest to artefakt pechowego obcięcia, który nie przechwytuje płynnie przejścia między okresami. Idealnie jest tylko jeden składnik widmowy przy ω = ω 0 . 2)π/ω[0,1.8π/ω0]ω=ω0

Celem okienkowania w dziedzinie czasu jest ograniczenie wszystkich tych fikcyjnych składników widmowych.

Joe
źródło
12

Używa się okienkowania, ponieważ obliczenia DFT działają na nieskończonym okresowym przedłużeniu sygnału wejściowego. Ponieważ wiele faktycznych sygnałów albo wcale nie jest okresowych, albo próbkuje się je w przedziale innym niż ich rzeczywisty okres, może to wytwarzać składowe fałszywej częstotliwości na sztucznej „krawędzi” między powtarzanymi przedziałami, zwanej przeciekiem . Najpierw mnożąc sygnał w dziedzinie czasu przez funkcję okienkowania, która dochodzi do zera na obu końcach, tworzysz płynne przejście między powtarzającymi się interwałami w nieskończonym okresowym przedłużeniu, łagodząc w ten sposób tworzenie tych składników sztucznej częstotliwości, gdy weźmiemy DFT.

Ten artykuł daje bardziej dogłębne spojrzenie na to zjawisko, a także wgląd w skutki różnych funkcji okienkowania.

Sam Maloney
źródło
11

Myślę, że mylisz dwie różne operacje.

Okno w domenie czasu jest wyjaśnione przez @sam, więc nie powtórzę tego. Ale okienkowanie nie jest wykonywane w celu przeprowadzenia filtrowania. Filtrowanie przez pomnożenie FFT sygnału przez odpowiedź częstotliwościową filtra jest całkowicie uzasadnione w wielu sytuacjach i faktycznie jest wykonywane. Alternatywą dla filtrowania jest splot w dziedzinie czasu (który różni się od okienkowania). Ma to swoje zalety, takie jak działanie na sygnale w „czasie rzeczywistym”, ponieważ jest mierzony bez czekania na zapisanie całości i przetworzenie.

Więc na pytanie „dlaczego nie zrobić tego samego z filtrami cyfrowymi?”, Odpowiedź brzmi: „robimy, kiedy to pasuje”.

lxop
źródło
Mam również wrażenie, że splot i okienkowanie pomieszały się w tym pytaniu. Dobrze, że zwróciłeś na to uwagę!
Deve,
11

Było kilka dobrych odpowiedzi na to pytanie. Uważam jednak, że jedna ważna kwestia nie została całkowicie wyjaśniona. Jedna część pytania brzmiała: dlaczego nie pomnożymy po prostu FFT sygnału z pożądaną odpowiedzią filtra. Na przykład, jeśli chcemy filtrować dolnoprzepustowy nasz sygnał, możemy po prostu wyzerować wszystkie składowe częstotliwości wyższe niż pożądana częstotliwość odcięcia. Jest to w rzeczywistości proste zastosowanie znanej metody próbkowania częstotliwości do projektowania filtrów FIR. Problem polega na tym, że możemy po prostu wyzerować składowe częstotliwości dyskretnych obliczone przez FFT. Nie mamy kontroli nad tym, co dzieje się pomiędzy tymi dyskretnymi częstotliwościami. Okazuje się, że taka prosta wersja filtrowania da jedynie słabe tłumienie pasma zatrzymania (niezależnie od długości FFT). Jeśli masz dostęp do Matlaba lub Oktawy, to „

x=2*rand(1024,1)-1;
X=fft(x);
Y=X.*[ones(200,1);zeros(625,1);ones(199,1)]; % lowpass filter
y=real(ifft(Y)); % real() just to remove numerical errors
Y=fft(y,4096);
plot(20*log10(abs(Y(1:2048)))),axis([0,2048,-30,50])
Matt L.
źródło
6

Jeśli nie użyjesz okna innego niż prostokątne, wyniki FFT będą już splecione z transformacją domyślnego okna prostokątnego (okresowego Sinc) przed wykonaniem filtrowania w dziedzinie częstotliwości. np. otrzymasz dwa filtry, z których jeden prawdopodobnie nie chcesz.

Przez okienkowanie w dziedzinie czasu, przed filtrowaniem FFT i filtrowaniem w dziedzinie częstotliwości, zastępujesz wszelkie filtrowanie (tzw. „Wyciek”) wykonywane przez prostokątne okienkowanie, a tym samym nie dostajesz dodatkowego niepożądanego zwijania filtrów.

Innym sposobem na to jest użycie metod zapisywania nakładania lub dodawania nakładania w kolejnych oknach, w których efekty jednego okna prostokątnego są anulowane przez podobne efekty z sąsiednich okien.

hotpaw2
źródło
5

Okno w dziedzinie czasu, ponieważ

  • możemy zagwarantować zero na krawędziach okna
  • funkcje okien mają ładne analityczne wyrażenie w dziedzinie przestrzeni
  • wiele funkcji okna ma dziwnie ukształtowane spektrum, które trudno byłoby przybliżyć
  • potrzebna jest tylko skończona liczba próbek (okienkowanie można wykonać, gdy nadejdą strumienie sygnału)

np. z wikipedii

wprowadź opis zdjęcia tutaj

Mocne odcięcie dochodzące do zera funkcji okienkowania oznacza, że ​​w dziedzinie widmowej mają płaty boczne, które bardzo powoli dochodzą do zera. Jeśli pozbędziemy się tego ograniczenia, możemy mieć funkcje zwarte zarówno w domenach przestrzennych, jak i spektralnych, takie jak filtr Gaussa. Oznacza to, że możesz filtrować według dziedziny spektralnej, ale wymaga to poznania całego sygnału.

Jeśli masz już cały sygnał, inną alternatywą byłoby użycie falek

geometrikal
źródło
2

Miałem to samo pytanie.

Splot jest całkowitą / skumulowaną sumą sygnału w dziedzinie czasu pomnożoną przez okno. Nie należy tego mylić z „okienkowanym” sygnałem w dziedzinie czasu.

Koniec tego artykułu bardzo mi pomógł.

Zasadniczo mówi, że rzeczywiste sygnały są skończone, a nagłe odcięcie rzeczywistego sygnału powoduje wiele niepożądanych częstotliwości / artefaktów w dziedzinie częstotliwości.

Aby uniknąć / zminimalizować te artefakty, możesz użyć gładkiej funkcji okna (np. W kształcie dzwonu), dzięki czemu próbka zaczyna się i kończy od zera, a nie nagle kończy się pewną niezerową wartością skalarną.

Gładkie odcięcie

Próbka w okienku powyżej będzie miała mniej artefaktów w dziedzinie częstotliwości niż próbka surowa poniżej.

Nagle odcięty

Chandran Goodchild
źródło
1

Istnieją dwie szerokie kategorie związane z FFT i są to 1) skuteczny sposób na implementację filtra FIR oraz 2) Analiza spektralna.

W przypadku filtrowania FIR nie trzeba martwić się o okna i ich nie używać, chyba że okno odpowiada filtrowi, ale nie jest to powszechne. Wyciek nie stanowi problemu.

Analiza spektralna polega na wykorzystaniu okien. Tutaj patrzysz na czujnik przymocowany do dużej maszyny przemysłowej i próbujesz dowiedzieć się, czy głęboko w trzewiach nie działa łożysko. Łożyska piszczą, gdy zawodzą, ale hałas, jaki mogą generować, jest zwykle znacznie niższy niż inne dźwięki wydawane przez maszynę. W tym momencie pojawia się wyciek i uśrednianie. Biorąc pod uwagę mocne tony, wyciek zepsuje słaby sygnał, którego szukamy dla kilku koszy. Poprawia to wrażliwość analizy spektralnej na słabe sygnały w obecności silnych sygnałów. Podobny efekt występuje, gdy szum tła jest nachylony. Informacje, których szukamy, znajdują się w dziedzinie częstotliwości. Jest to ten sam problem w RADAR, SONAR i Geofizyka. Widzenie słabego sygnału jest celem.


źródło
1

Wymagane jest okienkowanie w dziedzinie czasu, aby uniknąć pojedynczej częstotliwości, która nie jest dokładnie w przedziale częstotliwości, aby rozłożyć się na całe spektrum. Może ta strona pomaga: http://www.sm5bsz.com/slfft/slfft.htm Linrad (mój 20-letni projekt) używa okienkowego FFT, a następnie stosuje filtr w dziedzinie częstotliwości (ustaw zero na to, czego nie chcemy). Zastosuj okno - nie przechodź nagle od ważenia 1 do wagi 0 na przedziałach częstotliwości. Następnie zastosuj FFT wstecz - ale teraz na znacznie mniejszej liczbie punktów. Nie ma potrzeby dołączania wszystkich przedziałów częstotliwości, o których wiemy, że są zerowe !! Jako resulr otrzymujemy funkcję czasową o znacznie mniejszym rozmiarze - to znaczy ze znacznie niższą częstotliwością próbkowania. Procedura wykonuje filtrowanie i dziesiątkowanie w jednym kroku. Jest to bardzo wydajne w przypadku, gdy chce się odfiltrować kilka kanałów jednocześnie. Strona główna linrad znajduje się tutaj: http://www.sm5bsz.com/linuxdsp/linrad.htm

sm5bsz
źródło