Matroids Matheplanet Forum Index
Moderiert von mire2
Mathematische Software & Apps » Matlab » Hochpassfilter mit Matlab
Autor
Universität/Hochschule Hochpassfilter mit Matlab
wollfoerst_k
Neu Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 19.04.2016
Mitteilungen: 1
  Themenstart: 2016-04-19

Hi, ich habe momentan ein Problem, was für die meisten hier wahrscheinlich extrem einfach ist... ^^ Es geht um Datenauswertung. Die Werte kommen aus dem Datenlogger, und ich habe ein Excel Makro geschrieben, welche mir diese in 3 Spalten anordnet (Zaehler,Zeit,Weg). Diese Lese ich in Matlab aus. (Geht wahrscheinlich auch in Matlab - aber wie gesagt: ich habe keine Ahnung. ) In Excel sieht das ganze so aus: http://www.matheplanet.com/matheplanet/nuke/html/uploads/a/45543_Beispiel_1.PNG Was mich eigentlich interessiert ist die hochfrequente Funktion (hier 100Hz). Ich möchte, dass sie Konstant um die x-Achse schwingt und nicht mit der niederfrequenzen Schwingung "abdriftet". Eigentlich müsste man hier wohl nur einen Hochpassfilter anwenden, doch ich habe von Matlab überhaupt garkeine Ahnung. Die Sachen die ich im Netz finde, helfen mir nur bedingt weiter..... Mein bisheriger Lösungsansatz: http://de.mathworks.com/help/signal/ref/butter.html#outputarg_ba Doch welche Parameter sind [b,a]?? Das ganze ist Teil eines größeren Problems - ich bin also zwingend darauf angewiesen, es am Ende wirklich zu verstehen :) Bisher sieht mein code so aus: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Skript zur Datenauswertung %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %cProgrammstart clc; clear all; disp('Berechne...'); %Bildschirmausgabe für die Dauer der Berechnung,bis zur Ausgabe der Ergebnisse %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Einlesen des Werte %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %Pfad zur Excel-Datei filename = ' xyz '; sheet = 'abc '; xlRange = 'A:C'; EXCEL_Data = xlsread(filename,sheet,xlRange); %Verarbeiten der Werte Zaehler = EXCEL_Data(:,1); %numerisch, Anzahl der Messwerte Zeit = EXCEL_Data(:,2); %in ms Weg = EXCEL_Data(:,3); %in m %Ausgeben der Werte disp('Excel Daten :'); disp(EXCEL_Data); n = 9; %order of the highpass Wn = 10; %cutoff-frequency [b,a] = butter(n,Wn,'high')


   Profil
Folgende Antworten hat der Fragensteller vermutlich noch nicht gesehen.
majoka
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 25.02.2014
Mitteilungen: 814
  Beitrag No.1, eingetragen 2016-04-19

Hallo wollfoerst_k willkommen im Forum. Ich habe den "butter"-Befehl nicht verfügbar. Kann das ganze also nicht genau nachvollziehen. Aber der Beschreibung nach, solltest Du mit \sourceon Matlab y_filt = filter(b,a,Weg); \sourceoff den gefilterten Signalverlauf erhalten? Gruß majoka.


   Profil
Krugman
Senior Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 23.05.2006
Mitteilungen: 355
Wohnort: Weil am Rhein
  Beitrag No.2, eingetragen 2016-04-20

Hi, aus welcher Fachrichtung kommst du? Sollst du später alles verstehen, da entsprechendes Fachwissen schon erlernt sein sollte? Signalverarbeitung ist ein sehr komplexes Thema :D Folgendes sollte man zumindest schon mal gehört haben: - Shannon-Theorem (Nyquist Theorem) - Abtastrate - FFT und IFFT - Z-Transformation (mit Denominator/Numerator) - Direktform II transposition - FIR Filter - IIR Filter - Filter allgemein (Hochpass, Lowpass, Butter, Cheby, usw) - Second-Ordner Section (IIR Filter) - Frequenz(en) die man eigentlich filtern möchte usw. Schlussendlich, wenn man grob weiß worum es geht und wenn man die Signalverarbeitung mittels Toolbox verwenden möchte: \sourceon Matlab % filter defines Fs = ; % abtastrate Fc1 = ; % cutoff freq Fc1 N = ; % filter Ordnung FType = ; % filter type % filter setup mit Signal processing toolbox hh = fdesign.lowpass('n, fc1', N, Fc1, Fs); % filter Struktur erstellen Hd = butter(hh); % filter erstellen mit lowpass Settings für typ butter [b, a] = tf(Hd); % Transfer function berechnen Hd = dfilt.df2t(b,a); % in die direct form II transponieren fDataOutput = filter(Hd.Numerator, Hd.Denominator, fDataInput); \sourceoff Der Code ist nicht getestet und basiert auf Matlab 7.01. In der Matlab-Hilfe findest du zu jeder Funktion auch mehr Informationen und auch Beispiele. Zum spielen mit den Filter kannst du die Funktion 'fdatool' verwenden. Schlussendlich ist der obige Code aus dem FDAtool. Mittels diesem Tool kannst du deinen Filter generieren und anschließend sogar als Matlabcode exportieren. Gruß Krugman


   Profil
wollfoerst_k wird per Mail über neue Antworten informiert.

Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2023 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]