Myslel jsem, že DSP bude provedeno pomocí FFT částí signál, upravte vzorky, které jsou výsledkem FFT (protože představují spektrum našeho signálu + šum) a odstraňte všechny nežádoucí signály a než proveďte inverzní FFT, abyste získali reprezentaci filtrovaného signálu v časové doméně (hluk byl nyní odstraněn) . To se však nedělá, místo toho děláme veškerou práci v časové doméně pomocí funkcí okna. Proč?

Pokud vynásobíme funkci okna v časové oblasti, než budeme konvertovat kmitočtovou odezvu funkce okna se spektrem našeho signálu ve frekvenční doméně, jak to dopadne? Myslím tím, když jsme udělali vše práce ve frekvenční doméně vynásobením našeho signálu frekvenční odezvou filtru, to by bylo jako filtrování, ne? Ale tady děláme všechny věci v časové doméně místo pomocí okna.

-> Uvidíme, kde můj zmatek pochází z. Pro analogové filtry, např. dolní propust, máme tento pulzní frekvenční odezvu. Když filtrujeme signál, efektivně vynásobíme spektrum našeho signálu pulzní frekvenční odezvou filtru. Tím se sníží všechny frekvence v našem signálu nad mezní hodnotou na 0. Takto v podstatě funguje dolní propust. Proč neudělat totéž také s digitálními filtry?

Komentáře

Odpověď

Okna snižují spektrální únik.

Řekněme, že začínáte s $ \ sin (y) = \ cos (\ omega_0 t) $. Období je samozřejmě $ 2 \ pi / \ omega_0 $.

Pokud vám ale nikdo neřekl, že období je $ 2 \ pi / \ omega $ a vy slepě zvolíte rozsah $ [0, 1,8 \ pi / \ omega_0] $ a vezmete FFT této zkrácené křivky, vy bude pozorovat frekvenční složky na jiných frekvencích, které jsou falešné, protože skoky vytvořené kopírováním vložením zkrácené křivky pro periodicitu nejsou ve skutečném signálu skutečně přítomny – je to artefakt smůly, která nezachytává přechod mezi obdobími hladce . V ideálním případě je na $ \ omega = \ omega_0 $ pouze jedna spektrální složka.

Účelem vytváření oken v časové doméně je omezit všechny tyto fiktivní spektrální složky.

Odpovědět

Okno se používá proto, že výpočty DFT pracují na nekonečném periodickém prodloužení vstupního signálu. Jelikož mnoho skutečných signálů vůbec není periodických, nebo jsou vzorkovány v intervalu odlišném od jejich skutečné periody, může to způsobit falešné frekvenční složky na umělém „okraji“ mezi opakovanými intervaly, které se nazývají únik . Nejprve vynásobením signálu v časové doméně funkcí okna, která na obou koncích přejde na nulu, vytvoříte plynulý přechod mezi opakovanými intervaly v nekonečném periodickém prodloužení, čímž zmírníte vytváření těchto umělých frekvenčních složek, když poté použijeme DFT.

Tento příspěvek poskytuje podrobnější pohled na tento jev a také určitý pohled na účinky různých funkcí oken.

Odpověď

Myslím, že zaměňujete dvě různé operace.

Okno v časové oblasti vysvětluje @ sam, takže to nebudu opakovat. Okno se ale neprovádí k filtrování. Filtrování vynásobením FFT signálu frekvenční odezvou filtru je v mnoha situacích zcela rozumné a je skutečně hotové. Alternativou pro filtrování je čas -doména konvoluce (která se liší od oken). To má své vlastní výhody, jako je provozování signálu v „real-tim e „protože se měří bez čekání na to, až se celá věc uloží a poté transformuje.

Takže na vaši otázku„ Proč neudělat totéž také s digitálními filtry? “odpověď zní jednoduše„ my , když se to hodí. „

Komentáře

  • Mám také dojem, že v otázce došlo ke smíchání konvoluce a oken. Dobře, upozornili jste na to!

Odpověď

Na tuto otázku bylo několik dobrých odpovědí. Mám však pocit, že jeden důležitý bod nebyl zcela objasněn. Jedna část otázky byla, proč „neznásobíme FFT signálu požadovanou odezvou filtru. Například, pokud chceme filtrovat dolní propust, mohli bychom jednoduše vynulovat všechny frekvenční složky vyšší než požadovaná mezní frekvence .Je to ve skutečnosti jednoduchá aplikace známé metody vzorkování kmitočtů pro návrh filtrů FIR. Problém je v tom, že můžeme jen vynulovat diskrétní frekvenční komponenty vypočítané FFT. Nemáme žádnou kontrolu nad tím, co se děje mezi těmito diskrétními frekvencemi. .Ukázalo se, že taková jednoduchá verze filtrování poskytne pouze slabý útlum stopband (bez ohledu na délku FFT). Pokud máte přístup k matlabu nebo oktávě, je velmi poučné vyzkoušet si to sami:

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]) 

Odpovědět

Pokud nepoužíváte obdélníkové okno, pak budou výsledky FFT spojeny s transformací výchozího obdélníkového okna (periodické Sinc) před provedením filtrování ve frekvenční doméně. např. použijí se dva filtry, z nichž jeden pravděpodobně nebudete chtít.

Oknem v časové doméně před filtrováním FFT a frekvenční domény nahradíte jakékoli filtrování (tzv. únik) ) provádí obdélníkové okno, a tak nezíská další nechtěnou konvoluci filtru.

Jiným způsobem, jak toho dosáhnout, je použití metod překrytí-přidání nebo překrytí uložení na po sobě jdoucích oknech, kde účinky jednoho obdélníkové okno je zrušeno podobnými efekty ze sousedních oken.

Odpovědět

Okno v časové doméně, protože

  • můžeme zaručit nulu na okrajích okna
  • funkce okna mají pěkný analytický výraz v prostorové doméně
  • mnoho funkcí okna má divně tvarované spektrum, které by bylo obtížné aproximovat
  • je zapotřebí pouze konečný počet vzorků (okna lze provádět jako vstupy signálů)

např. z wikipedia

zde zadejte popis obrázku

Hard cut off jít na nulu okenních funkcí znamená, že ve spektrální doméně mají postranní laloky, které jdou k nule velmi pomalu. Pokud se tohoto omezení zbavíme, můžeme mít funkce, které jsou kompaktní v prostorové i spektrální doméně, jako je Gaussův filtr. To znamená, že můžete filtrovat přes spektrální doménu, ale to vyžaduje znát celý signál.

Pokud již máte celý signál, další alternativou by bylo použití vlnky

Odpověď

Měl jsem stejnou otázku.

Konvoluce je integrální / kumulativní součet signálu časové domény vynásobený oknem. To by nemělo být zaměňováno se „oknem“ signálu časové domény.

Konec tohoto článku mi hodně pomohl.

V podstatě se říká, že skutečné signály jsou konečné a náhlé přerušení skutečného signálu vede k mnoha nežádoucím frekvencím / artefaktům ve frekvenční doméně.

Aby se těmto artefaktům zabránilo / minimalizovalo můžete použít funkci hladkého okna (např. ve tvaru zvonu), takže váš vzorek začíná a končí nulou, než aby náhle skončil nějakou nenulovou skalární hodnotou.

Hladké oříznutí

Výše zobrazený vzorek bude mít ve frekvenční doméně méně artefaktů než níže uvedený surový vzorek.

Náhlé přerušení

Odpověď

S FFT jsou spojeny dvě široké kategorie, které jsou 1) účinným způsobem implementace filtru FIR a 2) spektrální analýzou.

Pro FIR Filtrování, s okny si nedělá starosti a nepoužívá je, pokud okno neodpovídá filtru, ale to není běžné tenké g dělat. Únik není problém.

Spektrální analýza využívá Windows. Zde se díváte na senzor připojený k velkému průmyslovému stroji a snažíte se zjistit, jestli hluboko v jeho útrobách selhalo ložisko. Ložiska křičí, když selžou, ale jejich hluk je obvykle mnohem nižší než ostatní zvuky, které stroj vydává. To je místo, kde dochází k úniku a průměrování. Vzhledem k silným tónům způsobí únik slabý signál, který hledáme o několik přihrádek. Zlepšuje citlivost spektrální analýzy na slabé signály v přítomnosti silných signálů. Podobný efekt existuje, když je hluk pozadí sklonený. Informace, které hledáme, jsou ve frekvenční doméně. To je stejný problém v RADARU, SONARU a Geofyzice. Vidět slabý signál je cíl.

Odpověď

Okno v časové doméně je nutné, aby se zabránilo rozšíření jedné frekvence, která není přesně na frekvenčním zásobníku v celém spektru. Možná tato stránka pomůže: http://www.sm5bsz.com/slfft/slfft.htm Linrad (můj 20 let starý projekt) používá okenní FFT a poté použije filtr ve frekvenční doméně (vynulovat to, co nechceme.) Použít okno – nepřecházet náhle z váhy 1 na váhu 0 na frekvenčních přihrádkách. Poté použijte zpětný FFT – ale nyní na mnohem menší počet bodů. Není třeba zahrnout všechny kmitočtové přihrádky, o kterých víme, že jsou nulové !! Jako výsledek dostaneme časovou funkci s mnohem menší velikostí – to znamená s mnohem nižší vzorkovací frekvencí. Postup provádí filtrování a decimaci v jednom kroku.To je velmi efektivní v případě, že chcete odfiltrovat několik kanálů současně. Domovská stránka linrad je zde: http://www.sm5bsz.com/linuxdsp/linrad.htm

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *