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

Ausreißer aus einer Messwertreihe filtern/glätten/...

 

freichar
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 28.07.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.07.2012, 19:39     Titel: Ausreißer aus einer Messwertreihe filtern/glätten/...
  Antworten mit Zitat      
Hallo Zusammen,

wie der Titel schon sagt habe ich eine Messreihe mit einigen heftigen Spitzen, die ich einfach nicht wegbekomme.

Ich hab es mit einiegen Funktionen wie sgolay, medfilt oder nem Tiefpassfilter versucht, jedoch hab ich es entweder falsch gemacht oder die falschen Funktionen verwendet. Ich würde aber eher auf #1 tippen.

Im Anhang ist schonmal ein geglätteter Verlauf, allerdings mit den erwähnten Messspitzen zu finden. Zusätzlich hab ich mal die Messreihe angehängt.

Vielleicht kann mir jmd von euch helfen. Danke schonmal im Voraus!

mfG

C1test00005.txt
 Beschreibung:

Download
 Dateiname:  C1test00005.txt
 Dateigröße:  16.98 MB
 Heruntergeladen:  900 mal
Aufnahme5.1.png
 Beschreibung:

Download
 Dateiname:  Aufnahme5.1.png
 Dateigröße:  6.71 KB
 Heruntergeladen:  1597 mal
Private Nachricht senden Benutzer-Profile anzeigen


flashpixx
Forum-Guru

Forum-Guru


Beiträge: 355
Anmeldedatum: 19.04.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.07.2012, 20:01     Titel:
  Antworten mit Zitat      
Das Problem ist, dass mir nicht ganz genau klar ist, was Du gerne als Signal haben willst, vielleicht könntest Du das genauer beschreiben.
So spontan könnte vielleicht das etwas für Dich sein http://de.wikipedia.org/wiki/Notch_Filter
Private Nachricht senden Benutzer-Profile anzeigen
 
freichar
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 28.07.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.07.2012, 20:08     Titel:
  Antworten mit Zitat      
Ich will die Überlagerung auf der Spannung in den Intervallen von 2-6s, 10-14s und 18-20s raus haben.

Dieser Notchfilter könnte schon das Richtige sein.
Private Nachricht senden Benutzer-Profile anzeigen
 
flashpixx
Forum-Guru

Forum-Guru


Beiträge: 355
Anmeldedatum: 19.04.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.07.2012, 21:19     Titel:
  Antworten mit Zitat      
evtl könnte das auch noch helfen http://de.wikipedia.org/wiki/Kammfilter
sofern das Signal überlagert ist. Der Notch-Filter ist auf einen schmalen Frequenzbereich zu geschnitten

Meistens ist es aber hilfreich zu wissen, woher die Störungen kommen, denn danach kannst Du dann den Filter auswählen
Private Nachricht senden Benutzer-Profile anzeigen
 
freichar
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 28.07.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.07.2012, 00:58     Titel:
  Antworten mit Zitat      
Das Problem bei der Verwendung dieser Filter ist, dass das Frequenzband der Störsignale, nicht bekannt ist. Wie kann ich das umgehen?
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: 29.07.2012, 12:00     Titel:
  Antworten mit Zitat      
Das Frequenzspektrum lässt sich doch ganz leicht erstellen.

Deine Abtastfreq. ist fs = 50.000 Hz

Du kannst nun dein y-Signal z.B. in das sptool laden

Code:


dabei noch fs angegeben und dir das das Spektrum darstellen lassen. Oder diese Funktion benutzen...

Code:


function [mag, mag_dB, fv] = FFT_betragsspektrum( signal, nfft, fa) ;
% Input:
% Signal im Zeitbereich
% nfft = Anzahl Messwerte für fft
% wenn nfft > length(sig) -> fft(sig,nfft) führt Zeropadding durch
% fa = Abtastfreq.
% Output:
% Magnitude des Spektrums linear und dB skaliert
% Frequenzvektor fv in [Hz] von 0...fa/2

% un-,gerade Anzahl Messwerte?
if mod(nfft,2) == 0;
    k = (nfft/2) + 1;
else
    nfft = nfft + 1;
    k = (nfft/2) + 1;
end

fn = fa/2; % Nyquistfreq.
df = fa/nfft; % Frequenzauflösung des Spektrums
% Frequenzvektor: Darstellung bis Nyquistfreq.
fv = 0: df : fn;

sig = signal(:);

% Signal transformieren
Fy = fft(sig,nfft);
 
%   Betrag - nur positives Freq.spektrum  
Fy_pos0 = abs(Fy(1:k));
 
%   Skalierung  
mag = [Fy_pos0(1)/nfft ;Fy_pos0(2:k-1)/(nfft/2);Fy_pos0(k)/nfft];
% dB
mag_dB = 20*log10(mag + eps); % eps = kleine Konstante zur Vermeidung von log(0)
 


und anschließend mit dem Output der Funktion das Spektrum darstellen...
Code:

plot(fv,mag)
% oder...y Achse dB skaliert
plot(fv,mag_dB)
 


Da dein Störsignal laut dem Bild wohl hochfreq. als das Nutzsignal ist, kannst du dann den Tiefpass Filter entsprechend auslegen. Oder du postet einfach mal den Plot des Spektrums, falls du dir nicht sicher bist.
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 - 2025 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.