Luulin, että DSP tehdään käyttämällä FFT: n osia signaali, muokkaa FFT: stä saatuja näytteitä (koska ne edustavat signaalimme + kohinan spektriä) ja poista kaikki ei-toivotut signaalit ja tee käänteinen FFT saadaksesi suodatetun signaalin aikatason esityksen (kohina on nyt poistettu) . Tätä ei kuitenkaan tehdä, vaan teemme kaiken työn aika-alueella ikkunatoiminnoilla. Miksi?
Jos moninkertaistamme ikkunatoiminnon aikatasossa kuin sekoitamme ikkunatoiminnon taajuusvasteen taajuustason signaalimme spektriin, miten se toimii? Tarkoitan, jos teimme juuri kaikki työ taajuusalueella kertomalla signaalimme suodattimen taajuusvasteella, se olisi kuin suodattaa oikein? Mutta täällä teemme kaikki tavarat ajassa toimialueen sijaan ikkunan avulla.
-> Näemme missä hämmennysni johtuu analogisista suodattimista, esim. alipäästösuodattimista, meillä on tämä pulssi kuten taajuusvaste.Kun suodatamme signaalin, moninkertaistamme signaalin spektrin tehokkaasti pulssin kaltaisen taajuusvasteen kanssa. Tämä vähentää kaikki signaalimme taajuudet raja-arvon yläpuolella arvoon 0. Näin alipäästösuodatin toimii pohjimmiltaan. Miksi et tekisi samoin myös digitaalisten suodattimien kanssa?
Kommentit
- Mahdollinen kaksoiskappale Miksi onko huono idea suodattaa nollaamalla FFT-lokerot?
vastaus
Selaus vähentää spektraalia vuoto.
Oletetaan, että aloitat arvolla $ \ sin (y) = \ cos (\ omega_0 t) $. Ajanjakso on tietysti $ 2 \ pi / \ omega_0 $.
Mutta jos kukaan ei kertonut, että jakso on $ 2 \ pi / \ omega $ ja valitset sokeasti alueen $ [0, 1.8 \ pi / \ omega_0] $ ja otat tämän katkaistun aaltomuodon FFT: n, tarkkailee muiden taajuuksien taajuuskomponentteja, jotka ovat kaikki väärennettyjä, koska katkaistun aaltomuodon jaksollisuuteen kopioimalla liitettyjä hyppyjä ei todellakaan ole alkuperäisessä signaalissa – se on epäonnisen katkaisun artefakti, joka ei vangitse jaksojen välistä siirtymistä sujuvasti . Ihannetapauksessa on vain yksi spektrikomponentti kohdassa $ \ omega = \ omega_0 $.
Aikavyöhykkeen keräämisen tarkoituksena on vähentää kaikkia näitä fiktiivisiä spektrikomponentteja.
Vastaa
Ikkunaa käytetään, koska DFT-laskelmat toimivat tulosignaalin äärettömällä jaksollisella laajennuksella. Koska monet todelliset signaalit eivät ole lainkaan jaksollisia tai ne näytetään eri aikaväleillä kuin niiden todellinen jakso, tämä voi tuottaa vääriä taajuuskomponentteja keinotekoisella ”reunalla” toistuvien jaksojen välillä, nimeltään vuoto . Kertomalla ensin aika-alueen signaali ikkunointitoiminnolla, joka menee nollaan molemmissa päissä, luot tasaisen siirtymän toistuvien jaksojen välillä äärettömässä jaksollisessa jatkeessa, mikä lieventää näiden keinotekoisten taajuuskomponenttien luomista, kun otamme sitten DFT: n.
Tässä -artikkelissa tarkastellaan perusteellisemmin tätä ilmiötä sekä annetaan tietoa eri ikkunatoimintojen vaikutuksista.
Vastaa
Luulen, että sekoitat kahta erilaista operaatiota.
Aikaverkkotunnuksen selittäminen selitetään @ samoin, joten en toista sitä. Mutta ikkunointia ei tehdä suodatuksen suorittamiseksi. Suodatus kertomalla signaalin FFT suodatintaajuusvasteella on täysin kohtuullinen monissa tilanteissa, ja se onkin tehty. Vaihtoehto suodatukselle on aika -verkkotunnuksen konvoluutio (joka poikkeaa ikkunasta) .Tällä on omat etunsa, kuten signaalin käyttö reaaliajassa e ”koska se mitataan odottamatta, että koko asia tallennetaan, sitten muuttuu.
Joten kysymykseesi” Miksi et tekisi samaa myös digitaalisten suodattimien kanssa? ”, Vastaus on yksinkertaisesti” me teemme , milloin se sopii. ”
Kommentit
- Minulla on myös vaikutelma, että sekavuus ja peruuntuminen sekoittuivat kysymykseen. Hyvä, osoitit sen!
Vastaus
Tähän kysymykseen on annettu useita hyviä vastauksia. Mielestäni yhtä tärkeää seikkaa ei kuitenkaan ole tehty täysin selväksi. Yksi osa kysymystä oli, miksi emme vain kerro signaalin FFT: tä halutulla suodatinvasteella. Jos esimerkiksi haluamme alipäästösuodattaa signaalimme, voimme yksinkertaisesti nollata kaikki taajuuskomponentit, jotka ovat haluttua rajataajuutta korkeammat. Tämä on itse asiassa yksinkertainen tunnetun taajuusnäytteenottomenetelmän soveltaminen FIR-suodattimien suunnittelussa. Ongelmana on, että voimme vain nollata FFT: n laskemat erilliset taajuuskomponentit. Meillä ei ole hallintaa siitä, mitä näiden erillisten taajuuksien välillä tapahtuu. .On käynyt ilmi, että tällainen yksinkertainen suodatusversio antaa vain heikon pysäytyskaistan vaimennuksen (FFT-pituudesta riippumatta). Jos sinulla on pääsy matlabiin tai oktaaviin, on erittäin hyödyllistä kokeilla sitä itse:
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])
Vastaa
Jos et käytä ei-suorakaiteen muotoista ikkunaa, FFT-tulokset yhdistetään jo oletuksena olevan suorakaiteen muotoisen ikkunan (jaksollisen Sinc) muunnokseen ennen taajuustason suodatusta. esimerkiksi. saat kaksi suodatinta, joista yhtä et todennäköisesti halua.
Selaamalla aika-alueelle ennen FFT- ja taajuusalueiden suodatusta, korvaat kaikki suodattimet (ns. vuoto) ) tehdään suorakaiteen muotoisella käämityksellä, joten älä saa ylimääräistä ei-toivottua suodatinkonvoluutiota.
Toinen tapa tehdä tämä on käyttää päällekkäisyyden lisäämisen tai päällekkäisyyden tallennusmenetelmiä peräkkäisissä ikkunoissa, joissa suorakulmainen ikkuna perutaan vastaavilla viereisten ikkunoiden vaikutuksilla.
Vastaa
Ikkuna aikatoimialueella, koska
- voimme taata nollan ikkunan reunoilla.
- ikkunatoiminnoilla on hieno analyyttinen ilmentymä avaruusalueella.
- monilla ikkunafunktioilla on outo muotoinen spektri, joka olisi vaikea arvioida
- tarvitaan vain rajallinen määrä näytteitä (ikkuna voidaan tehdä signaalin virrassa)
esim. wikipediasta
vaikea katkaisu nollautuu ikkunointitoiminnoille tarkoittaa, että spektrialueella heillä on sivulohkot, jotka menevät nollaan hyvin hitaasti. Jos pääsemme eroon tästä rajoituksesta, meillä voi olla toimintoja, jotka ovat kompakteja sekä avaruus- että spektrialueilla, kuten Gaussin suodatin. Tämä tarkoittaa, että voit suodattaa spektrialueella, mutta se vaatii koko signaalin tuntemisen.
Jos sinulla on koko signaali, jo toinen vaihtoehto olisi käyttää wavelets
Vastaa
Minulla oli sama kysymys.
Konvoluutio on aikatason signaalin integraali / kumulatiivinen summa kerrottuna ikkunaan. Tätä ei pidä sekoittaa ”ikkunoituun” aikatason signaaliin.
tämän artikkelin loppu auttoi minua paljon.
Periaatteessa siinä sanotaan, että todelliset signaalit ovat rajallisia ja oikean signaalin katkaiseminen äkillisesti johtaa paljon ei-toivottuihin taajuuksiin / artefakteihin taajuusalueella.
Näiden artefaktien välttämiseksi / minimoimiseksi voit käyttää sileää (esim. kellon muotoista) ikkunatoimintoa siten, että näytteesi alkaa ja päättyy nollalla sen sijaan, että loppuisi äkillisesti jollakin muulla kuin nolla-skalaariarvolla.
Yllä olevassa ikkunassa olevassa näytteessä on vähemmän artefakteja taajuusalueella kuin alla olevassa raakanäytteessä.
Vastaa
FFT: hen liittyy kaksi laajaa luokkaa ja ne ovat 1) tehokas tapa FIR-suodattimen käyttöönottoon ja 2) spektrianalyysi.
FIR-suodatus, ikkunoista ei tarvitse huolehtia eikä niitä käytetä, ellei ikkuna vastaa suodatinta, mutta se ei ole tavallinen ohut g tehdä. Vuoto ei ole huolenaihe.
Spektrianalyysi on ikkuna. Tässä katsot suurelle teollisuuskoneelle kiinnitettyä anturia ja yrität selvittää, onko laakeri viallinen. Laakerit kirisevät epäonnistuessaan, mutta niiden mahdollisesti aiheuttama melu on yleensä paljon pienempi kuin muut koneen äänet. Täältä tulee vuotoja ja keskiarvoja. Voimakkaiden sävyjen vuoksi vuoto tuhoaa heikon signaalin, jota etsimme muutaman astian yli. Se parantaa spektrianalyysin herkkyyttä heikoille signaaleille vahvojen signaalien läsnä ollessa. Samanlainen vaikutus on, kun taustamelu on kalteva. Etsimämme tiedot ovat taajuusalueella. Tämä on sama ongelma RADARissa, SONARissa ja geofysiikassa. Heikon signaalin näkeminen on tavoite.
vastaus
Aikavyöhykkeen käämitys on välttämätöntä, jotta vältetään yksi taajuus, joka ei ole aivan taajuusalustassa levittämiseksi koko spektrillä. Ehkä tämä sivu auttaa: http://www.sm5bsz.com/slfft/slfft.htm Linrad (20-vuotias projekti) käyttää ikkunoitua FFT: tä ja käyttää sitten suodatinta taajuusalueella (tee nolla, mitä emme halua.) Käytä ikkunaa – älä mene yhtäkkiä taajuusastioiden painosta 0 painoon 0. Käytä sitten taaksepäin FFT – mutta nyt paljon pienempään pisteiden määrään. Ei tarvitse sisällyttää kaikkia taajuussäiliöitä, joiden tiedämme olevan nollia !! Tuloksena saamme aikatoiminnon, jonka koko on paljon pienempi – se tarkoittaa paljon pienempää näytteenottotaajuutta. Menettely suodattaa ja desimoi yhden vaiheen.Tämä on erittäin tehokasta, jos halutaan suodattaa pois useita kanavia samanaikaisesti. Linradin kotisivu on täällä: http://www.sm5bsz.com/linuxdsp/linrad.htm