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

FFT und Bandpass-Filter - Verständnisproblem

 

Findus
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 09.03.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.05.2016, 10:39     Titel: FFT und Bandpass-Filter - Verständnisproblem
  Antworten mit Zitat      
Grüß euch!

Ich sitze gerade an einer FFT, bzw. versuche diese nachzuvollziehen. Leider hakt es bei mir bei einigen Schritten. -.- Vielleicht mag ja einer von euch Licht ins Dunkeln bringen?

Also, gegeben ist ein Signal von einer Messeinrichtung. Diese kann nur sinnvoll zwischen f_hp und f_tp messen. Aus diesem Grund möchte ich die anderen Frequenzen wegfiltern bevor ich das Signal weiter verwende. Das mache ich jetzt mit dieser FFT:

Code:
% Berechnung der Blockgröße
N = length (signal);

% Berechnung der Frequenzauflösung
dF = Fs/N;

% FFT und Shift zur Null
signal_fft = fftshift(fft(signal));

% Erzeugung Frequenzvektor
f = (-Fs/2:dF:Fs/2-dF);

% Erzeugung Bandpassfilter
BPF = ((f_HP < abs(f)) & (abs(f) < f_TP))';

% Bandpassfilterung des Signals
signal_fft = BPF.*signal_fft;

% Rücktrafo
signal_gefiltert=ifft(ifftshift(signal_fft),'symmetric');


Meine Fragen dazu wären jetzt:

Warum erzeuge ich einen Frequenzvektor, der im Negativem beginnt? Ich benötige doch eh nur die positiven Werte....

Muss es nicht heißen:
signal_fft = fftshift(fft(signal))/N
signal_gefiltert=ifft(ifftshift(signal_fft),'symmetric')*N

Und die letzte Frage, ist ein so krasser Filter, der quasi nur oben und unten abschneidet überhaupt sinnvoll?
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: 30.05.2016, 08:41     Titel:
  Antworten mit Zitat      
Hallo,

die Matlab FFT Funktion berechnet nun mal ein zweiseitiges Spektrum. Ergo braucht es dann auch den entsprechenden Frequenzvektor. Man kann es auch nur mit dem positiven Frequenzbereich machen, muss dann aber bei der Rücktransformation aufpassen um das richtige Ergebnis zu erhalten. Da ist es so einfacher. Die Normierung durch N ist in deinem Fall vollkommen überflüssig, da ja ohnehin nur im Freq.-bereich gefiltert wird und gleich wieder in den Zeitbereich transformiert wird. Will man z.B. das Frequenzspektrum darstellen, wäre die Normierung obligatorisch.

Warum aber überhaupt dieser Weg über FFT? Wenn z.B. die DSP System Toolbox vorhanden ist, würde ich die Aufgabe mit Hilfe dessen Filterfunktionen angehen.

Was soll an dem Filter "krass" sein? Ein Bandpass ist nun mal dazu gedacht nur einen bestimmten Frequenzbereich durchzulassen. Die Frage sollte eher lauten, sind die Filtereigenschaften überhaupt sinnvoll für mich. Sprich...dämpft das Filter die ungewollten Frequenzen ausreichend. Was ist mit dem Filterdelay etc.

Gruß DSP
Private Nachricht senden Benutzer-Profile anzeigen
 
Findus
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 09.03.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.05.2016, 09:57     Titel:
  Antworten mit Zitat      
Hallo DSP,

danke für die schnelle Antwort!

Mein Problem ist, dass ich noch nie so richtig mit Filtern zu tun hatte und ich jetzt eben erstmals einen brauche, damit ich meine Messungen richtig weiter verarbeiten kann.

Das heißt, versteh ich das richtig, zum Weiterverarbeiten des Signals ist mein Filter so in Ordnung, möchte ich aber das Spektrum plotten, dann wähle ich:
signal_fft_plot = fftshift(fft(signal))/N
?

Mit "krass" meinte ich, dass dieser Filter ja die steilsten Flanken hat. Und ich habe irgendwo mal gehört, dass einfach so abschneiden nicht die beste Lösung sein soll.
Ich sehe es aber so, wenn meine Messeinrichtung eh nicht mehr kann als f_TP, warum soll ich dann "Reste" durch eine schräge Flanke mitnehmen, wenn ich das auch gerade abschneiden kann.

Könntest du mir bitte noch erklären, was du mit Filterdelay meinst?

Mit Toolboxen habe ich mich noch nicht beschäftigt. Ist "filterbuilder" ein Teil dieser DSP System Toolbox? Falls ja, das habe ich schon mal probiert. Es gab hier aber so viele Einstellungsmöglichkeiten und ich hatte die Befürchtung mehr falsch als richtig zu machen. Hast du evtl. einen Vorschlag, was ich hier einstellen muss?
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.