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 von Matrixdaten

 

GAST987654321

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.12.2012, 11:56     Titel: Filterung von Matrixdaten
  Antworten mit Zitat      
Hallo erstmal,

also ich habe eine 1xX Matrix die geplottet ein starkverrauschtes Signal ausspuckt.

Ich möchte gerne das Signal filtern.
Die Matrix wird über eine A/D Karte gefüttert somit habe ich nur einzelne Werte und keine Funktion oder ähnliches.

im anhang ist das signal das ich filtern möchte dargestellt.

Das Signal ist generell sehr schwach und ist beeits vorher schon um 100dB verstärkt
Der plot ansich wird folgendermaßen aufgrufen:
Code:
figure;
            subplot(2,1,2)
            plot (t, Dat_Ch0, 'b', t, Dat_Ch1, 'g');
            axis([3000 6000 0 2500]);
            grid on;
            title('Zoom auf die Aufnahme der Sonde');
            subplot(2,1,1)
            plot (t, Dat_Ch0, 'b', t, Dat_Ch1, 'g');
            axis([0 16000 0 2000]);
            grid on;
            title('Gesamte Aufnahme');


Kann mir da einer weiterhelfen?

signal.JPG
 Beschreibung:

Download
 Dateiname:  signal.JPG
 Dateigröße:  59.13 KB
 Heruntergeladen:  757 mal


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 19.12.2012, 17:01     Titel: Re: Filterung von Matrixdaten
  Antworten mit Zitat      
Hallo GAST987654321,

Ein digitaler Filter wird dieses Signal zuverlässig glätten. Allerdings solltest Du die Physikalische Natur des Rauschens kennen, um wissenschaftlich begründbar sinnvolle Filter-Parameter bestimmen zu können. Wenn Du z.B. das Frequenz-Spektrum des Rauschens kennst und es sich vom Spektrum des gesuchten Signals unterscheidet, könnte ein Hoch/Tief/Stop oder Bandpass Butterworth-Filter optimal sein, wobei noch der Filter-Grad zu bestimmen wäre. Falls die Spektren nah beieinander liegen, würde ein Filtern aber auch die Peaks des Signals drastisch glätten. Dann könnte ein Savitzky-Golay-Filter hilfreicher sein.

Da beim Filtern von Laien sehr viele Fehler gemacht werden, solltest Du unbedingt einen ausgebildeten Signal-Processing-Profi fragen. Ich habe schon eine Doktor-Arbeit gesehen, bei der zunächst alle Frequenzen, die niedriger als eine gesuchte Frequenz waren, zunächst per Hardware im Messsystem ausgefiltert wurden. Danach wurden von der Software die höheren Frequenzen ausgefiltert. Und schließlich gab es einen Peak beim gesuchten Signal - wie erstaunlich!

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast987654321

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.12.2012, 08:20     Titel: frage
  Antworten mit Zitat      
also als datensatz liegt mie eine matrix 1xX vor bzw ein vector ..
wie filter ich den denn dann?
also wie sieht der code dazu aus.. alles was ich gefunden habe bezieht sich auf funktionen.

ich wollte einen tiefpass filter nutzen, wenn das nicht gut ist wollte ich andere filter nutzen. aber ich brauche erstmal code die filterart ist dann ja relativ.
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 20.12.2012, 08:56     Titel: Re: frage
  Antworten mit Zitat      
Hallo Gast987654321,

Das Lesen der Dokumentation hilft bei solchen Frage immer weiter:
Code:

Und nachdem ich den Butterworth-Filter erwähnt habe auch:
Code:

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast987654321

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.12.2012, 09:16     Titel: Paris
  Antworten mit Zitat      
Hallo,

diese Dokus habe ich bereits gelesen, sonst würde ich hier ja nicht nachfragen.


Bei der Benutzung von filter erhalte ich folgende Fehlermeldung:

Zitat:

??? Undefined function or method 'filter' for input arguments of type 'int16'.

Error in ==> rec_std_single at 215
y=filter(b,a,Dat_Ch0)
 
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.