Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Bücher:

MATLAB - Simulink Analyse und Simulation dynamischer Systeme

Studierende:
weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Infraschalllokalisation mit Stereomikrofon, Phasenspektrum

 

Roman
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 14.02.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.02.2021, 11:39     Titel: Infraschalllokalisation mit Stereomikrofon, Phasenspektrum
  Antworten mit Zitat      
Hallo, ich bin Therapeut (maximaler Quereinsteiger in diese Thematik) mache Infra- und Tiefschall Messungen für Patienten die damit Probleme haben.
Bisher werte ich die .wav Datei einfach über den analogen Line-Out Ausgang mit einem Speicheroszilloskop aus. Alles andere als optimal, aber gut genug. Und ich fand kein passendes Programm, was ein FFT auf min, 1/10 Hz auflöst.
Von der Existenz von Matlab bzw. bei mir Oktave wusste ich vor 3 Tagen noch nichts Very Happy

Hier wird eine Methode beschrieben, um mit einer Stereoaufzeichnung mit 1m Mikrofonabstand die Richtung des Infraschalls über den Infraschall über die Phasenverschiebung zu lokalisieren.
Das ist das Ziel das ich habe.
http://stroemungsakustik.de/old.mv......5_kameier_stand120515.pdf
(Abbildungen 3-5)

Hier habe ich mir aus zwei YT-Tutorials etwas zusammengeschustert, was immerhin in die Grobrichtung geht, ein FFT aus einer .wav Datei zu generieren.

Code:
clc;
clear all;
close all;

[y, fs] = audioread('test.wav')

t = linspace(0,length(y)/fs,length(y));
figure;
subplot(2,1,1)
plot (t,y)

nfft = 100000
f = linspace (0,fs,nfft);
Y = abs(fft(y,nfft));
subplot(2,1,2)
plot (f(1:nfft/2),Y(1:nfft/2));


Meine Fragen:
A)
Ich bräuchte nun die passende Codezeile um den y,t Plot durch ein Phasenspektrum zu ersetzen.
B)
Wie kann ich mir die FFT-Pllots bis z.B. nur von 0,3 Hz bis 50Hz anzeigen lassen (ohne die händische Zoomfunktion).
Das Signal der .wav-Datei hat auch einen Gleichspannungsanteil, der die Amplitude nahe 0Hz nach oben treibt.
C)
Das Ganze dann mit beiden .wav-Dateine der Stereoaufnahme (test1.wav, test2.wav) jeweils im selben Plot dargestellt.
D) wie kann ich die y-Achse des FFT in dB darstellen.
E) in der beschriebenen Methode wird in einem 3. Plot die Kohärenz dargestellt, da weiß ich nicht, ob das notwendig ist, sagt mir wenig.

Ich hänge nicht an dem Code, er ist ohne Hintergrundwissen zusammenkopiert, und durch Versuch und Irrtum angepasst. Wenn es da einen besseren Ansatz gibt, gerne.

Vielen Dank
Private Nachricht senden Benutzer-Profile anzeigen


Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 695
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 15.02.2021, 15:20     Titel: Re: Infraschalllokalisation mit Stereomikrofon, Phasenspektr
  Antworten mit Zitat      
Matlab hat eine sehr ausführliche Hilfe eingebaut.
Code:
help Befehl

bringt meist sehr gute Informationen.

Ansonsten sind alle Befehle auch im Internet (und hier kannst du auf die blau markierten Worte im Code klicken und wirst direkt zur Matlab-Hilfe-Seite weitergeleitet.
Und unter jedem Befehl stehen ähnliche bzw. dazu gehörende Befehle, so das man sich von Befehl zu Befehl hangeln kann.



Roman hat Folgendes geschrieben:

B) Wie kann ich mir die FFT-Pllots bis z.B. nur von 0,3 Hz bis 50Hz anzeigen lassen (ohne die händische Zoomfunktion).
Das Signal der .wav-Datei hat auch einen Gleichspannungsanteil, der die Amplitude nahe 0Hz nach oben treibt.


xlim([0.3 50])

Naütrlich genauso als ylim und alternativ gibt es noch axis (für alle Achsen).


Roman hat Folgendes geschrieben:

C) Das Ganze dann mit beiden .wav-Dateine der Stereoaufnahme (test1.wav, test2.wav) jeweils im selben Plot dargestellt.

Beide wav einlesen, auf getrennte Signale speichern.
Code:
clc;
[y, fs] = audioread('test.wav')
[y2, fs2] = audioread('test2.wav')

t = linspace(0,length(y)/fs,length(y));
t2 = linspace(0,length(y2)/fs2,length(y2));

figure;
subplot(2,1,1)
plot (t,y)
hold on
plot (t2,y2)

xlim([0.3 50])

 



Roman hat Folgendes geschrieben:

D) wie kann ich die y-Achse des FFT in dB darstellen.

müsste mit loglog gehen - einfach mal selbst nachlesen.
_________________

LG
Martina

"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Private Nachricht senden Benutzer-Profile anzeigen
 
Roman
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 14.02.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.02.2021, 22:30     Titel:
  Antworten mit Zitat      
Danke erstmal!
Ich schau mal wie weit ich komme und melde mich dann nochmal.
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


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


Copyright © 2007 - 2021 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.