Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   
Bücher:

Fachkräfte:
Entwicklungsingenieur (m/w) für modellbasierte Softwareentwicklung
Modellbasierte Softwareentwicklung mit MATLAB/Simulink und dSPACE TargetLink
Elektronische Fahrwerksysteme GmbH - Ingolstadt

Softwareentwickler (m/w) für automatische Codegenerierung
Softwareentwicklung mit MATLAB/Simulink und dSPACE TargetLink im Bereich Fahrwerkregelsysteme
Elektronische Fahrwerksysteme GmbH - Ingolstadt

Ingenieur (w/m) modellbasierte Entwicklung / Embedded Programmierung
Organisation und Durchführung von Projekten zur Integration von TargetLink in aktuelle Entwicklungsprozesse
dSPACE GmbH - Pfaffenhofen

Softwareentwickler (w/m) Bypassing- und Steuergeräte-Schnittstellen
Entwicklung von Echtzeit-Software für verschiedene automotive Microcontroller
dSPACE GmbH - Paderborn

Elektromobilität: E-Drive Entwicklungsingenieur HV-Energiemanagement und Betriebsstrategie (m/w)
Entwicklung von Teilfunktionen für Energiebordnetze
MBtech Group GmbH & Co. KGaA - Sindelfingen

weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Anwendung einer FFT zur Bestimmung eines Echos

 

Patrick96
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 11.10.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.07.2017, 21:46     Titel: Anwendung einer FFT zur Bestimmung eines Echos
  Antworten mit Zitat      
Hallo liebe Community,

für meinen studentischen Job an der Uni soll ich einen Prüfstand zur Ultraschallmessung entwickeln. Die Auslegung der Messtechnik ist erfolgt und nun bin ich in der Lage die Ultraschallgeschwindigkeit von Wasser zu messen. Hierbei wird das Impuls-Echo Verfahren mit einem US-Sensor verwendet. Sowohl das Anregungssignal als auch das Echo kann ich auf einem Oszilloskop "sehen". Die Messdaten lass ich mir anschließend von LabView an Matlab weiterreichen (s.Bild "Echo).
Zum Abschluss meiner Arbeit möchte ich gerne die Qualität dieser Auswertung erhöhen. Dies möchte ich gerne über einen Filter zur Eliminierung der Störgeräusche erreichen. In verschiedenen Büchern ist die folgende Abfolge in verwendet worden:"FFT-Filter-IFFT". Dies möchte ich auch gerne probieren. Leider scheitere ich schon an der FFT. Aus diesem Grund würde ich gerne die Community fragen, ob der beschriebene Weg bei meinem Problem sinnvoll ist oder eine Alternative in meinem Fall besser wäre.

Vielen Dank für jeden Hinweis/Verbesserung

Viele Grüße

Patrick


Code:
%
clc
clear all
Zeit=[]%Siehe Rohdaten
Amplitude[]%Siehe Rohdaten
figure;
plot(Zeit,Amplitude);


T_inc=Zeit(2)-Zeit(1);
Fs=1/T_inc;
L=length(Amplitude);

signal_FFT=fft(Amplitude);%Matlab FFT Ausgabe
amplitude=2*abs(signal_FFT(1:L/2+1));
frequenz= Fs/2*linspace(0,1,L/2+1);

figure;
plot(frequenz,amplitude);

 


Echo.m
 Beschreibung:
Hier sind die Rohdaten meiner Messung

Download
 Dateiname:  Echo.m
 Dateigröße:  37.8 KB
 Heruntergeladen:  21 mal
Echo.JPG
 Beschreibung:

Download
 Dateiname:  Echo.JPG
 Dateigröße:  24.41 KB
 Heruntergeladen:  29 mal
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 10.481
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 18.07.2017, 15:43     Titel: Re: Anwendung einer FFT zur Bestimmung eines Echos
  Antworten mit Zitat      
Hallo Patrick96,

Es ist generell in einem Forum nütlich, sich auf die wesentliche Frage zu beschränken. Je länger die Leser Informationen lesen, die nichts mit der Frage zu tun haben, desto wahrscheinlicher ist es, dass sie weiter klicken.

Die Daten in einem M-File zu speichern, ist unpraktisch. Alle vorherigen Ergebnisse durch ein "clear all" zu zerstören, ist echt schade. Brutales Löschen alle ins Ram geladener Files erfordert nur ein zeitraubendes Nachladen von der Festplatte. Deswegen halt ich gar nicht von "clear all".

Zitat:
Leider scheitere ich schon an der FFT.

Dann erkläre noch, was Du hier als "Scheitern" bezeichnest. Was läuft nicht so wie gewünscht und was genau möchtest Du erreichen?

Es ist noch nicht klar, welches "Störgeräusch" Du genau herausfiltern möchtest. Wenn es die tiefen Frequenzen sind, wäre ein Tiefpass-Filter wohl einfacher als der Umweg über eine FFT.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Patrick96
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 11.10.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.07.2017, 17:40     Titel:
  Antworten mit Zitat      
Hallo Jan,

meine großes Ziel ist die Berechnung der verstrichenen Zeit zwischen dem "Ende der Anregung" und dem Erscheinen des Echos. Anhand dieser Zeit kann ich die Ultraschallgewindigkeit berechnen.

Wie im Bild "Echo" zu erkennen, habe ich die Messdaten aus meinem Oszilloskope geladen und mir in Matlab geploted. Mich interessiert aber nur das Echo. Deshalb habe ich mir gedacht, dass ich durch eine FFT das Signal in den Frequenzraum überführe und es mit dem Einsatz von Filtern bearbeiten kann. Mein Sensor hat eine Resonanzfrequenz von 2.3 MHz und das Echosignal soll sich im Bereich von +/- 10% der RF liegen. (laut Literatur). Aus diesem Grund habe ich einen Bandpass Filter ausgewählt.
Anschließend überführe ich das gefilterte Signal mittels iFFT in den Zeitraum zurück. Hier soll nur noch das Echosignal deutlich erkennbar dargestellt werden, damit der spätere Anwender eine einfache Abschätzung der vergangenen Zeit durch Betrachtung des Graphen durchführen kann. In der Endfassung würde ich gerne so einen Verlauf haben der dem Schwingungsverlauf im Bild "Echo_Literatur" in einem gewissen Rahmen entspricht.

Mein Code ist folgender:

Code:
%
m=length(Amplitude);
t=Zeit(2)-Zeit(1);  %Samplingrate Hz
dF=1/t;             %Frequenz

%%FFt%
FFT_Signal=fft(Amplitude);
FFT=abs(FFT_Signal);
f1 = dF*(0:(m)-1)/m; %Berechnung der Frequenzintervalle

% Echo Detektion
 figure(1);
subplot(211)
plot(Zeit,Amplitude);
title('Zeitsignal')

subplot(212)
plot(f1,FFT)
title('Signal nach FFT')

%%Filter%%
BPF=FilterBandpass2;
XF=filter(BPF,FFT_Signal);


%%iFFT%%
IFFt_Signal=ifft(XF);
figure(2);
subplot(211)
plot(f1,XF)
title('Signal nach Filterung')

subplot(212)
IFFt=abs(IFFt_Signal);
plot(Zeit,IFFt)
title('Signal nach iFFT')


 


Das M-Skript hänge ich noch an.
Vielen Dank für Verbesserungsvorschläge oder Hinweise.

Viele Grüße ,

Patrick

FilterBandpass2.m
 Beschreibung:

Download
 Dateiname:  FilterBandpass2.m
 Dateigröße:  965 Bytes
 Heruntergeladen:  19 mal
Vergleich4.m
 Beschreibung:

Download
 Dateiname:  Vergleich4.m
 Dateigröße:  201.99 KB
 Heruntergeladen:  19 mal
Echo_Literatur.JPG
 Beschreibung:

Download
 Dateiname:  Echo_Literatur.JPG
 Dateigröße:  25.63 KB
 Heruntergeladen:  19 mal
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
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de goPCB.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2017 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.