Forum: Digitale Signalverarbeitung / DSP / Machine Learning Frequenz eines Tones bestimmen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Stefan U. (stefan_032)


Lesenswert?

Hallo zusammen,
hoffe ich bin im richtigen Forum.

Ist es möglich die Frequenz eines Tones zu bestimmen?
Oder kennt jemand ein Programm dafür?

Ich möchte, für analyse Zwecke, eine Tonaufnahme von einem Motor machen 
und dann die Drehzahl des Motors durch den Ton bestimmen.
Ich habe zwei Drehzahlmessgeräte. Eins davon scheint kaputt zu sein, da 
sie unterschiedliche Werte anzeigen. So will ich das ohne diese alten 
Analogteile machen.

Ich habe auf Wikipedia dashier gefunden:
http://de.wikipedia.org/wiki/Frequenzspektrum
Dort steht unter "Amplitudenspektrum eines Audiosignals"
das man die Frequenz erkennen kann. WIE?

Vielen Dank

von bingo (Gast)


Lesenswert?

Audacity kann das

von Harald W. (wilhelms)


Lesenswert?

Stefan U. schrieb:

> Ich möchte, für analyse Zwecke, eine Tonaufnahme von einem Motor machen
> und dann die Drehzahl des Motors durch den Ton bestimmen.


Früher (tm) machte man das mit dem LM567.
Gruss
Harald

von Stefan U. (stefan_032)


Lesenswert?

bingo schrieb:
> Audacity kann das

Hab das Program ausprobiert. Weiß aber nicht wo ich die Frequenz ablesen 
kann. Kannst Du es mir sagen? Danke

von Fragender (Gast)


Lesenswert?

Welche Frequenzen gibt der Motor denn ab? Da ist doch eine 
Grundfrequenz, die von der Drehzahl und der Zahl der Zylinderköpfe 
abhängt, dazu kommen massig Oberwellen. Nimmt man einfach dir unterste 
und teilt durch 4?

von bingo (Gast)


Lesenswert?

>> Audacity kann das
> Hab das Program ausprobiert. Weiß aber nicht wo ich die Frequenz ablesen
> kann. Kannst Du es mir sagen? Danke

Programm starten, Ton aufnehmen.

Analyse -> Freqenzanalyse -> bingo!

von Johannes W. (jooo)


Lesenswert?

Stefan U. schrieb:
> bingo schrieb:
>> Audacity kann das
>
> Hab das Program ausprobiert. Weiß aber nicht wo ich die Frequenz ablesen
> kann. Kannst Du es mir sagen? Danke

Analyze > Spectrum...

von Stefan U. (stefan_032)


Lesenswert?

bingo schrieb:
>>> Audacity kann das
>> Hab das Program ausprobiert. Weiß aber nicht wo ich die Frequenz ablesen
>> kann. Kannst Du es mir sagen? Danke
>
> Programm starten, Ton aufnehmen.
>
> Analyse -> Freqenzanalyse -> bingo!

Super! Danke!
Und die Frequenz mit der größten Amplitude ist auch meine lauteste 
Frequenz oder wie muss ich das sehen?

von Stefan U. (stefan_032)


Lesenswert?

So, hab es jetzt probiert.
Das Problem:
Wenn ich beim Motor ca. 6000 1/min habe sind das 100Hz.
Die Frequenzanalyse fängt aber bei 800Hz an. D.h. das ich garnicht an 
die tiefen Frequenzen drankomme..
Ich möchte auch die Lehrlaufdrehzahl messen. Diese liegt bei ca 700 
1/min also 11,6 Hz.
Jemand eine Idee?  Ist es möglich das mit dem Programm anzuzeigen?

von Harald W. (wilhelms)


Lesenswert?

Stefan U. schrieb:

> Jemand eine Idee?

Wenn es sich um einen Automotor handelt, könntest Du ja auch die
Frequenz der Lichtmaschine messen.
Gruss
Harald

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Du musst in der Frequenzanalyse logarithmische Darstellung wählen, die 
Fensterbreite vergrößern (z.B. auf 8192), und ggf. die Abtastrate der 
Spur verringern. Wenn du das Signal allerdings mit einer Soundkarte 
aufgenommen hast, dann wird das Hochpassfilter am Eingang vermutlich ein 
Signal bei 11 Hz schon weggefiltert haben.

von akaDem (Gast)


Lesenswert?

Stefan U. schrieb:
> Ich möchte auch die Lehrlaufdrehzahl messen. Diese liegt bei ca 700
> 1/min also 11,6 Hz.

Da hast du dann das Problem des Tonabnehmers. Nur wenige Mikrofone 
kommen so weit runter mit der Frequenz.
Durch den Frequenzgang deines Mikrofons kann es kommen, dass du 
unterhalb von 20 bis 50 Hz kaum noch was reinbekommst, und dadurch 
andere höhere Frequenzen eine größere Amplitude haben, obwohl sie in 
Wirklichkeit schwächer sind.

von Bernd S. (bernds1)


Lesenswert?

Stefan U. schrieb:
> Ich möchte auch die Lehrlaufdrehzahl messen. Diese liegt bei ca 700
> 1/min also 11,6 Hz.
> Jemand eine Idee?  Ist es möglich das mit dem Programm anzuzeigen?

Ich würde sagen, das kommt auf mehrere Sachen an. Einmal das Mikrofon, 
das muß natürlich die 11Hz (und niedriger) aufnehmen können. Und das 
kann beileibe nicht jedes. Vielleicht mal nach Körperschall-Mikrofon 
suchen, die können weiter runter...
Und dann kommt es auf die Soundkarte im Rechner an, die ist meist mit 
einem Kondensator am Eingang gekoppelt, der hat natürlich auch eine 
untere Grenzfrequenz. Kannst ja mal einen Tongenerator an die Soundkarte 
anschließen, dann siehst du ja, wie weit runter die Frequenzen 
aufgenommen werden.

von Stefan U. (stefan_032)


Lesenswert?

Ich habe den Ton mit meinem Handy aufgenommen..
Ich bezweifle das dessen Mikro so tiefe Töne kann.. Hab dadran garnicht 
gedacht.
Also wird es wohl keine so einfache Lösung für meine Idee geben.
Naja war schon fast anzunehmen.

Trotzdem vielen Dank für eure Hilfe!

von Norbert (Gast)


Lesenswert?

Stefan U. schrieb:
> Ich habe den Ton mit meinem Handy aufgenommen..
> Ich bezweifle das dessen Mikro so tiefe Töne kann.. Hab dadran garnicht
> gedacht.
> Also wird es wohl keine so einfache Lösung für meine Idee geben.
> Naja war schon fast anzunehmen.
>
> Trotzdem vielen Dank für eure Hilfe!

Rechnen wir mal:
700Upm == 11.67Ups
Diesen Wert teilen wir mal durch zwei, da ein Viertakter(Annahme) nur 
bei jeder zweiten Umdrehung einen Zylinder zündet.
Also 11.67Ups / 2 == 5,83 Zps (ZündungenproSekunde)

Meistens haben wir jedoch mehr als einen Zylinder zur Verfügung:
4-Zylinder: 4 * 5,83 Zps == 23,33Zps
6-Zylinder: 6 * 5,83 Zps == 35,00Zps

Das sollte ein Billigmikrofon schon noch können.

von Bernd S. (bernds1)


Lesenswert?

Ich will jetzt nicht den Thread "kapern", aber:
Was mir bei der ganzen Geschichte noch Kopfzerbrechen machen würde, ist 
die Frage, wie man aus dem ganzen aufgenommenen Spektrum die Drehzahl 
des Motors herausfindet. Man hat ja alle möglichen Geräusche am Motor, 
die nicht unbedingt die Drehzahl wiedergeben, zum Beispiel Anbauteile 
usw. Dann sind im Frequenzgemisch auch noch jede Menge Oberwellen drin. 
Das ganze Gemisch bestimmt ja den Klang des laufenden Motors. Die 
eigentliche Motorumdrehung muß nicht unbedingt die größte Amplitude im 
Spektrum erzeugen.
Meiner Meinung kann man da nur erstmal schätzen und sich dann das 
Spektrum anschauen, welcher Peak in Frage kommen könnte.
Vielleicht kann zu dem Thema jemand mal was schreiben...

von Norbert (Gast)


Lesenswert?

Bernd S. schrieb:
> Ich will jetzt nicht den Thread "kapern", aber:
> Was mir bei der ganzen Geschichte noch Kopfzerbrechen machen würde, ist
> die Frage, wie man aus dem ganzen aufgenommenen Spektrum die Drehzahl
> des Motors herausfindet. Man hat ja alle möglichen Geräusche am Motor,
> die nicht unbedingt die Drehzahl wiedergeben, zum Beispiel Anbauteile
> usw. Dann sind im Frequenzgemisch auch noch jede Menge Oberwellen drin.
> Das ganze Gemisch bestimmt ja den Klang des laufenden Motors. Die
> eigentliche Motorumdrehung muß nicht unbedingt die größte Amplitude im
> Spektrum erzeugen.
> Meiner Meinung kann man da nur erstmal schätzen und sich dann das
> Spektrum anschauen, welcher Peak in Frage kommen könnte.
> Vielleicht kann zu dem Thema jemand mal was schreiben...

Nicht am Motor mit Mikro aufnehmen, sondern am Auspuff.
Da sind die Zündungen recht dominant!

von Bernd S. (bernds1)


Lesenswert?

Norbert schrieb:
>
> Nicht am Motor mit Mikro aufnehmen, sondern am Auspuff.
> Da sind die Zündungen recht dominant!

Das wäre eine Idee, könnte man dann auch mit Drucksensor arbeiten, damit 
man unabhängig vom Schall ist...

Sonst könnte sowas hier auch die Messung durcheinanderbringen:
http://www.bild-der-wissenschaft.de/bdw/bdwlive/heftarchiv/index2.php?object_id=31425635

Damit wird ja nicht nur der Schall reduziert, sondern auch ein anderer 
Sound möglich gemacht (zum Beispiel klingt dann ein Mini nach einem 
V8)...

von Norbert (Gast)


Lesenswert?

Bernd S. schrieb:
> Norbert schrieb:
>>
>> Nicht am Motor mit Mikro aufnehmen, sondern am Auspuff.
>> Da sind die Zündungen recht dominant!
>
> Das wäre eine Idee, könnte man dann auch mit Drucksensor arbeiten, damit
> man unabhängig vom Schall ist...
>
> Sonst könnte sowas hier auch die Messung durcheinanderbringen:
> 
http://www.bild-der-wissenschaft.de/bdw/bdwlive/heftarchiv/index2.php?object_id=31425635
>
> Damit wird ja nicht nur der Schall reduziert, sondern auch ein anderer
> Sound möglich gemacht (zum Beispiel klingt dann ein Mini nach einem
> V8)...

Jepp, kennen wir schon seit einem Jahrzehnt zB. für (Piloten)Headsets.
Also den Schall reduzieren, nicht das zusätzliche Volldröhnen ;-)

von Stefan U. (stefan_032)


Lesenswert?

Norbert schrieb:
> Bernd S. schrieb:
>> Norbert schrieb:
>>>
>>> Nicht am Motor mit Mikro aufnehmen, sondern am Auspuff.
>>> Da sind die Zündungen recht dominant!
>>
>> Das wäre eine Idee, könnte man dann auch mit Drucksensor arbeiten, damit
>> man unabhängig vom Schall ist...
>>
>> Sonst könnte sowas hier auch die Messung durcheinanderbringen:
>>
> 
http://www.bild-der-wissenschaft.de/bdw/bdwlive/heftarchiv/index2.php?object_id=31425635
>>
>> Damit wird ja nicht nur der Schall reduziert, sondern auch ein anderer
>> Sound möglich gemacht (zum Beispiel klingt dann ein Mini nach einem
>> V8)...
>
> Jepp, kennen wir schon seit einem Jahrzehnt zB. für (Piloten)Headsets.
> Also den Schall reduzieren, nicht das zusätzliche Volldröhnen ;-)

Das Phänomen gibts auch im CarHifi- Bereich. Deswegen kann man an 
(manchen) Radios die Phase drehen.

Aber zurück zum Thema.
Ich habe nicht direkt am Auspuff gemessen. Werde es gleich versuchen. 
Auch mit der Logarithmuseinstellung.

von M. N. (Gast)


Lesenswert?

Stefan U. schrieb:
> So will ich das ohne diese alten
> Analogteile machen.

Kannst Du einen AVR programmieren?
Damit kannst Du Dir die genaue Frequenz berechnen lassen und per UART 
ausgeben.
Es gibt auch fertige Programme, die man nur 'aufspielen' muß.

von Markus F. (Gast)


Lesenswert?

Norbert schrieb:
> Diesen Wert teilen wir mal durch zwei, da ein Viertakter(Annahme) nur
> bei jeder zweiten Umdrehung einen Zylinder zündet.

Nee, ich glaube das stimmt nicht!

Es sind ja 4 Zylinder, die abechseln takten und jede 2. Umdrehung 
zünden. Damit ist die Klopffreqenz doppelt so hoch wie die Drehzahl und 
nicht halb so hoch.

von Bernd S. (bernds1)


Lesenswert?

M. N. schrieb:
> Damit kannst Du Dir die genaue Frequenz berechnen lassen und per UART
> ausgeben.
> Es gibt auch fertige Programme, die man nur 'aufspielen' muß.

Jetzt muß ich nochmal zwischenfragen. Welche Frequenz willst du 
berechnen, wenn du ein ganzes NF-Spektrum angeboten bekommst, wo 
wahrscheinlich viele Frequenzen lauter sind als die Frequenz. die zur 
gesuchten Drehzahl passt? Wie findest du raus, welcher Peak im 
NF-Spektrum die Drehzahl ist und nicht z.B. der Turbo oder der Lüfter 
oder irgendein anderes Anbauteil. Wenn man erstmal weiß, welche Frequenz 
das etwa ist, dann kann man auch filtern und genau ausmessen. Das ist 
doch hier die Frage. Wir aben keinen Sinus am Mikrofon, den man einfach 
messen kann und fertig. Wir haben ein ganzes Gemisch... Hast du da eine 
Lösung?

von Norbert (Gast)


Lesenswert?

Mark Fritsch schrieb:
> Norbert schrieb:
>> Diesen Wert teilen wir mal durch zwei, da ein Viertakter(Annahme) nur
>> bei jeder zweiten Umdrehung einen Zylinder zündet.
>
> Nee, ich glaube das stimmt nicht!
>
> Es sind ja 4 Zylinder, die abechseln takten und jede 2. Umdrehung
> zünden. Damit ist die Klopffreqenz doppelt so hoch wie die Drehzahl und
> nicht halb so hoch.

Ich zitiere mich ja ungern selbst, aber du hast gerade meine Rechnung 
bestätigt!

...
700Upm == 11.67Ups
...
4-Zylinder: 4 * 5,83 Zps == 23,33Zps

von Stefan U. (stefan_032)


Lesenswert?

Ich weis ja das bei 700Upm ich ca. 11Hz habe. Danach suche ich also. Den 
Peak bei ca.11 Hz

von Norbert (Gast)


Lesenswert?

Stefan U. schrieb:
> Ich weis ja das bei 700Upm ich ca. 11Hz habe. Danach suche ich also. Den
> Peak bei ca.11 Hz

Nur wenn du einen Zweizylinder hast!


siehe:Beitrag "Re: Frequenz eines Tones bestimmen"

von Bernd S. (bernds1)


Lesenswert?

Stefan U. schrieb:
> Ich weis ja das bei 700Upm ich ca. 11Hz habe. Danach suche ich also. Den
> Peak bei ca.11 Hz

Genau das meinte ich ja. Du mußt es vorher ungefähr wissen, damit du 
filtern und messen kannst. Da sind wir uns einig.

Der TO ist aber davon ausgegangen, daß er eine Ton-Aufnahme macht und 
dann diese Aufname analysieren will, um die Drehzahl herauszufinden. 
Wenn er jetzt eine beliebige Tonaufnahme bekommt, woher soll er wissen, 
wie schnell der Motor ungefähr gedreht hat, was es überhaupt für ein 
Motor war usw...

Vorher schon etwa die Frequenz wissen und dann noch genau ausmessen ist 
kein Problem. Aber das Spektrum analysieren schon (denke ich)...

von Stefan U. (stefan_032)


Angehängte Dateien:

Lesenswert?

So. Habe es Probiert. Ich komme mit der Log. Darstellung bis nach 6Hz 
runter.
Im Anhang mal ein Bild davon.
Ich habe mal ein bischen Gas bei der Aufnahme gegeben. Der Peak bei 
48Hz, also 2880Upm. Das könnte passen!

von Stefan U. (stefan_032)


Lesenswert?

Eure Beiträge habe ich nicht gesehen..
Ich werde nur an einfachen Einzylinder 2Taktmotoren messen. D.h. 
Drehzahl pro min durch 60 und man hat die Frequenz.

von Bernd S. (bernds1)


Lesenswert?

Bernd S. schrieb:
> Der TO ist aber davon ausgegangen, daß er eine Ton-Aufnahme macht und

Sorry, das bist du ja selber :-) Hab ich gar nicht drauf geachtet...
Aber du stimmst mir doch zu, daß man es vorher etwa wissen muß, oder?

von Stefan U. (stefan_032)


Lesenswert?

Ja klar ;) Das  hab ich mir schon gedacht. Ich weis auch die Drehzahl in 
etwa. Es kommt mir wirklich nur auf die genaue Drehzahl an.

von Bernd S. (bernds1)


Lesenswert?

Stefan U. schrieb:
> Ja klar ;) Das  hab ich mir schon gedacht. Ich weis auch die Drehzahl in
> etwa. Es kommt mir wirklich nur auf die genaue Drehzahl an.

Na dann können wir die Sache als erledigt betrachten, oder?
Lasst die Korken knallen :-)

von Stefan U. (stefan_032)


Lesenswert?

Also es funktioniert! Muss noch den Messfehler messen aber es passt!
Vielen Dank an alle

von M. N. (Gast)


Lesenswert?

Bernd S. schrieb:
> Jetzt muß ich nochmal zwischenfragen.

Die Messung des Tones war ja schon ein Umweg, weil seine Drehzahlmesser 
nicht richtig arbeiten. Ich denke, das ist mittlerweile klar geworden.

Stefan U. schrieb:
> Es kommt mir wirklich nur auf die genaue Drehzahl an.

Was ist jetzt mit 'genau' gemeint?
Genau wird es für mich erst dann, wenn man das Zündsignal direkt mißt. 
Und das Signal ist ja auch verfügbar, weshalb ich eher noch ein 
Oszilloskope bemühen würde, als die Tonaufnahme eines Frequenzspektrums.
Aber gut, wenn genau = ungefähr ausreicht, dann soll's so sein.

von Programmierer (Gast)


Lesenswert?

Stefan U. schrieb:
> Der Peak bei 48Hz,

Wieso erklärst Du den lokalen peak bei 48Hz (-54dB) gegenüber dem bei 
100++ (-18 dB) zum peak?

von Stefan U. (stefan_032)


Lesenswert?

Weil 48Hz ca 2880 Upm sind. 100Hz sind 6000Upm. Bei der Messung muss die 
Drehzahl bei ca. 2500Upm gelegen haben. 48Hz war der lokale Hochpunkt in 
dem Bereich

von M. N. (Gast)


Lesenswert?

Stefan U. schrieb:
> Bei der Messung muss die
> Drehzahl bei ca. 2500Upm gelegen haben.

Das wären aber 41,7Hz.
Bezogen auf 48Hz betrüge dann der Fehler mehr als 10%.
Der Konjunktiv deutet schon den Betrug an :-)

von Harald W. (wilhelms)


Lesenswert?

M. N. schrieb:

> Das wären aber 41,7Hz.

Ich vermute mal, es sind 42! :-)
Gruss
Harald

von M. N. (Gast)


Lesenswert?

Harald Wilhelms schrieb:
> Ich vermute mal, es sind 42!

Nachdem ich das hier heute gelesen habe 
Beitrag "5 Taster Kombinationsmöglichkeiten",
wäre 42! = 42*41*40...*3*2*1 + 0,7 :-)

von Jürgen S. (engineer) Benutzerseite


Lesenswert?

Stefan U. schrieb:
> Weil 48Hz ca 2880 Upm sind. 100Hz sind 6000Upm.
D.h. Du weisst, was rauskommen muss und suchst Dir die Frequenz raus?

Hm, eigentlich sollte es schon so sein, dass man aus der Frequenz die 
Drehzahl direkt ablesen kann, weil die Grundwelle dominant ist. Wenn ich 
ein vorbeifahrendes Auto höre, kriege ich immer einen eindeutigen 
Motorton zu hören.

Ich habe das allerdings vor einigen Jahren auch mal gemacht und 
gefunden, dass man die höherfrequenten Anteile ignorieren muss, weil 
dort zuviele Resonanzen und Sekundäreffekte eine Rolle spielen. Die 
niedrigste auftretende Frequenz ist dann der Grundton. Zumindest was 
einen Einkolbenmotor angeht. Bei mehreren Zylindern und Mehrtaktmotoren 
wird es etwas schwieriger, weil die auch dann Schall produzieren, wenn 
sie nicht aktiv gezündet werden. Im damaligen Fall war es ein 
Zwölfzylinder Rennsportmotor und die Zündfolge ergab, dass man die 
Frequenz durch 3 teilen musste, soweit ich mich erinnere.

von Markus F. (Gast)


Lesenswert?

Norbert schrieb:
> Ich zitiere mich ja ungern selbst, aber du hast gerade meine Rechnung
>
> bestätigt!

sage ich doch.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.