WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Filterung im Zeit-/Frequenzbereich, ...dringend...

 

Mattlapp
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 19.12.12
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 23.07.2014, 14:02     Titel: Filterung im Zeit-/Frequenzbereich, ...dringend...
  Antworten mit Zitat      
Hi!

Ist sonst nicht meine Art, aber ich habe eine fixe frage (muss sehr bald eine Arbeit abgeben..). Dewegen hab ich dringen in den Betreff geschrieben. Ich hoffe das wird mir nicht krum genommen...

Ich steh grade irgendwie auf dem Schlauch. Ich filtere ein Signal x(k) im Frequenzbereich, indem ich

X(f) = fft(x(k))

rechne und dann mit einem Vektor H(f), der 2 Dirac-Impulse enthält (symmetrisch zur y-Achse) malnehme, um die Frequenzen des gewünschten Bins zu filtern:

Y(f) = X(f).*H(f)

Wenn ich mir y(k)=ifft(Y(f)) dann anschaue, ist das auch ok so. Aber wenn ich die äquivalente Rechnung im Zeitbereich
durchführe, kommt nicht dasselbe Signal dabei raus (sondern eines, was in etwa so aussieht wie x(k)).

y(k) = filter( ifft(H(f)) , [1], x(k))

Wie kann das sein? Das müsste doch eigentlich dasselbe ergeben, oder?
Private Nachricht senden Benutzer-Profile anzeigen


DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 05.08.2014, 15:33     Titel:
  Antworten mit Zitat      
Hi,

evtl. hilft dir meine Antwort ja noch. Im Prinzip ist das Vorgehen richtig, so fern man vor der Transformation in den Freq.-bereich etwas entscheidendes beachtet. Stichwort lineare und zyklische Faltung...

Da ich diese Technik mal für ein Verfahren verwendet habe, musste ich mich mit dieser Thematik auch beschäftigen. Hier ein Auszug aus meinem Skript zu dem Thema Faltung mittels FFT.

Zitat:

Im Zeitbereich liefert die Faltung der Wertefolgen x[n] und h[m] einen Ergebnisvektor der Länge y[n+m-1]. Dieser Vorgang wird als lineare Faltung bezeichnet. Nun soll die Faltung im Frequenzbereich durchgeführt werden, wodurch die Wertefolgen x[n] und h[m] multipliziert werden. Deshalb müssen beide Folgen die gleiche Länge haben (n = m). In einem Beispiel sei ein Signal x[n] 256 Werte lang und h[m] ein FIR Filter mit 61 Koeffizienten (60. Ordnung). Die FFT findet also über 256 Werte statt, wobei h[m] mit 196 Nullen erweitert werden muss. Der Ergebnisvektor y[n] wäre ebenfalls 256 Werte lang, wodurch der Anteil m-1 aus der Faltung im Zeitbereich fehlt. Diesen Vorgang nennt man eine zyklische Faltung, wobei y[n] jeweils am Anfang und Ende um die Länge m-1 ein falsches Ergebnis beinhaltet. Um im Frequenzbereich ebenfalls eine lineare Faltung durchführen zu können, muss für die Eingangsfolgen folgender Aufbau gelten:

x[n, n+1…n+m-1 = 0] * h[m, m+1…m+n-1 = 0] = y[n+m-1] (Gl. 10)
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.