Jeg troede, at DSP ville blive gjort ved at bruge FFT af dele af et signal, modificer prøverne, der er resultatet af FFT (da de repræsenterer spektret for vores signal + støj) og fjern eventuelle uønskede signaler, og end gør en invers FFT for at få en tidsdomænerepræsentation af det filtrerede signal (støj er fjernet nu) . Dette er dog ikke gjort, i stedet udfører vi alt arbejdet i tidsdomæne ved hjælp af vinduesfunktioner. Hvorfor?

Hvis vi multiplicerer vinduesfunktion i tidsdomæne, end vi konvolverer vinduesfunktionens frekvensrespons med spektrum af vores signal i frekvensdomæne, hvordan fungerer det? Jeg mener, hvis vi bare gjorde alt arbejdet i frekvensdomæne ved at multiplicere vores signal med filterets frekvensrespons, ville det være som at filtrere lige? Men her gør vi alle tingene i tidsdomænet i stedet for ved hjælp af vindue.

-> Lad os se hvor Min forvirring kommer fra. For analoge filtre, f.eks. lavpasfilter, har vi denne puls som frekvensrespons. Når vi filtrerer et signal, multiplicerer vi effektivt vores signal spektrum med filterets pulslignende frekvensrespons. Dette reducerer alle frekvenser i vores signal over en afskæring til 0. Sådan fungerer et lavpasfilter i det væsentlige. Hvorfor ikke gøre det samme med digitale filtre også?

Kommentarer

Svar

Windowing reducerer spektral lækage.

Sig, at du starter med en $ \ sin (y) = \ cos (\ omega_0 t) $. Perioden er naturligvis $ 2 \ pi / \ omega_0 $.

Men hvis ingen fortalte dig, at perioden er $ 2 \ pi / \ omega $, og du blindt vælger området $ [0, 1,8 \ pi / \ omega_0] $ og tager FFT af denne trunkerede bølgeform, du vil observere frekvenskomponenter i andre frekvenser, som alle er falske, fordi de spring, der oprettes ved kopimastning af den trunkerede bølgeform for periodicitet, ikke rigtig er til stede i det originale signal – det er en artefakt af en uheldig afkortning, der ikke fanger overgangen mellem perioder jævnt . Ideelt set er der kun en spektral komponent ved $ \ omega = \ omega_0 $.

Formålet med vindue i tidsdomæne er at reducere alle disse fiktive spektrale komponenter.

Svar

Windowing bruges, fordi DFT-beregningerne fungerer på den uendelige periodiske forlængelse af indgangssignalet. Da mange faktiske signaler enten slet ikke er periodiske eller samples over et interval, der er forskelligt fra deres faktiske periode, kan dette producere falske frekvenskomponenter ved den kunstige “kant” mellem gentagne intervaller, kaldet lækage . Ved først at multiplicere tidsdomænesignalet med en vinduesfunktion, der går til nul i begge ender, opretter du en jævn overgang mellem gentagne intervaller i den uendelige periodiske udvidelse, hvilket mindsker oprettelsen af disse kunstige frekvenskomponenter, når vi derefter tager DFT.

Dette papir giver et mere dybtgående kig på dette fænomen samt en vis indsigt i virkningerne af forskellige vinduesfunktioner.

Svar

Jeg tror, du forveksler to forskellige operationer.

Windowing i tidsdomænet forklares med @ sam, så jeg gentager ikke det. Men vinduesvindue er ikke gjort for at udføre filtrering. Filtrering ved at multiplicere FFT af et signal med filterfrekvensresponsen er helt rimelig i mange situationer og er faktisk gjort. Alternativet til filtrering er tid -domæne-foldning (hvilket er forskelligt fra vinduesvindue). Dette har sine egne fordele, såsom at arbejde på et signal i “real-time e “som det måles uden at vente på, at det hele lagres og derefter transformeres.

Så på dit spørgsmål” Hvorfor ikke også gøre det samme med digitale filtre? “, svaret er simpelthen” vi gør , når det passer. “

Kommentarer

  • Jeg har også indtryk af, at sammenblanding og vindue blev blandet i spørgsmålet. Godt, du påpegede det!

Svar

Der har været flere gode svar på dette spørgsmål. Jeg føler dog, at et vigtigt punkt ikke er gjort helt klart. En del af spørgsmålet var, hvorfor vi ikke bare multiplicerer FFT for et signal med det ønskede filterrespons. F.eks. Hvis vi ønsker at lave passfiltrere vores signal, kunne vi simpelthen nulstille alle frekvenskomponenter højere end den ønskede afskæringsfrekvens Dette er faktisk en simpel anvendelse af den velkendte frekvenssamplingsmetode til design af FIR-filtre. Problemet er, at vi bare kan nulstille de diskrete frekvenskomponenter, der beregnes af FFT. Vi har ingen kontrol over, hvad der sker mellem disse diskrete frekvenser .Det viser sig, at en sådan simpel version af filtrering kun vil give en dårlig dæmpning af stopbånd (uanset FFT-længde). Hvis du har adgang til matlab eller oktav, er det meget lærerigt at prøve det selv:

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

Svar

Hvis du ikke bruger et ikke-rektangulært vindue, er FFT-resultaterne allerede involveret i transformeringen af et standard rektangulært vindue (en periodisk Sinc), inden der foretages frekvensdomæne-filtrering. for eksempel. du får to filtre anvendt, hvoraf den ene sandsynligvis ikke ønsker.

Ved at vindue i tidsdomænet, før FFT og frekvensdomæne-filtrering, erstatter du enhver filtrering (såkaldt “lækage” ) udført ved rektangulær vinduesvindue og dermed ikke få en ekstra uønsket filterkonvolution.

Den anden måde at gøre dette på er at bruge overlappende tilføj eller overlapningsmetoder i sammenhængende vinduer, hvor virkningerne af en rektangulært vindue bliver annulleret af lignende effekter fra de tilstødende vinduer.

Svar

Vindue i tidsdomænet, fordi

  • vi kan garantere nul ved kanterne af vinduet
  • vinduesfunktioner har et flot analytisk udtryk i rumligt domæne
  • mange vinduesfunktioner har et underligt formet spektrum, der ville være svært at tilnærme
  • kun et begrænset antal prøver er nødvendige (vinduesvindue kan gøres, når signalet streamer ind)

f.eks. fra wikipedia

indtast billedebeskrivelse her

Det hårde afskåret ved at gå til nul af vinduesfunktioner betyder, at de i det spektrale domæne har sidelapper, der går meget nul til nul. Hvis vi slipper af med denne begrænsning, kan vi have funktioner, der er kompakte i både rumlige og spektrale domæner, som det Gaussiske filter. Dette betyder, at du kan filtrere via det spektrale domæne, men det kræver, at hele signalet skal være kendt.

Hvis du har hele signalet, ville et andet alternativ allerede være at bruge wavelets

Svar

Jeg havde det samme spørgsmål.

En foldning er den integrerede / kumulative sum af tidsdomænesignalet ganget med vinduet. Dette bør ikke forveksles med det “vindue” tidsdomænesignal.

Slutningen af denne artikel hjalp mig meget.

Grundlæggende står det, at ægte signaler er endelige, og brat afskæring af et ægte signal resulterer i mange uønskede frekvenser / artefakter i frekvensdomænet.

For at undgå / minimere disse artefakter du kan bruge en glat (f.eks. klokkeformet) vinduesfunktion, så din prøve starter og slutter med nul, snarere end brat slutter med en skalarværdi, der ikke er nul.

Glat afskåret

Den eksemplerede vinduesprøve ovenfor har mindre artefakter i frekvensdomænet end den rå prøve nedenfor.

Pludselig afskåret

Svar

Der er to brede kategorier forbundet med en FFT, og de er 1) en effektiv måde at implementere et FIR-filter på, og 2) spektralanalyse.

For FIR-filtrering, man bekymrer sig ikke om windows og bruger dem ikke, medmindre vinduet svarer til et filter, men det er ikke almindeligt tyndt g at gøre. Lækage er ikke et problem.

Spektralanalyse er hvor man bruger windows. Det er her, du ser på en sensor, der er fastgjort til en stor industriel maskine, og prøver at finde ud af, om dybt inde i dens tarme, en leje fejler. Lejer klager, når de fejler, men den støj, de måtte have, er normalt meget lavere end de andre lyde, som maskinen laver. Det er her lækage og middelværdi kommer ind. I betragtning af stærke toner vil lækage oversvømme det svage signal, vi leder efter et par skraldespande. Det forbedrer følsomheden af spektralanalyse over for svage signaler i nærvær af stærke signaler. Der er en lignende effekt, når baggrundsstøjen skråner. De oplysninger, vi søger, findes i frekvensdomænet. Dette er det samme problem i RADAR og SONAR og geofysik. At se det svage signal er mål.

Svar

Windowing i tidsdomænet er påkrævet for at undgå en enkelt frekvens, der ikke er nøjagtigt i en frekvensbakke for at sprede sig over hele spektret. Måske hjælper denne side: http://www.sm5bsz.com/slfft/slfft.htm Linrad (mit 20-årige projekt) bruger et FFT med vinduer og anvender derefter et filter i frekvensdomænet (lav nul, hvad vi ikke vil have.) Anvend et vindue – gå ikke brat fra vægt 1 til vægt 0 på frekvensbakkerne. Anvend derefter en baglæns FFT – men nu på et meget mindre antal point. Der er ikke behov for at medtage alle de frekvensbakker, vi ved, er nul !! Som resultat får vi en tidsfunktion med en meget mindre størrelse – det betyder med en meget lavere samplingshastighed. Fremgangsmåden filtrerer og decimerer i et enkelt trin.Dette er meget effektivt, hvis man ønsker at filtrere flere kanaler ud på samme tid. Linrad-hjemmesiden er her: http://www.sm5bsz.com/linuxdsp/linrad.htm

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *