|
|
Anzahl der Spikes bestimmen. Wer kann helfen? |
|
Daffit |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.07.2016, 18:58
Titel: Anzahl der Spikes bestimmen. Wer kann helfen?
|
|
|
|
|
Hallo Zusammen,
ich möchte aus einer Audiodatei (eigentlich ist es nur ein knacken) die Anzahl der Spikes bzw. Die Frequenz angeben lassen. So weit bin ich und komme leider nicht weiter! In der Abbildung sind unschwer 1Hz zu erkennen. Aber wie spuckt mir das Matlab aus? Über Tipps bin ich sehr dankbar.
% Daten ueber den Mikrofoneingang erfassen.
% Anzahl der Elektroschocks auf die Soundkarte. (Nimmt deine Stimme 5 Sekunden auf).
recObj = audiorecorder;
disp('Messung startet.')
recordblocking(recObj,5);
disp('Messung beendet.');
% Spielt die Aufnahme.
play(recObj);
% Speichert Daten in double-precision array.
myRecording = getaudiodata(recObj);
% Zeichne die Daten.
plot(myRecording);
xlabel('Zeit')
ylabel('Umdrehungen')
title('Wie oft loest der Magnet am Hall-sensor aus')
%Zaehlt die Spikes aus
a=myRecording;
Anzahl=length(find(a>1))
b=Anzahl/5 %Gibt die Frequenz an
disp('Hertz');
Beschreibung: |
|
Download |
Dateiname: |
figure.jpg |
Dateigröße: |
21.22 KB |
Heruntergeladen: |
256 mal |
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.448
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 24.07.2016, 12:41
Titel:
|
|
Hallo,
mit den Daten wäre es deutlich einfacher.
Auch fehlt die Info, was an deinem bisherigen Ansatz nicht klappt.
Vorschlag:
Grüße,
Harald
|
|
|
Daffit |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.07.2016, 15:24
Titel:
|
|
Danke Harald,
ich werde deinen Vorschlag ausprobieren.
Der Fehler ist folgender: Die Frequenz, die ich auslesen lasse stimmt nicht. Also liegt der Fehler in den letzten 2 Abschnitten.
Wie kann ich die Daten anzeigen lassen?
Gruß, David
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.448
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 26.07.2016, 16:03
Titel:
|
|
Hallo,
ich habe dir ja einen Vorschlag gemacht, wie du die Anzahl der Peaks bestimmen kannst.
Was meinst du mit "die Daten anzeigen lassen"? Du hast doch schon einen Plot?
Grüße,
Harald
|
|
|
Daffit |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 27.07.2016, 19:40
Titel:
|
|
|
|
|
Hallo Harald,
vielen Dank für deine nützlichen Tipps. Hat mir sehr geholfen. Jetzt gibt mir das Programm im Command Window die Anzahl der Kontakte, die Frequenz und die Windgeschwindigkeit aus. Es handelt sich ja um die Messwerterfassung eines Anemometers.
In den weiteren Schritten möchte ich die Ergebnisse im Plot anzeigen lassen. Leider zeigt es mir nur die Windgeschwindigkeit im Plot an. Im Command Window steht auch "Ignoring extra legend entries".Hast du eine Ahnung warum?
Viele Grüße,
David
Code:
% Daten ueber den Mikrofoneingang erfassen.
% Anzahl der Elektroschocks auf die Soundkarte. (Nimmt deine Stimme 5 Sekunden auf).
recObj = audiorecorder;
disp('Messung startet.')
recordblocking(recObj,5);
disp('Messung beendet.');
% Spielt die Aufnahme.
play(recObj);
% Speichert Daten in double-precision array.
myRecording = getaudiodata(recObj);
% Zeichne die Daten.
plot(myRecording);
xlabel('Zeit [s]')
ylabel('Spannung')
title('Messwerterfassung Anemometer')
%Zaehlt die Spikes aus
a=myRecording;
Anzahl=sum(diff(abs(a)>0.8*max(a))<0)/2
%Gibt die Frequenz an
Frequenz=Anzahl/5
disp('Hertz');
%Berechnet die Windgeschwindigkeit
Windgeschwindigkeit=(30*Frequenz)/3.5
disp('Km/h');
%Gibt die Windgeswindigkeit auf dem Plot aus
x=(sprintf(['Windgeschwindkeit in Km/h: ',num2str(Windgeschwindigkeit)]));
y=(sprintf(['Anzahl Rotationen: ',num2str(Anzahl)]));
z=(sprintf(['Frequenz: ',num2str(Frequenz)]));
legend(x,y,z);
Command Window:
>> Messwerterfassung_Mikrofoneingang
Messung startet.
Messung beendet.
Anzahl =
4
Frequenz =
0.8000
Hertz
Windgeschwindigkeit =
6.8571
Km/h
Warning: Ignoring extra legend entries.
> In legend at 239
In Messwerterfassung_Mikrofoneingang at 37
Beschreibung: |
|
Download |
Dateiname: |
test10.jpg |
Dateigröße: |
25.21 KB |
Heruntergeladen: |
261 mal |
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.448
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 27.07.2016, 19:54
Titel:
|
|
Hallo,
die Legende soll ja die Plots beschriften.
Ein Plot, eine Legende.
Du kannst weitere Beschriftungen z.B. mit
text
,
gtext
oder
annotation
einfügen.
Grüße,
Harald
P.S.: bitte die Code-Umgebung nutzen.
|
|
|
Daffit |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 29.07.2016, 11:30
Titel:
|
|
Hallo Harald,
vielen Dank! Das Einfügen hat sehr gut funktioniert. Leider zählt das Programm teilweise halbe spikes. Liegt das daran, da ich folgende Funktion durch 2 geteilt habe?
Für meine weiteren Berechnungen benötige ich nur die positiven oder negativen spikes. Daher habe ich die Funktion durch 2 geteilt.
Kommt man auf die Anzahl vielleicht auch einfacher. So dass die .5 Fehler nicht passieren?
Hab zu Veranschaulichung mal mein Plot angefügt.
Viele Grüße
David
Beschreibung: |
|
Download |
Dateiname: |
Test_Messung.jpg |
Dateigröße: |
33.11 KB |
Heruntergeladen: |
244 mal |
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.448
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 29.07.2016, 12:44
Titel:
|
|
Hallo,
ich habe in meinem Vorschlag nur die Absolutbeträge berücksichtigt. Das /2 ist also nicht sinnvoll.
Grüße,
Harald
|
|
|
Daffit |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 29.07.2016, 13:37
Titel:
|
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|