Softwareentwickler MATLAB/Simulink (w/m) Erarbeitung von Lösungen im Bereich der Schnittstelle zum Simulink-Modell und der Benutzeroberfläche von TargetLinkdSPACE GmbH - Paderborn
Verfasst am: 26.01.2012, 16:08
Titel: 50%-ige Überlappun bei Fensterung warum?ß
Hallo Gemeinde,
Hab mir jetz einiges über FFT und Fensterung durchgelesen und speziell bei der Fensterung ist mir aufgefallen, dass meistens mit einem Overlap von 50% gearbeitet wird. Kann mir jemand sagen wieso das so ist?
c1 = fix((nfftx/2)+1); % Zwischenspeichern der Grenzweite bis zur Nyquistfrequenz
c2 = fix(nfftx/2); % Zwischenspeichern Grenzwert bis Nyquist ohne Gleichanteil!
ii = 1;
signal_win = sig_neu(m:nfftx+m-1) .* win_seg*nfftx/sum(win_seg); % entnehme aus Signal das Segment der Länge nfft und multipliziere mit dem Fenster
H = fft(signal_win, nfftx)/nfftx; % Segment transformieren
H_pos0(1:c1,ii) = abs(H(1:c1)); % Nur positives Frequenzen werden benötigt
H_pos0(2:c2,ii) = 2 * H_pos0(2:c2,ii); % Wegen positives Spektrum Amplitude*2, sonst nur halbe Energie
m = m + nfftx - overlap; % Indexstartwert für nächstes Segement bestimmen
Wieso macht man den overlap nfftx/2? Man könnte doch auch 3/4*nfftx weiterrechnen oder? Hätte das Vorteile(Nachteile), wenn ja welche?
Es geht nicht um ein Spektrogramm
Die FFT wird schrittweise auf ein Signal angewandt.
Du hast mir hierbei schonmal geholfen, nur kann ich mich nicht mehr erinnern, wieso zwei Fenster genau 50% überlappt!!
Ich habe k.A. warum du nun die Segmentierung machst...
Ich kann mich nur auf ein Spektrogramm beziehen. Durch die Segmentierung kann man eine Abhängigkeit zwischen Amplitude, Frequenz und Zeit darstellen. Bei einem Freq.-spektrum fehlt ja die Zeit. Durch die Anzahl der Messwerte eines Segments als auch den Overlap, wird die Auflösung von Zeit und Frequenz bestimmt. Will man eine hohe Zeitauflösung, wird die Frequenzauflösung geringer und umgekehrt...Stichwort Schmal- und Breitbandspektrum. Ein Overlap von 50% ist sozusagen der Standardwert für die Auflösung von Zeit und Freq. so dass jede Achse die bestmögliche Auflösung hat, ohne die Aufl. einer der beiden Achsen zu verringern.
Nun...wenn du keine Angaben machst, warum du eine Segmentierung durchführst, ist es halt auch schwer darüber eine präzise Auskunft zu geben. Auf der anderen Seite sollte es ja auch kein Ding der Unmöglichkeit sein, die Wirkung verschied. Overlaps experimentiell zu ermitteln. Nutzt du denn die Segm. um ebenfalls noch den Faktor Zeit mit einzubringen, oder stellst du nur Ampl. über Freq. dar?
Btw: Was ist EMV...Elektronische Messwertverarbeitung?
Btw: Was ist EMV...Elektronische Messwertverarbeitung?
EMV = Elektormagnetische Verträglichkeit!
Nein der Faktor Zeit spielt keine Rolle. Im Spektrum wird nur die Amplidute gegenüber der Frequenz im logarithmischen Maßstab gegenüber gestellt.
Durch Fensterung erreiche ich eine spezielle Bewertung(Gewichtung ) des Spektrums.
Code:
%% For Schleife für die verbeleibenden Segmente for ii=3:k_win
signal_win = sig_neu(m:nfftx+m-1) .* win_seg*nfftx/sum(win_seg); % entnehme aus Signal das Segment der Länge nfft und multipliziere mit dem Fenster
H = fft(signal_win, nfftx)/nfftx; % Segment transformieren
H_pos0(1:c1,ii) = abs(H(1:c1)); % aus H werden nur die Werte 1...257 = (nfftx/2) + 1 entnommen wenn nfftx = 512
H_pos0(2:c2,ii) = 2 * H_pos0(2:c2,ii); % Normierung
spec_peak(:,2) = max(spec_peak(:,2), H_pos0(:,ii)); % bei jedem Schleifendurchlauf wird spec_peak upgedated
m = m + nfftx - overlap; % Indexstartwert für nächstes Segement bestimmen end
Nach jeder Transformation werden jeweils die maximal Werte aus der Matrix H_Pos in spec_peak übertragen. Dies nennt man die PEAK Bewertung. Dabei wird ein in der EMV typischer Mess-Detektor nachgebildet, bei dem nur die Spitzenwerte relevant sind.
Ich hoffe das klärt ein bißchen die Relevanz der Segmentierung?!
Also wenn ich das richtig verstehe, dann heißt Segmentierung bei dir, dass du einen Teil des Signals (Segment) entnimmst, mit einem Gaussfenster der Länge des Segments multiplizierst, dann die FFT machst und dann daraus die Maxima ableitest richtig?
Wäre es da nicht sinvoller komplett auf den Overlap zu verzichten (=0) damit du zwei voneinander unabhängige Segmente hast. Mit Overlap = 0.5 haben ja beide Segmente 50% die gleichen Messwerte. Somit werden u.U. nie die neuen Messwerte mit eingehen.
Ist aber nur so ein Gedanke...ich kenne diese Bewertungsform nicht.
mir gehts da wie DSP. Diese Bewertungsform habe ich noch nie gesehen. Algorithmisch betrachtet nimmst du dir da nur Teile des Gesamtintegrals und des abgetasteten Feldes vor, und betrachtest auch nur Teile von Frequenzen, also nur einen bestimmten viereckigen Teil der Fouriertmatrix. Ich kann mir nur vorstellen, dass es hilft versteckte Frequenzen besser zu beobachten und zu finden, da durch das Integral viele "Fehler" verwischt werden. Die 50 % Overlap betrachten da immer die Hälfte des Spektrums. D. h. dass du anstatt beispielsweise von -50 bis 50 Hez nur -25 bis 25 Hz betrachtest. Das macht dahingehend Sinn, dass jede FFT eh immer nur durch ein Fenster aufgenommen wird und die meisten Sachen sich amplitudentechnisch auch dort abspielen. Es hilft wahrscheinlich Störungen zu lokalisieren, sprich wo sich bestimmte Frequenzanteile wo befinden. Man könnte auch kleinere Overlaps nehmen, das würde dem Gedankenkonstrukt zu folge aber die Auflösung minimieren, aber auch größere, aber das würde die Fensterbreite zu groß gestalten und Fehler die zu finden wären wieder verschwinden.
So könnte es sein. Bin aber nicht abschließend sicher.
danke für deine Mühe. So könnte es theoretisch schon sein, wer da auf alle Fälle nochmals genauer nachfragen und lesen müssen, aber danke für deine Hilfe!!
lg elcachon
Options and Permissions
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
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.