Sądziłem, że DSP zostanie wykonane przy użyciu FFT części sygnał, zmodyfikuj próbki, które wynikają z FFT (ponieważ reprezentują one widmo naszego sygnału + szum) i usuń wszelkie niepożądane sygnały, a następnie wykonaj odwrotną FFT, aby uzyskać reprezentację przefiltrowanego sygnału w dziedzinie czasu (szum został usunięty) . Nie jest to jednak wykonywane, zamiast tego wykonujemy całą pracę w dziedzinie czasu za pomocą funkcji okien. 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? Chodzi mi o to, że zrobiliśmy wszystko praca w dziedzinie częstotliwości poprzez pomnożenie naszego sygnału przez odpowiedź częstotliwościową filtra, to byłoby jak filtrowanie, prawda? Ale tutaj robimy wszystko w dziedzinie czasu zamiast za pomocą okna.
-> Zobaczmy, gdzie moje zamieszanie pochodzi z. W przypadku filtrów analogowych, np. filtra dolnoprzepustowego, mamy odpowiedź częstotliwościową podobną do impulsu. Kiedy filtrujemy sygnał, skutecznie mnożymy widmo naszego sygnału przez impulsową odpowiedź częstotliwościową filtra. Spowoduje to redukcję wszystkich częstotliwości w naszym sygnale powyżej punktu odcięcia do 0. Tak w istocie działa filtr dolnoprzepustowy. Dlaczego nie zrobić tego samego z filtrami cyfrowymi?
Komentarze
- Możliwy duplikat Dlaczego to zły pomysł, aby filtrować przez zerowanie pojemników FFT?
Odpowiedź
Okienkowanie zmniejsza widmo wyciek.
Powiedzmy, że zaczynasz od $ \ sin (y) = \ cos (\ omega_0 t) $. Okres to oczywiście 2 $ \ pi / \ omega_0 $.
Ale jeśli nikt ci nie powiedział, że okres wynosi 2 $ \ pi / \ omega $ i ślepo wybierzesz zakres $ [0, 1.8 \ pi / \ omega_0] $ i weźmiesz FFT tego obciętego przebiegu, będzie obserwować składowe częstotliwości w innych częstotliwościach, które są fałszywe, ponieważ skoki tworzone przez kopiowanie i wklejanie obciętego przebiegu okresowego nie są tak naprawdę obecne w oryginalnym sygnale – jest to artefakt pechowego obcięcia, które nie przechwytuje płynnie przejścia między okresami . Idealnie jest tylko jedna składowa widmowa w $ \ omega = \ omega_0 $.
Celem okienkowania w dziedzinie czasu jest redukcja wszystkich tych fikcyjnych składowych widmowych.
Odpowiedź
Okienkowanie jest używane, ponieważ obliczenia DFT działają na nieskończonym okresowym rozszerzaniu sygnału wejściowego. Ponieważ wiele rzeczywistych sygnałów nie jest w ogóle okresowych lub jest próbkowanych w interwale innym niż ich rzeczywisty okres, może to generować fałszywe składowe częstotliwości na sztucznym „zboczu” między powtarzającymi się interwałami, zwanymi wyciek . Najpierw mnożąc sygnał w dziedzinie czasu przez funkcję okienkowania, która dąży do zera na obu końcach, tworzysz płynne przejście między powtarzającymi się interwałami w nieskończonym okresowym wydłużeniu, łagodząc w ten sposób tworzenie tych sztucznych składowych częstotliwości, gdy następnie bierzemy DFT.
Ten artykuł daje bardziej dogłębne spojrzenie na to zjawisko, a także daje wgląd w skutki różnych funkcji okienkowania.
Odpowiedź
Myślę, że mylisz dwie różne operacje.
Okienkowanie w dziedzinie czasu jest wyjaśnione przez @ sam, więc nie będę tego powtarzał. Ale okienkowanie nie jest wykonywane w celu wykonania filtrowania. Filtrowanie przez pomnożenie FFT sygnału przez odpowiedź częstotliwościową filtru jest całkowicie rozsądne w wielu sytuacjach i rzeczywiście jest zrobione. Alternatywą dla filtrowania jest czas -splot domeny (który różni się od okienkowania). Ma to swoje zalety, takie jak działanie na sygnale w „czasie rzeczywistym e „jak jest mierzone bez czekania, aż całość zostanie zapisana, a następnie przekształcona.
A więc na pytanie„ Dlaczego nie zrobić tego samego również z filtrami cyfrowymi? ”, odpowiedź brzmi po prostu„ robimy , kiedy pasuje. ”
Komentarze
- Mam też wrażenie, że splot i okienkowanie pomieszały się w pytaniu. Dobrze, że zwróciłeś na to uwagę!
Odpowiedź
Było kilka dobrych odpowiedzi na to pytanie. Uważam jednak, że jedna ważna kwestia nie została do końca wyjaśniona. Jedna część pytania dotyczyła tego, dlaczego nie mnożymy po prostu FFT sygnału przez żądaną odpowiedź 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ż żądana częstotliwość odcięcia Jest to w rzeczywistości proste zastosowanie dobrze znanej metody próbkowania częstotliwości do projektowania filtrów FIR. Problem polega na tym, że możemy wyzerować dyskretne składowe częstotliwości obliczane 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 tylko słabe tłumienie pasma zaporowego (niezależnie od długości FFT). Jeśli masz dostęp do matlab lub oktawy, bardzo pouczające jest samodzielne wypróbowanie:
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])
Odpowiedź
Jeśli nie użyjesz okna innego niż prostokątne, wyniki FFT zostaną już splecione z transformacją domyślnego prostokątnego okna (okresowe Sinc) przed wykonaniem jakiegokolwiek filtrowania w dziedzinie częstotliwości. na przykład otrzymasz dwa zastosowane filtry, z których jeden prawdopodobnie nie chcesz.
Poprzez okienkowanie w dziedzinie czasu, przed filtrowaniem FFT i w dziedzinie częstotliwości, zastępujesz filtrowanie (tak zwane „wycieki” ) wykonane przez prostokątne okienkowanie, a zatem nie można uzyskać dodatkowego niepożądanego splotu filtra.
Innym sposobem na to jest użycie metod zachodzenia na siebie lub zachodzenia na kolejne okna, w których efekt okno prostokątne zostaje anulowane przez podobny efekt z sąsiednich okien.
Odpowiedź
Okno w dziedzinie czasu, ponieważ
- możemy zagwarantować zero na krawędziach okna
- funkcje okna mają ładne wyrażenie analityczne w dziedzinie przestrzennej
- wiele funkcji okien ma dziwnie ukształtowane widmo, które byłoby trudne do przybliżenia
- potrzebna jest tylko skończona liczba próbek (okienkowanie można wykonać w miarę strumieni sygnału)
np. z wikipedii
Trudne odcięcie od zera funkcji okienkowania oznacza, że w domenie widmowej mają one boczne listki, które bardzo powoli dążą do zera. Jeśli pozbędziemy się tego ograniczenia, możemy mieć funkcje, które są zwarte zarówno w dziedzinie przestrzennej, jak i widmowej, takie jak filtr Gaussa. Oznacza to, że możesz filtrować przez domenę widmową, ale wymaga to poznania całego sygnału.
Jeśli masz już cały sygnał, inną alternatywą byłoby użycie wavelets
Odpowiedź
Miałem to samo pytanie.
Splot to całka / skumulowana suma sygnału w dziedzinie czasu pomnożona przez okno. Nie należy tego mylić z „okienkowym” sygnałem w dziedzinie czasu.
Zakończenie tego artykułu bardzo mi pomogło.
Zasadniczo mówi się, że rzeczywiste sygnały są skończone i nagłe odcięcie rzeczywistego sygnału skutkuje powstaniem wielu niepożądanych częstotliwości / artefaktów w dziedzinie częstotliwości.
Aby uniknąć / zminimalizować te artefakty możesz użyć gładkiej (np. w kształcie dzwonu) funkcji okna, tak że próbka zaczyna się i kończy zerem, zamiast nagle kończyć się jakąś niezerową wartością skalarną.
Powyższa próbka w oknie będzie miała mniej artefaktów w dziedzinie częstotliwości niż próbka surowa poniżej.
Odpowiedź
Istnieją dwie szerokie kategorie związane z FFT i są to 1) skuteczny sposób implementacji filtru FIR oraz 2) Analiza widmowa.
FIR Filtering, nie martwimy się o okna i nie używamy ich, chyba że okienko odpowiada filtrowi, ale to nie jest zwykła cienka g do zrobienia. Wyciek nie jest problemem.
Analiza widmowa to miejsce, w którym używa się okien. W tym miejscu patrzysz na czujnik przymocowany do dużej maszyny przemysłowej i próbujesz dowiedzieć się, czy głęboko w jego wnętrzu łożysko zawodzi. Łożyska piszczą, gdy się psują, ale ich hałas jest zwykle znacznie niższy niż inne dźwięki wydawane przez maszynę. Tutaj pojawia się wyciek i uśrednianie. Biorąc pod uwagę silne tony, wyciek zagłuszy słaby sygnał, nad którym szukamy kilku pojemników. Poprawia czułość analizy widmowej 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, należą do dziedziny częstotliwości. To ten sam problem w RADARU, SONARZE i Geofizyce. Widzenie słabego sygnału jest celem.
Odpowiedź
Okienkowanie w dziedzinie czasu jest wymagane, aby uniknąć rozproszenia pojedynczej częstotliwości, która nie jest dokładnie w przedziale częstotliwości w całym spektrum. Może ta strona pomoże: 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 (zrób zero tego, czego nie chcemy). Zastosuj okienko – nie przechodź gwałtownie od wagi 1 do wagi 0 na przedziałach częstotliwości. Następnie zastosuj wsteczną FFT – ale teraz na znacznie mniejszą liczbę punktów. Nie ma potrzeby uwzględniania wszystkich przedziałów częstotliwości, o których wiemy, że są zerowe !! Jako resulr otrzymujemy funkcję czasu o znacznie mniejszym rozmiarze – to znaczy o znacznie niższej częstotliwości próbkowania. Procedura przeprowadza 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 jest tutaj: http://www.sm5bsz.com/linuxdsp/linrad.htm